Multitimeframe

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #95390 quote
    R05
    Participant
    Veteran

    Gent.mi l’idea che ho è la seguente: prendo in considerazione sul time frame a 30 minuti solo quei massimi che superano la banda di bollinger: nell’esempio allegato nel file massimo abbiamo un massimo alle ore 10; il mio punto di partenza è questo, nel senso che se devo fare qualcosa, la faccio dalle 10 in poi e solo short e solo quando il prezzo una volta salito sopra questo massimo lo ritesta. Ora, non potendo automatizzare in un unico time frame (infatti nella candela successiva va sopra e poi riscende, ma con l’unico time frame mi aprirebbe l’operazione alle 11), mi sposto su un time frame più piccolo.

    L’altro time frame che stavo prendendo in considerazione è 1 minuto: dalle 10:30 il prezzo sale sopra il massimo delle 10 sul time frame a 30 minuti, poi nella candela delle 10:38 chiude sotto il massimo in questione; in questo momento aprirò una posizione short con stop sopra il massimo avuto a quel momento. Vi allego il file 1 minuto: la freccia nera lunga individua il massimo del time frame dalle 10 alle 10:30; il prezzo sale e poi alle 10:38 chiude sotto il massimo del time frame 30 minuti. Entrerò short li.

    Viceversa per il long.

    Massimo.jpg Massimo.jpg 1-minuto.jpg 1-minuto.jpg
    #95393 quote
    R05
    Participant
    Veteran

    Vorrei specificare meglio: a 1 minuto il prezzo deve salire sopra il massimo a 30 e avere una candela che chiuda sopra; poi successivamente deve formarsi una candela che chiuda sotto il massimo in questione: solo allora aprirò una posizione short. Ad esempio se, per il caso di prima, avessi avuto alle 10:31 una candela che andava sopra il massimo e chiudeva sotto il massimo stesso nella stessa candela, non veniva presa in considerazione nessuna operazione.

    #95396 quote
    robertogozzi
    Moderator
    Master

    Posta il codice che hai già per un unico TF e poi te lo modifico per la versione MTF.

    #95401 quote
    R05
    Participant
    Veteran

    Grazie Roberto, gentilissimo. Credo che uno dei problemi che non sono riuscito a risolvere, sia quello di entrare in posizione quando la candela a 1 minuto, per il caso long, chiuda prima sopra il massimo e poi successivamente in un’altra candela chiuda sotto il massimo stesso.

    defparam cumulateorders=false
    
    defparam flatbefore = 090000
    defparam flatafter = 173000
    
    
    // Condizioni per entrare long
    //time frame 30 minuti
    timeframe(30 minutes,updateonclose)
    indicator2 = Bollingerdown[20](close)
    c2 = low<indicator2
    
    //time frame 1 minuto
    timeframe(default)
    q = close
    q2= low
    
    if c2 and q > c1 and q2 < c2 then
    buy 1 CONTRACT AT MARKET
    ENDIF
    
    if low <= c2 then
    StopLoss = abs(low[1] - c2) / pipsize
    SET STOP   pLOSS   StopLoss
    SET TARGET pPROFIT 15
    endif
    
    //Condizioni per entrare short
    //time frame 30 minuti
    timeframe(30 minutes,updateonclose)
    indicator1 = BollingerUp[20](close)
    c1 = high>indicator1
    
    //time frame 1 minuto
    timeframe(default)
    i = close
    i2= high
    
    if c1 and i < c1 and i2 > c1 then
    sellshort 1 CONTRACT AT MARKET
    ENDIF
    
    IF high >= c1 THEN
    StopLoss = abs(high[1] - c1) / pipsize
    SET STOP   pLOSS   StopLoss
    SET TARGET pPROFIT 15
    SELLSHORT 1 CONTRACT AT high[1] stop
    ENDIF
    
    #95416 quote
    robertogozzi
    Moderator
    Master

    Voglio farti rilevare:

    • alle righe 18 e 39 tu fai confronti con c1 e c, ma queste due variabili sono di tipo logico, non contengono prezzi, mas olo 0 o 1
    • dopo le righe 11 e 32 devi salvare, se le condizioni sono vere, i valori di quei minimi e massimi, per poterli utilizzare successivamente

    Comunque ti sto facendo le modifiche, tra poco posto la versione aggiornata.

    R05 thanked this post
    #95417 quote
    robertogozzi
    Moderator
    Master

    Ecco la versione modificata:

    defparam cumulateorders=false
    defparam flatbefore = 090000
    defparam flatafter = 173000
    
    timeframe(30 minutes,updateonclose)
    indicator2 = Bollingerdown[20](close)
    // Condizioni per entrare long
    c2 = low<indicator2
    IF c2 THEN
    Minimo = low
    ENDIF
    //Condizioni per entrare short
    indicator1 = BollingerUp[20](close)
    c1 = high>indicator1
    IF c1 THEN
    Massimo = high
    ENDIF
    
    timeframe(default)   //time frame 1 minuto
    // Long
    if c2 and low CROSSES OVER Minimo THEN
    buy 1 CONTRACT AT MARKET
    StopLoss = abs(low[1] - Minimo) / pipsize
    SET STOP   pLOSS   StopLoss
    SET TARGET pPROFIT 15
    endif
    //Short
    if c1 and high CROSSES OVER Minimo THEN
    sellshort 1 CONTRACT AT MARKET
    StopLoss = abs(high[1] - Massimo) / pipsize
    SET STOP   pLOSS   StopLoss
    SET TARGET pPROFIT 15
    SELLSHORT 1 CONTRACT AT high[1] stop
    ENDIF
    #95419 quote
    R05
    Participant
    Veteran

    Grazie Roberto lo sto provando. Alla riga 28 ho modificato minimo con massimo, spero di non aver sbagliato.

    Per il resto ho riscontrato due errori:

    1. alle volte fa aprire delle operazioni sbagliate, che non dovevano essere aperte (ho allegato la foto)
    2. lo stop loss non è corretto: non lo metto sul massimo o minimo del 30 minuti
    Cattura.jpg Cattura.jpg
    #95423 quote
    robertogozzi
    Moderator
    Master

    Per la riga 28 hai fatto bene, è stata un mia svista.

    Per le operazioni che non vanno bene specifa lo strumento, è il DAX?

    Dove lo vuoi calcolare lo SL?

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Multitimeframe


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
R05 @r05 Participant
Summary

This topic contains 7 replies,
has 2 voices, and was last updated by robertogozzi
6 years, 10 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 04/03/2019
Status: Active
Attachments: 3 files
Logo Logo
Loading...