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
Se posti il codice si può vedere di fare qualcosa (anche se personalmente non garantisco nulla)
il codice ancora è molto semplice, mantenendo la posizione aperta dovrebbe essere più interessante
Se il codice non è eccessivamente lungo (oltre 200-300 righe) postalo per favore.
Dovete importare il file potrebbe scoraggiare qualcuno a risponderti.
// 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
dovrebbe fare anche una sola operazione al giorno, però non funziona
Alle righe 18 e 34 aggiungi
AND Not OnMarket AND TradeON
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.
lo devo sostituire? perchè ho provato a sostituire, ad aggiungere, ma non funziona
Tu segui quello che ti ho suggerito (il primo suggerimento l’ho cambiato pochi minuti dopo averlo scritto).
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
Il post delle 8:20 l’hai letto?
Sei passato direttamente a quello dell 8:25!
non era quello che dovevo cambiare?