buy rottura del max precedente soltanto la prima volta dopo condizione

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #135215 quote
    romanelli4
    Participant
    Average

    Buonasera Roberto,

    chiedo cortesemente ancora aiuto….

    come faccio a scrivere quanto in allegato???

    ringrazio per l’aiuto

    max

    break.png break.png
    #135230 quote
    robertogozzi
    Moderator
    Master

    Eccolo (non l’ho provato):

    ONCE Incrocio = 0
    Media = average[20,0](close)
    IF close crosses over Media OR OnMarket THEN
       Incrocio = 0
    ENDIF
    IF Incrocio = 0 THEN
       Incrocio = close crosses under Media
    ENDIF
    IF Incrocio AND Not OnMarket AND close > high[1] THEN
       BUY 1 CONTRACT AT MARKET
       Incrocio = 0
    ENDIF
    IF OnMarket AND close < low[1] THEN
       SELL AT MARKET
    ENDIF
    #135276 quote
    romanelli4
    Participant
    Average

    Salve Roberto

    grazie si è quello……ma possiamo inserire una entrata AT STOP anzichè at market?

    ho provato come sotto ma niente.

    mi servirebbe l’entrata come nell’allegato precedente.

    Ancora grazie per la disponibilità.

    max

    Prezzolong = high + 1 * pipsize
    IF NOT OnMarket AND INCROCIO=0 THEN
    BUY 1 CONTRACTS AT Prezzolong  stop
    endif
    #135328 quote
    robertogozzi
    Moderator
    Master

    Puoi provare così:

    ONCE Incrocio = 0
    IF StrategyProfit <> StrategyProfit[1] THEN
          Incrocio = 0
    ENDIF
    Media = average[20,0](close)
    IF close crosses over Media OR OnMarket THEN
       Incrocio = 0
    ENDIF
    IF Incrocio = 0 THEN
       Incrocio = close crosses under Media
    ENDIF
    IF Incrocio AND Not OnMarket THEN
       BUY 1 CONTRACT AT high[1] + (1 * pipsize)
    ENDIF
    IF OnMarket AND close < low[1] THEN
       SELL AT MARKET
    ENDIF
    #135341 quote
    romanelli4
    Participant
    Average

    Grazie Roberto,

    perfetto

    max

    alla prox

    #135553 quote
    romanelli4
    Participant
    Average

    Buongiorno Roberto,

    ho dei problemi con il funzionamento in reale

    una domanda……

    ma…. onMarket….funziona solo in bektest ed in real lo devo sostituire con longonmarket??

    grazie per la pazienza

    max

    #135569 quote
    robertogozzi
    Moderator
    Master

    OnMarket è generico, significa “A Mercato”, qualunque direzione sia e lo usi quando non t’interessa sapere sel Long o Short

    LongOnMarket serve per sapere quando sei ma mercato LONG

    ShortOnMarket serve per sapere quando si a mercato SHORT.

    Tieni presente che ProOrder ha bisogno di una candela per conoscere lo status di “OnMarket” (e degli altri due, ovviamente, che non sono altro che dettagli del primo), per cui quando entri a mercato puoi saperlo solo alla candela successiva. Nel caso l’operazione apre e chiude nella stessa candela, OnMarket non funziona e per sapere se sei entrato o meno devi usare STRATEGYPROFIT, cioè il risultato complessivo della strategia fino all’ultima operazione chiusa. Se è diverso dalla candela precedente significa che in quella candela c’è stata un’entrata ed un’uscita.

    #135715 quote
    romanelli4
    Participant
    Average

    Buongiorno Roberto e grazie,

    ho trovato dove sta la magagna.

    guarda il codice  … ho aggiunto un orario di attività ma si genera una magagna !!!(vedi allegato).

    In pratica avrei bisogno che il TS non  inizi ad entrare dalle 7:40 ma che iniziassero a verificarsi le condizioni dalle 7:40.

    Secondo te si può fare??

    ringrazio anticipatamente

    max

     

    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 = 074000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
    DEFPARAM FLATAFTER = 215900
    ONCE Incrocio = 0
    IF StrategyProfit <> StrategyProfit[1] THEN
    Incrocio = 0
    ENDIF
    Media = average[20,0](close)
    IF close crosses over Media OR OnMarket THEN
    Incrocio = 0
    ENDIF
    IF Incrocio = 0 THEN
    Incrocio = close crosses under Media
    ENDIF
    IF Incrocio AND Not OnMarket THEN
    BUY 1 CONTRACT AT high + (1 * pipsize) stop
    ENDIF
    IF OnMarket AND close < low[1] THEN
    SELL AT MARKET
    ENDIF
    UKX-1-Minuto.png UKX-1-Minuto.png
    #135774 quote
    robertogozzi
    Moderator
    Master

    Devi usare TIME oppure OPENTIME, DEFPARAM serve solo ritardare l’apetura o anticipare la chiusura:

    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 = 074000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
    DEFPARAM FLATAFTER = 215900
    ONCE Incrocio = 0
    IF StrategyProfit <> StrategyProfit[1] THEN
       Incrocio = 0
    ENDIF
    Media = 0
    IF Time >= 074000 THEN
       Media = average[20,0](close)
    ENDIF
    IF close crosses over Media OR OnMarket THEN
       Incrocio = 0
    ENDIF
    IF Incrocio = 0 THEN
       Incrocio = close crosses under Media
    ENDIF
    IF Incrocio AND Not OnMarket THEN
       BUY 1 CONTRACT AT high + (1 * pipsize) stop
    ENDIF
    IF OnMarket AND close < low[1] THEN
       SELL AT MARKET
    ENDIF
    #135780 quote
    romanelli4
    Participant
    Average
    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 = 074000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
    DEFPARAM FLATAFTER = 215900
    go =time > 074000 and time < 173000
    ONCE Incrocio = 0
    IF StrategyProfit <> StrategyProfit[1] and go THEN
    Incrocio = 0
    ENDIF
    Media = average[20,0](close)
    IF close crosses over Media OR OnMarket and go THEN
    Incrocio = 0
    ENDIF
    IF Incrocio = 0 and go THEN
    Incrocio = close crosses under Media
    ENDIF
    IF Incrocio AND Not OnMarket and go THEN
    BUY 1 CONTRACT AT high + (1 * pipsize) stop
    ENDIF
    IF OnMarket AND close < low[1] THEN
    SELL AT MARKET
    ENDIF

    Di nuovo buonasera Roberto,

    grazie per tutto.

    avrei fatto come sopra,

    mi sembra un pò roccambolesco .

    forse c’è un modo per rendere più pulito il codice??

    grazie e buon week

    max

    #135796 quote
    robertogozzi
    Moderator
    Master

    Non mi sembra si possa cambiare cambiare molto, forse le righe 8-14 si possono riscrivere così, risparmiando 3 righe, ma non cambia molto, anche sotto l’aspetto estetico:

    Media = average[20,0](close)
    IF ((close crosses over Media) OR OnMarket OR (StrategyProfit <> StrategyProfit[1])) and go THEN
       Incrocio = 0
    ENDIF
    #135849 quote
    romanelli4
    Participant
    Average

    😉 Grazie mille Roberto,

    alla prossima

    max

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

buy rottura del max precedente soltanto la prima volta dopo condizione


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
romanelli4 @romanelli4 Participant
Summary

This topic contains 11 replies,
has 2 voices, and was last updated by romanelli4
5 years, 8 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 06/08/2020
Status: Active
Attachments: 2 files
Logo Logo
Loading...