no stop and reverse

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #156994 quote
    emanuele81
    Participant
    Senior

    Buonasera, ho un problema, sto creando una strategi, però ho un problema con lo stop and reverse.

    Mi spiego:

    La strategia deve funzionare cosi, se la prima candela della giornata e rialzista entra long altrimenti short, l’operazione deve restare aperta finche non ci sono 3 candele consecutive dello stesso colore, il mio problema è, come si trova una candela diversa mi inverte la posizione, come posso fare per non farle mettere in pratica lo stop and reverse?

    Grazie

    #156995 quote
    mirco
    Participant
    New

    Se posti il codice si può vedere di fare qualcosa (anche se personalmente non garantisco nulla)

    #157006 quote
    emanuele81
    Participant
    Senior
    #157008 quote
    emanuele81
    Participant
    Senior

    il codice ancora è molto semplice, mantenendo la posizione aperta dovrebbe essere più interessante

    #157027 quote
    robertogozzi
    Moderator
    Master

    Se il codice non è eccessivamente lungo (oltre 200-300 righe) postalo per favore.

    Dovete importare il file potrebbe scoraggiare qualcuno a risponderti.

    #157036 quote
    emanuele81
    Participant
    Senior
    // 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 = 070000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
    DEFPARAM FLATAFTER = 110000
    
    // Impedisce al sistema di piazzare nuovi ordini per entrare a mercato o aumentare la taglia della posizione dopo l'orario indicato
    noEntryAfterTime = 090000
    timeEnterAfter = time < noEntryAfterTime
    
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Condizioni per entrare su posizioni long
    c1 = (open[1] < close[1])
    
    IF c1 AND timeEnterAfter AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni long
    c2 = (open > close)
    c3 = (open[2] > close[2])
    c4 = (open[1] > close[1])
    
    IF c2 AND c3 AND c4 THEN
    SELL AT MARKET
    ENDIF
    
    // Condizioni per entrare su posizioni short
    c5 = (open[1] > close[1])
    
    IF c5 AND timeEnterAfter AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni short
    c6 = (open < close)
    c7 = (open[1] < close[1])
    c8 = (open[2] < close[2])
    
    IF c6 AND c7 AND c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    
     
    ONCE TradeOn        = 1                //abilitare il trading per default
    IF OnMarket THEN
    TradeOn = 0                         //disabilitare il trading dopo un'operazione
    ENDIF
    IF IntraDayBarIndex = 0 THEN           //riabilitare il trading all'inizio di ogni giorno
    TradeOn = 1
    ENDIF
    
    #157037 quote
    emanuele81
    Participant
    Senior

    dovrebbe fare anche una sola operazione al giorno, però non funziona

    #157038 quote
    robertogozzi
    Moderator
    Master

    Alle righe 18 e 34 aggiungi

    AND Not OnMarket AND TradeON
    #157039 quote
    robertogozzi
    Moderator
    Master

    Le righe 49-51 eliminale e subito dopo BUY and SELLSHORT, prima di ENDIF, metti:

    TradeOn = 0

    Un’ultima cosa, perché hai messo alka fine alcune istruzioni che ti servono prima? Il codice deve avere una logica sequenziale.

    Le righe 48-54, escluse quelle che ti ho detto di eliminare, spostale alla 14.

    #157040 quote
    emanuele81
    Participant
    Senior

    lo devo sostituire? perchè ho provato a sostituire, ad aggiungere, ma non funziona

    #157042 quote
    robertogozzi
    Moderator
    Master

    Tu segui quello che ti ho suggerito (il primo suggerimento l’ho cambiato pochi minuti dopo averlo scritto).

    #157043 quote
    emanuele81
    Participant
    Senior

    ok ora riprovo

    #157044 quote
    emanuele81
    Participant
    Senior

    posto il codice penso di averlo corretto bene, però ancora mi esegue più operazioni al giorno e comunque mi applica lo stop and reverse, non dovrebbe farlo.

    // 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 = 070000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
    DEFPARAM FLATAFTER = 110000
    
    // Impedisce al sistema di piazzare nuovi ordini per entrare a mercato o aumentare la taglia della posizione dopo l'orario indicato
    noEntryAfterTime = 090000
    timeEnterAfter = time < noEntryAfterTime
    
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    ONCE TradeOn        = 1                //abilitare il trading per default
    
    TradeOn = 0                         //disabilitare il trading dopo un'operazione
    
    IF IntraDayBarIndex = 0 THEN           //riabilitare il trading all'inizio di ogni giorno
    TradeOn = 1
    ENDIF
     
    // Condizioni per entrare su posizioni long
    c1 = (open[1] < close[1])
    
    IF c1 AND timeEnterAfter AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    TradeOn = 0
    ENDIF
    
    // Condizioni per uscire da posizioni long
    c2 = (open > close)
    c3 = (open[2] > close[2])
    c4 = (open[1] > close[1])
    
    IF c2 AND c3 AND c4 THEN
    SELL AT MARKET
    ENDIF
    
    // Condizioni per entrare su posizioni short
    c5 = (open[1] > close[1])
    
    IF c5 AND timeEnterAfter AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    TradeOn = 0
    ENDIF
    
    // Condizioni per uscire da posizioni short
    c6 = (open < close)
    c7 = (open[1] < close[1])
    c8 = (open[2] < close[2])
    
    IF c6 AND c7 AND c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    
     
    
    #157051 quote
    robertogozzi
    Moderator
    Master

    Il post delle 8:20 l’hai letto?

    Sei passato direttamente a quello dell 8:25!

    #157054 quote
    emanuele81
    Participant
    Senior

    non era quello che dovevo cambiare?

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

no stop and reverse


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
emanuele81 @emanuele81 Participant
Summary

This topic contains 18 replies,
has 3 voices, and was last updated by robertogozzi
5 years, 1 month ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 01/08/2021
Status: Active
Attachments: 1 files
Logo Logo
Loading...