1 minuto short

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #238140 quote
    Edisone
    Participant
    Average

    Buongiorno chiedo aiuto per strategia che non mi entra al riassorbimento del max day precedente con le condizioni imposte:

    t.f. 1 minuto. NQ future. Allego schema per capire l’entry, il target e le condizioni ect.

    Allego codice errato.

    defparam cumulateorders=false
    defparam flatafter  = 220000  
    
    // Limitare TS ad 1 solo ordine al giorno
    ONCE TradeOn = 1         //abilitare il trading per default
    IF IntradayBarIndex = 0 THEN
    TradeOn = 1           //abilitare il trading all'inizio di ogni giorno
    ENDIF
    
    //---TF Daily
    TIMEFRAME(Daily)
    SFMin = 13*POINTSIZE 
    SFMax = 40*POINTSIZE 
    
    TIMEFRAME(default)
    IF not onmarket AND (high > (Dhigh(1)+SFmin)) AND (high <= (Dhigh(1) + SFMax)) AND TradeOn THEN 
    EntryPrice = dHigh(1) // Prezzo di ingresso
    stoplevel = EntryPrice + SFMax
        
    // Target di profitto: distanza pari a quella tra il prezzo di ingresso e lo stop loss (rapporto 1:1)
    TakeProfit = EntryPrice - (stoplevel - EntryPrice)
    SELLSHORT 1 CONTRACT AT dHigh(1) STOP
    set stop price stoplevel
    set target price TakeProfit
    TradeOn = 0          //disabilitare il trading dopo la prima operazione
    ENDIF
    /////////////////////////////////////////////////
    graphonprice stoplevel as "StopLoss" coloured ("red")
    graphonprice (Dhigh(1)+SFmin) as "SFmin x entry" coloured ("orange")
    graphonprice EntryPrice as "EntryPrice"coloured("lime")
    graphonprice TakeProfit as "TakeProfit"coloured("blue")
    graphonprice Dhigh(1) as "PDH"coloured("black")
    
    #238207 quote
    robertogozzi
    Moderator
    Master

    Vorrei delucidazioni sulla tua foto:

    • Condizione Soddisfatta: qual’è questa condizione?
    • Cond 1: questa è la condizione al verificarsi della quale si piazza un ordine SHORT pendente (STOP in questo caso)?
    • Cond 2: questa condizione per cosa va usata?
    #238223 quote
    Edisone
    Participant
    Average

    Condizione 1 (Sforamento Minimo): Il prezzo deve superare il massimo del giorno precedente + 13 pointsize

    Condizione 2 (Sforamento Massimo): Il prezzo non deve superare il massimo del giorno precedente + 40 pointsize.

    Condizione 3: solo una operazione al giorno.

    Condizione di Entrata:
    L’ingresso short si verifica quando il prezzo (con le successive candele) ritraccia fino al massimo del giorno precedente dopo aver soddisfatto le condizioni di sforamento.

    Impostazione dell’Ordine:
    Un ordine Short di tipo STOP  viene attivato quando il prezzo tocca il massimo del giorno precedente al prezzo = al massimo del giorno precedente.

    Stop Loss: Posizionato allo sforamento massimo.
    Target: Impostato per avere un rapporto rischio rendimento 1:2

    Grazie mille.

    #238262 quote
    robertogozzi
    Moderator
    Master

    Bene, questo è il codice corretto.

    Ho tolto DHIGH(1), in quanto usi il timeframe Giornaliero ed in questo casi è meglio usare HIGH[1] in quel timeframe assegnandone il valore alla varibile myDhigh1.

    Ho un dubbio, dopo che la condizione d’entrata è stata verificata, cosa succede se il prezzo, prima dell’entrata, va ancora sopra e supera la Condizione 2? Deve essere annullata la condizione d’entrata, anche se poi il prezzo torna sotto?

    defparam cumulateorders = false
    defparam preloadbars    = 0
    defparam flatafter      = 220000
    
    // Limitare TS ad 1 solo ordine al giorno
    ONCE TradeOn = 1         //abilitare il trading per default
    IF IntradayBarIndex = 0 THEN
       TradeOn    = 1           //abilitare il trading all'inizio di ogni giorno
       Condizione = 0
    ENDIF
    IF StrategyProfit <> StrategyProfit[1] THEN
       TradeOn = 0          //disabilitare il trading dopo la prima operazione
    ENDIF
    
    //---TF Daily
    TIMEFRAME(Daily)
    SFMin = 13*POINTSIZE
    SFMax = 40*POINTSIZE
    myDhigh1 = high[1]
    //
    TIMEFRAME(default)
    IF not onmarket AND (high > (myDhigh1+SFmin)) AND (high <= (myDhigh1 + SFMax)) AND TradeOn AND (Condizione = 0) THEN
       Condizione = 1
       EntryPrice = myDhigh1 // Prezzo di ingresso
       stoplevel  = myDhigh1 + SFMax//EntryPrice + SFMax
       // Target di profitto: distanza pari a quella tra il prezzo di ingresso e lo stop loss (rapporto 1:1)
       TakeProfit = EntryPrice - (stoplevel - EntryPrice)
    ENDIF
    IF Condizione AND TradeON THEN
       SELLSHORT 1 CONTRACT AT myDhigh1 STOP
       set stop price   stoplevel
       set target price TakeProfit
    ENDIF
    /////////////////////////////////////////////////
    graphonprice stoplevel        as "StopLoss"      coloured ("red")
    graphonprice (myDhigh1+SFmin) as "SFmin x entry" coloured ("orange")
    graphonprice EntryPrice       as "EntryPrice"    coloured("lime")
    graphonprice TakeProfit       as "TakeProfit"    coloured("blue")
    graphonprice myDhigh1         as "PDH"           coloured("black")
    graph        Condizione       as "Condizione"
    graph        TradeON          as "TradeON"       coloured("Red")
    Iván González thanked this post
    #238283 quote
    Edisone
    Participant
    Average

    GRAZIE mille Roberto.

    Ho un dubbio, dopo che la condizione d’entrata è stata verificata, cosa succede se il prezzo, prima dell’entrata, va ancora sopra e supera la Condizione 2? Deve essere annullata la condizione d’entrata, anche se poi il prezzo torna sotto?

    esatto deve essere annulata.

    Grazie ancora

    #238287 quote
    robertogozzi
    Moderator
    Master

    Ecco la versione modificata:

    defparam cumulateorders = false
    defparam preloadbars    = 0
    defparam flatafter      = 220000
    
    // Limitare TS ad 1 solo ordine al giorno
    ONCE TradeOn = 1         //abilitare il trading per default
    IF IntradayBarIndex = 0 THEN
       TradeOn    = 1           //abilitare il trading all'inizio di ogni giorno
       Condizione = 0
    ENDIF
    IF StrategyProfit <> StrategyProfit[1] THEN
       TradeOn = 0          //disabilitare il trading dopo la prima operazione
    ENDIF
    
    //---TF Daily
    TIMEFRAME(Daily)
    SFMin = 13*POINTSIZE
    SFMax = 40*POINTSIZE
    myDhigh1 = high[1]
    //
    TIMEFRAME(default)
    //
    IF Condizione AND (high > (myDhigh1 + SFMax)) THEN
       Condizione = 0
    ENDIF
    
    IF not onmarket AND (high > (myDhigh1+SFmin)) AND (high <= (myDhigh1 + SFMax)) AND TradeOn AND (Condizione = 0) THEN
       Condizione = 1
       EntryPrice = myDhigh1 // Prezzo di ingresso
       stoplevel  = myDhigh1 + SFMax//EntryPrice + SFMax
       // Target di profitto: distanza pari a quella tra il prezzo di ingresso e lo stop loss (rapporto 1:1)
       TakeProfit = EntryPrice - (stoplevel - EntryPrice)
    ENDIF
    IF Condizione AND TradeON THEN
       SELLSHORT 1 CONTRACT AT myDhigh1 STOP
       set stop price   stoplevel
       set target price TakeProfit
    ENDIF
    /////////////////////////////////////////////////
    graphonprice stoplevel        as "StopLoss"      coloured ("red")
    graphonprice (myDhigh1+SFmin) as "SFmin x entry" coloured ("orange")
    graphonprice EntryPrice       as "EntryPrice"    coloured("lime")
    graphonprice TakeProfit       as "TakeProfit"    coloured("blue")
    graphonprice myDhigh1         as "PDH"           coloured("black")
    graph        Condizione       as "Condizione"
    graph        TradeON          as "TradeON"       coloured("Red")
    Edisone thanked this post
    #238298 quote
    Aragorna
    Participant
    Junior

    Buongiorno Roberto,

    scusa una domanda sulla programmazione. nel caso usassi invece, come sotto, updateonclose:

    TIMEFRAME(Daily, updateonclose)
    SFMin = 13*POINTSIZE
    SFMax = 40*POINTSIZE
    myDhigh1 = high[1]
    bisognerebbe mettere high[0] perchè non essendosi ancora chiusa la candela giornaliera, si riferirebbe al giorno precedente? sbaglio qualcosa? grazie mille in anticipo
    Alessio
    #238299 quote
    robertogozzi
    Moderator
    Master

    Sia che tu usi UpdateOnClose che Default (che può essere omesso), l’indice [1] si riferisce alla candela precedente, non quella di oggi.

    Invece usando l’indice [0] cambia se usi UpdateOnClose oppure Default, con il primo è l’ultima candela chiusa, quindi NON quella in corso di formazione, mentre col secondo è quella in corso.

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

1 minuto short


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Edisone @edisone Participant
Summary

This topic contains 7 replies,
has 3 voices, and was last updated by robertogozzi
1 year, 4 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 09/27/2024
Status: Active
Attachments: 1 files
Logo Logo
Loading...