Barra prima ora

Viewing 15 posts - 1 through 15 (of 21 total)
  • Author
    Posts
  • #53037 quote
    R05
    Participant
    Veteran

    Buonasera a tutti, vi chiedo, gentilmente, aiuto per un sistema che segua il seguente metodo:

    1. time frame orario
    2. si prendono in considerazione il massimo e il minimo della prima ora, quella delle 8
    3. si attende la chiusura di una candela sopra o sotto il massimo o il minimo
    4. si apre la posizione: quindi, se ad esempio il massimo della prima ora del dax è 13300 e in una qualsiasi candela successiva, al massimo alle 17:00 (dopo l’apertura americana) il prezzo chiude sopra questo massimo si compra subito alla candela successiva; viceversa per lo short.
    5. lo stop 5 punti sopra il massimo o sotto il minimo
    6. primo target l’estensione della candela della prima ora dove si chiude parte della posizione; poi si segue in trailing stop

    Mi aiutereste?

    #53043 quote
    robertogozzi
    Moderator
    Master

    Provo a scriverti una strategia. Tuttavia PRT non consente la chiusura parziale di posizioni.

    #53047 quote
    robertogozzi
    Moderator
    Master

    Eccola, però non ho capito dove mettere il Target Profit, per cui ho indicato i punti interrogativi, mettici te quello che vuoi, o dimmi esattamente cosa significa estenzione della barra delle 8.

    DEFPARAM CumulateOrders = false
    DEFPARAM FlatAfter      = 180000          //Puoi indicare una data oltre la quale le posizioni aperte vengono chiuse
    IF time = 090000 THEN                     //Al termine della candela dell8 rileva Minimo/Massimo
       Massimo = high
       Minimo  = low
    ENDIF
    IF time >= 090000 AND time <= 170000 THEN
       IF close > Massimo THEN
          SET STOP   LOSS   Minimo - (5 * pipsize)
          SET TARGET PROFIT ???
          BUY       1 CONTRACTS AT MARKET
       ELSIF close > Massimo THEN
          SET STOP   LOSS   Massimo + (5 * pipsize)
          SET TARGET PROFIT ???
          SELLSHORT 1 CONTRACTS AT MARKET
       ENDIF
    ENDIF
    #53048 quote
    R05
    Participant
    Veteran
    Grazie Roberto, gentilissimo. Per estensione intendo il range della prima ora. Ho provato il codice però va solo long.
    #53049 quote
    R05
    Participant
    Veteran
    Vedendo meglio fa anche più operazioni al giorno. L’operazione è unica o meglio una sola long e una sola short al giorno, nel senso che se prima ad esempio di mattina c’è il setup per il long va long, ma se nel pomeriggio c’è il setup per lo short può andare anche short.
    #53052 quote
    robertogozzi
    Moderator
    Master

    Eccola, l’ho provata sul DAX ad 1 ora e funziona:

    DEFPARAM CumulateOrders = false
    DEFPARAM FlatAfter      = 180000          //Puoi indicare una data oltre la quale le posizioni aperte vengono chiuse
    ONCE Rialzo             = 1               //Predisporre affinché possa fare tradare LONG
    ONCE Ribasso            = 1               //Predisporre affinché possa fare tradare SHORT
    IF IntraDayBarIndex = 0 THEN
       Rialzo  = 1                            //All'inizio del giorno resettare le variabili al valore di default
       Ribasso = 1
    ENDIF
    IF time = 090000 THEN                     //Al termine della candela dell8 rileva Minimo/Massimo
       Massimo  = high
       Minimo   = low
       Profitto = range
    ENDIF
    IF time >= 090000 AND time <= 170000 THEN
       IF close > Massimo AND Rialzo THEN
          SET STOP   LOSS   Minimo - (5 * pipsize)
          SET TARGET PROFIT Profitto
          BUY       1 CONTRACTS AT MARKET
          Rialzo = 0                          //Settare la variabile a ZERO per impedire ulteriori operazioni LONG
       ELSIF close > Massimo AND Ribasso THEN
          SET STOP   LOSS   Massimo + (5 * pipsize)
          SET TARGET PROFIT Profitto
          SELLSHORT 1 CONTRACTS AT MARKET
          Ribasso = 0                         //Settare la variabile a ZERO per impedire ulteriori operazioni SHORT
       ENDIF
    ENDIF
    #53053 quote
    R05
    Participant
    Veteran
    Ti ringrazio tanto Roberto. Ho notato due cose:
    1. non chiude la posizione in stop sotto il minimo o sopra il massimo di 5 punti
    2. non apre sempre la posizione: ad esempio il 7, 9, 10 e 13 novembre pur essendoci il setup il sistema rimane fermo
    #53066 quote
    robertogozzi
    Moderator
    Master

    Scusami, ma le righe 15 e 20 erano identiche (sia per i LONG che per gli SHORT). Non me n’ero accorto dopo il copia e incolla che avevo fatto!!!!

    Ho fatto anche una modifica alle righe 17 e 22.

    Adesso fa anche i trade mancanti che avevi segnalato.

    Fai ulteriori verifiche e fammi sapere.

    DEFPARAM CumulateOrders = false
    DEFPARAM FlatAfter      = 180000          //Puoi indicare una data oltre la quale le posizioni aperte vengono chiuse
    ONCE Rialzo             = 1               //Predisporre affinché possa fare tradare LONG
    ONCE Ribasso            = 1               //Predisporre affinché possa fare tradare SHORT
    IF IntraDayBarIndex = 0 THEN
       Rialzo  = 1                            //All'inizio del giorno resettare le variabili al valore di default
       Ribasso = 1
    ENDIF
    IF time = 090000 THEN                     //Al termine della candela dell8 rileva Minimo/Massimo
       Massimo  = high
       Minimo   = low
       Profitto = range * pipsize
    ENDIF
    IF time >= 090000 AND time <= 170000 THEN
       IF close > Massimo AND Rialzo THEN
          SET STOP   LOSS   Minimo - (5 * pipsize)
          SET TARGET PROFIT close + Profitto
          BUY       1 CONTRACTS AT MARKET
          Rialzo = 0                          //Settare la variabile a ZERO per impedire ulteriori operazioni LONG
       ELSIF close < Minimo AND Ribasso THEN
          SET STOP   LOSS   Massimo + (5 * pipsize)
          SET TARGET PROFIT close - Profitto
          SELLSHORT 1 CONTRACTS AT MARKET
          Ribasso = 0                         //Settare la variabile a ZERO per impedire ulteriori operazioni SHORT
       ENDIF
    ENDIF

     

    #53086 quote
    robertogozzi
    Moderator
    Master

    Modifica la riga 14 così:

    IF time >= 090000 AND time <= 170000 AND (not OnMarket) THEN

    perché ho notato che cambia il backtest, probabilmente entro l’orario specificato, anche se siamo già a mercato, può darsi che lo SL e TP vengano comunque valutati e magari cambiati anche ad operazione in corso. Non ne sono certo, ma qualcosa cambia tra la riga com’era sul mio post precedente e come l’ho messa adesso.

    Per il resto mi sembra funzioni tutto correttamente.

    #53127 quote
    R05
    Participant
    Veteran
    Grazie Roberto, ho notato però che chiude le operazioni tutte alle 18:00, è come se lo stop loss e il target profit non li considerasse.
    #53130 quote
    robertogozzi
    Moderator
    Master

    Forsze è perché non raggiunge quel livello di prezzo, almeno a me è sembrato così.

    Magari ci sarà bisogno di testarla per un pò per verificarlo bene.

    #53245 quote
    R05
    Participant
    Veteran
    Ok grazie Roberto, farò delle prove.
    #81108 quote
    Gianluca
    Participant
    Master
    Eccola, l’ho provata sul DAX ad 1 ora e funziona:
    Buongiorno, sto facendo un sistema simile, e vorrei che gli ordini non fossero market ma al prezzo massimo della chiusura della prima ora. Ho guardato il backtest ed i prezzi vengono invece eseguiti al prezzo massimo della barra precedente a quella che esegue l’ordine. Come andrebbe scritto un codice del genere in questa strategia?
    #81118 quote
    robertogozzi
    Moderator
    Master
    La logica sembra corretta, l’esaminerò con più tempo. Quello che è errato è il settaggio del Target e dello Stop. PROFIT e LOSS vogliono che sia indicata una distanza in prezzo, ad esempio 0.0080, PPROFIT e PLOSS vogliono che la distanza sia indicata in Pips, ad esempio 80. Mentre tu indichi un prezzo, non una differenza.
    #81120 quote
    Gianluca
    Participant
    Master
    La logica sembra corretta, l’esaminerò con più tempo. Quello che è errato è il settaggio del Target e dello Stop. PROFIT e LOSS vogliono che sia indicata una distanza in prezzo, ad esempio 0.0080, PPROFIT e PLOSS vogliono che la distanza sia indicata in Pips, ad esempio 80. Mentre tu indichi un prezzo, non una differenza.
    nella mia il profit va bene a punti, ma ho visto che i buy lumit e gli ordini non vengonono rispettati come dovrebbero
Viewing 15 posts - 1 through 15 (of 21 total)
  • You must be logged in to reply to this topic.

Barra prima ora


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
R05 @r05 Participant
Summary

This topic contains 20 replies,
has 4 voices, and was last updated by JR1976
7 years, 4 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 11/16/2017
Status: Active
Attachments: 2 files
Logo Logo
Loading...