DAX 2 ORE LONG DALL ORE 17.00 ALLE 23.00

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #243466 quote
    10081970
    Participant
    New

    Buongiorno a tutti,
    avrei bisogno del vs. aiuto per implementare il tool allegato per garantire la chiusura del trade ogni sera alle 22.00 su timeframe 2 ore. Inoltre vi chiedo come si legge la funzione c1 = (close[1] > DClose(24)[1]) e se il time frame viene definito in base a quello in cui si fa il backtest.

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    // Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l’orario “Flat Before” non saranno piazzati nuovi ordini o posizioni.
    DEFPARAM FLATBEFORE = 170000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario “Flat After”
    DEFPARAM FLATAFTER = 230000
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    // Condition to limit only one trade per day
    firstbar = barindex – intradaybarindex
    if tradeindex(1) < firstbar then nottraded = 1 elsif tradeindex(1) >= firstbar then
    traded = 0
    endif
    // Condizioni per entrare su posizioni long
    c1 = (close[1] > DClose(24)[1])
    IF c1 AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    SET STOP pLOSS 180
    SET TARGET pROFIT 180

    DAX-LONG-2-ORE-17-22H.itf
    #243478 quote
    robertogozzi
    Moderator
    Master

    c1 = (close[1] > DClose(24)[1]) significa che la variabile c1 avrà valore logico VERO, cioè 1, quando il prezzo di chiusura della barra precedente (close[1])  è > del prezzo di chiusura giornaliero del 24esimo giorno precedente ( DClose(24)) aggiornato alla barra precedente ([1]  alla fine).

    Cioè se sei su un timeframe orario e sono le ore 120000, c1 sarà VERA se (close[1]) (prezzo di chiusura della barra delle 110000)  è > del prezzo di chiusura giornaliero del 24esimo giorno precedente ( DClose(24))  aggiornato alle 110000.

    Per quanto rigarda le 220000, DEFPARAM FLATAFTER vuole un orario in cui la candela chiuda, per essere preciso; siccome la candela a 2ore inizia alle 21 e chiude alle 23, ecco che chiude alle 23.

    Devi usare le tue condizioni sempre sul timeframe a 2 ore, però devi usare sul grafico un timeframe  che abbia la candela che chiude alle 22 (può essere 1 ora, 15 minuti, ecc…).
    Ecco il codice modificato con il timeframe a 2 ore che io ho provato sul Timeframe orario:

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    // Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
    DEFPARAM FLATBEFORE = 170000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
    DEFPARAM FLATAFTER  = 220000
    //
    Timeframe(2h,UpDateOnClose)
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    // Condition to limit only one trade per day
    firstbar = barindex - intradaybarindex
    if tradeindex(1) <  firstbar then
       nottraded = 1
    elsif tradeindex(1) >= firstbar then
       traded = 0
    endif
    // Condizioni per entrare su posizioni long
    c1 = (close[1] > DClose(24)[1])
    IF c1 AND not daysForbiddenEntry THEN
       BUY 1 CONTRACT AT MARKET
    ENDIF
    //
    SET STOP pLOSS 180
    SET TARGET pROFIT 180
    Iván González thanked this post
    #243487 quote
    10081970
    Participant
    New

    Grazie.

    Mi scuso invece per la scarsa conoscenza.

    robertogozzi thanked this post
    #244389 quote
    10081970
    Participant
    New

    Chiedo per cortesia di verificare il motivo per cui è disattesa la regola che apra 1 solo trade al giorno.

    Oggi ha aperto alle 17.00, ha preso lo stop loss alle 19.30 e poi alle 20.00 ha riaperto un’altra posizione.

    Grazie anticpatamente

    #244425 quote
    robertogozzi
    Moderator
    Master

    Devi aggiungere la condizione che verifica se è già stata effettuate un’operazione alla riga 20.

    Ho aggiunto la variabile OTD per evitare d’entrare più di una volta al giorno:

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    // Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
    DEFPARAM FLATBEFORE = 170000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
    DEFPARAM FLATAFTER  = 220000
    //
    Timeframe(2h,UpDateOnClose)
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    // Condition to limit only one trade per day
    OTD = (Barindex - TradeIndex(1) > IntradayBarIndex)  // IntradayBarIndex < (Barindex - TradeIndex(1)) limits the (opening) trades till  1 per day (OTD One Trade per Day)
    // Condizioni per entrare su posizioni long
    c1 = (close[1] > DClose(24)[1])
    IF c1 AND not daysForbiddenEntry AND OTD THEN
       BUY 1 CONTRACT AT MARKET
    ENDIF
    //
    SET STOP pLOSS 180
    SET TARGET pROFIT 180
    #244426 quote
    10081970
    Participant
    New

    Grazie, eseguendo backtest su TF1H i risultati sono completamente diversi, quasi non entra mai.

    #244442 quote
    robertogozzi
    Moderator
    Master

    Prova a sostituire UpdateOnClose con default.

    #244452 quote
    10081970
    Participant
    New

    Non cambia tanto.

    Ho in mente una strategia che avrei piacere automatizzare se possibile.

    TIME FRAME 1 ORA

    Condizioni LONG

    RSI a 10 periodi esce dall’ipervenduto e contemporaneamente il prezzo di chiusura della candela verde è superiore del prezzo di chiusura di quella precedente ed anche il volume è superiore della candela precedente; stop loss al valore minimo della candela precedente e take profit a 3 volte la potenziale perdita.

    Condizioni SHORT

    RSI a 10 periodi esce dall’ipercomprato e contemporaneamente il prezzo di chiusura della candela rossa è inferiore del prezzo di quella precedente ed anche il volume è maggiore della candela precedente; stop loss al minimo della candela precedente e take profit a 3 volte la perdita.

    E’ possibile scriverlo in linguaggio prorealtime?

    Grazie

    #244483 quote
    robertogozzi
    Moderator
    Master

    Quando hai scritto nelle condizioni SHORT “stop loss al minimo della candela precedente“, immagino tu intendessi “stop loss al massimo della candela precedente“.

    Eccolo:

    ONCE IC = 70                   //IperComprato
    ONCE IV = 100 - IC             //IperVenduto  (per differenza)
    mioRSI  = Rsi[10](close)
    // LONG
    L1      = mioRSI CROSSES OVER  IV
    L2      = close > open
    L3      = close > close[1]
    L4      = Volume > Volume[1]
    L5      = Not OnMarket
    CondL   = L1 AND L2 AND L3 AND L4 AND L5
    IF CondL THEN
       BUY 1 CONTRACT AT MARKET
       SL = abs(low[1] - close)
       TP = SL * 3
       SET STOP   LOSS   SL
       SET TARGET PROFIT TP
    ENDIF
    // SHORT
    S1      = mioRSI CROSSES UNDER IC
    S2      = close < open
    S3      = close < close[1]
    S4      = Volume > Volume[1]
    S5      = Not OnMarket
    CondS   = S1 AND S2 AND S3 AND S4 AND S5
    IF CondS THEN
       SELLSHORT 1 CONTRACT AT MARKET
       SL = abs(high[1] - close)
       TP = SL * 3
       SET STOP   LOSS   SL
       SET TARGET PROFIT TP
    ENDIF
    #244489 quote
    10081970
    Participant
    New

    Grazie,

    l’ho testato ma ha dato esito negativo

    #244494 quote
    robertogozzi
    Moderator
    Master

    Che significa?

    #244506 quote
    10081970
    Participant
    New

    Eh significa che ho eseguito un backtest ed i rusultati non sono in linea con le attese.

    Comunque grazie sempre per il tuo generoso supporto.

    Se invece hai qualche idea per integrare la strategia ancora meglio.

    Ciao

    #244509 quote
    robertogozzi
    Moderator
    Master

    Generalmente se una strategia non funziona, c’è poco da fare, difficilmente con qualche aggiustamento potrà funzionare.

    Ad ogni modo ho modificato il codice aggiungendo le condizioni L6 ed S6, che impongono che prima dell’incrocio dell’RSI con IC e IV, ci siano state almeno 5 barre sotto o sopra. Questo per evitare che più volte RSI entra ed esca da IV o da IC e ci rientri subito creando segnali più inconsistenti:

    ONCE IC = 70                   //IperComprato
    ONCE IV = 100 - IC             //IperVenduto  (per differenza)
    mioRSI  = Rsi[10](close)
    // LONG
    L1      = mioRSI CROSSES OVER  IV
    L2      = close > open
    L3      = close > close[1]
    L4      = Volume > Volume[1]
    L5      = Not OnMarket
    L6      = (summation[5](mioRSI < IV) = 5)
    CondL   = L1 AND L2 AND L3 AND L4 AND L5 AND L6[1]
    IF CondL THEN
       BUY 1 CONTRACT AT MARKET
       SL = abs(low[1] - close)
       TP = SL * 4.5
       SET STOP   LOSS   SL
       SET TARGET PROFIT TP
    ENDIF
    // SHORT
    S1      = mioRSI CROSSES UNDER IC
    S2      = close < open
    S3      = close < close[1]
    S4      = Volume > Volume[1]
    S5      = Not OnMarket
    S6      = (summation[5](mioRSI > IC) = 5)
    CondS   = S1 AND S2 AND S3 AND S4 AND S5 AND S6[1]
    IF CondS THEN
       SELLSHORT 1 CONTRACT AT MARKET
       SL = abs(high[1] - close)
       TP = SL * 4.5
       SET STOP   LOSS   SL
       SET TARGET PROFIT TP
    ENDIF
    #244511 quote
    10081970
    Participant
    New

    No non cambia tanto.

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

DAX 2 ORE LONG DALL ORE 17.00 ALLE 23.00


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
10081970 @10081970 Participant
Summary

This topic contains 13 replies,
has 2 voices, and was last updated by 10081970
1 year ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 02/04/2025
Status: Active
Attachments: 1 files
Logo Logo
Loading...