Aiuto con codice Martingala countertrend
Forums › ProRealTime forum Italiano › Supporto ProOrder › Aiuto con codice Martingala countertrend
- This topic has 7 replies, 2 voices, and was last updated 1 year ago by robertogozzi.
-
-
08/05/2023 at 5:00 PM #218633
Ciao a tutti, vi scrivo per chiedere ancora ancora una volta aiuto a voi che siete sicuramente più esperti di me.
Sto lavorando su una strategia countertrend, con acquisti e vendite limit. Ovviamente non sono mai ingressi precisi, quindi vorrei implementare attraverso il mio money management degli ingressi in martingala.
il mio TS al momento lavora cosi:
if miecondizioni then
buy miaposizione contract at mioingresso limit
set stop loss miostop
endifUguale ma opposto il lato short.
Successivamente ho due righe che mi danno il comando di uscire dalla posizione (che sono il mio take profit)ad oggi questo sistema lavora con defparam cumulateorders = false in quanto voglio solo 1 trade alla volta.
Nella mia testa ci sarebbe la volontà di aprire altre posizioni in caso di trade che va contro la mia posizione iniziale per generare 2 ingressi ( o eventualmente più) a un prezzo più favorevole.
in poche parole vorrei quindi fare:
defparam cumulateorders = true
if miecondizioni then
buy miaposizione contract at mioingresso limit
set stop loss miostop
endifquesto che apra solo 1 posizione e non una ogni barra come sembra fare nelle prove che sto facendo.
In seguito vorrei che il TS faccia più o meno questo:
if longonmarket then
buy miasecondaposizione contract at mioingresso ( prezzo di ingresso del mio ordine del punto sopra) – 20 * pipsize limit
set stop ploss miostopnuovo1
set target ppprofit miotakeprofit1
endif
e qualora il prezzo stesse andando ancora contro il mio trade rifarei lo stesso punto appena fatto con degli altri valori per un ingresso ancora più favorevole:
if longonmarket then
buy miaterzaposizione contract at mioingresso ( prezzo di ingresso del mio primo ordine ) – 50 * pipsize limit
set stop ploss miostopnuovo2
set target ppprofit miotakeprofit2
endif
Qualcuno potrebbe darmi una mano? Grazie mille
08/06/2023 at 5:48 PM #218648E’ più comprensibile se indichi solo le condizioni, senza intervallarle dalle istruzioni.
08/16/2023 at 12:50 PM #219180Ciao Roberto,
provo a incollare il codice.
pero in questo modo mi continua ad aprire posizioni ad ogni barra e non come vorrei io. io vorrei che eseguisse 1 ordine per ogni step. Grazie mille
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071DEFPARAM CumulateOrders = truestopluca = 60 // Stop LossTakeProfit = 60 // Take Profit (opzionale)Mystop1 = 40 // Stop loss secondo ingressoMyStop2 = 20 // Stop loss terzo ingressoMyProfit1 = 20 // Take profit secondo ingressoMyProfit2 = 40 // Take profit terzo ingressoPosition = 1mymedia = ExponentialAverage[20](close)CL1 = close < MyMedia CS1 = close > Mymedia// condizioni per entrare longIF CL1 THENBUY Position CONTRACT AT Mylongentry limitset stop ploss StopLucaset target pprofit TakeProfitENDIF// condizione per uscire da posizioni longif longonmarket thensell Position contract at mylongexit limitendif// secondo ingresso long in caso il prezzo scenda di 20 pips dal mio prezzo di ingresso del primo ordineif longonmarket thenbuy 2 * Position contract at tradeprice - 20 * pipsize limitset stop ploss MyStop1set target pprofit MyProfit1endif// terzo ingresso in caso il prezzo scenda di 40 pip dal prezzo di ingresso del primo ordineif longonmarket thenbuy 3 * Position contract at tradeprice - 40 * pipsize limitset stop ploss MyStop2set target pprofit MyProfit2endif// Condizioni per entrare su posizioni shortIF CS1 THENSELLSHORT Position CONTRACT AT myshortentry limitset stop ploss StopLucaset target pprofit TakeProfitENDIF// condizione per uscire da posizioni shortif shortonmarket thenexitshort Position contract at myshortexit limitendif// secondo ingresso short in caso il prezzo salga di 20 pips dal mio prezzo di ingresso del primo ordineif shortonmarket thensellshort 2 * Position contract at tradeprice + 20 * pipsize limitset stop ploss MyStop1set target pprofit MyProfit1endif// terzo ingresso short in caso il prezzo salga di 40 pip dal prezzo di ingresso del primo ordineif shortonmarket thensellshort 3 * Position contract at tradeprice + 40 * pipsize limitset stop ploss MyStop2set target pprofit MyProfit2endif08/16/2023 at 3:52 PM #219189Io ti avevo chiesto il riepilogo delle condizioni, non il codice.
08/16/2023 at 6:17 PM #219199Scusa, letto di corsa e fatto uno schema veloce pensando fosse quello che mi avessi chiesto, comunque la condizione era una semplice finestra giornaliera e oraria.
time => 120000 and time <= 140000 and dayofweek <> 5
e come variabile di ingresso long e short sono valori Dhigh e Dlow o volendo anche livelli settimanali o perché no, massimi e minimi in altri TF.
La condizione di ingresso e la finestra temporale valgono solo per il primo ingresso, poi gli altri due lavorano solo se sono in posizione long o short, è uno motore molto semplice e da implementare con altri filtri a dir la verità, il problema è legato ad avere 3 ingressi separati, ma solo quelli, e non un TS che apre 20 posizioni.
Grazie mille
08/18/2023 at 2:52 PM #219304Ok, ho capito.
Però devi adesso allegare il file ITF funzionante, altrimenti non posso provarlo perché in quello che hai postato mancano delle variabili (vedi foto).
08/20/2023 at 9:21 PM #21937808/21/2023 at 10:21 AM #219396Ho fatto queste modifiche:
- ho agginto la finestra temporale solo per la prima entrata
- ho aggiunto la variabile CONTO per sapere quale entrata è già stata fatta (questa variabile viene azzerata quando il TS non è a mercato, in modo da potere ricomniciare)
- ho modificato l’uscita parziale con ordini pendenti, in quanto non è consentita; le uscite parziali si possono fare solo con ordini a mercato; se usi ordini pendenti le uscite devono essere totali
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899DEFPARAM CumulateOrders = true // Posizioni cumulate disattivateTIMEFRAME (4 hour, updateonclose)MyLongEntry = low[0]MyLongExit = high[1]MyShortEntry = high[0]MyShortExit = low[1]TIMEFRAME (DEFAULT)Finestra = time => 120000 and time <= 140000 and dayofweek <> 5IF Not OnMarket THENconto = 0ENDIFstopluca = 60 // Stop LossTakeProfit = 60 // Take Profit (opzionale)Mystop1 = 40 // Stop loss secondo ingressoMyStop2 = 20 // Stop loss terzo ingressoMyProfit1 = 20 // Take profit secondo ingressoMyProfit2 = 40 // Take profit terzo ingressoPosition = 1mymedia = ExponentialAverage[20](close)CL1 = close > mymediaCS1 = close < Mymedia// condizioni per entrare longIF CL1 AND Conto = 0 AND Finestra THENBUY Position CONTRACT AT Mylongentry limitset stop ploss StopLucaset target pprofit TakeProfitConto = 1ENDIF// condizione per uscire da posizioni longif longonmarket then//sell Position contract at mylongexit limit //non si possono fare chiusure parziali con ordini pendentiIF close >= mylongexit thenSELL Position contract at Marketendifendif// secondo ingresso long in caso il prezzo scenda di 20 pips dal mio prezzo di ingresso del primo ordineif longonmarket and Conto = 1 thenbuy 2 * Position contract at tradeprice - 20 * pipsize limitset stop ploss MyStop1set target pprofit MyProfit1Conto = 2endif// terzo ingresso in caso il prezzo scenda di 40 pip dal prezzo di ingresso del primo ordineif longonmarket and Conto = 2 thenbuy 3 * Position contract at tradeprice - 40 * pipsize limitset stop ploss MyStop2set target pprofit MyProfit2Conto = 3endif// Condizioni per entrare su posizioni shortIF CS1 and Conto = 0 AND Finestra THENSELLSHORT Position CONTRACT AT myshortentry limitset stop ploss StopLucaset target pprofit TakeProfitConto = 1ENDIF// condizione per uscire da posizioni shortif shortonmarket then//exitshort Position contract at myshortexit limit //non si possono fare chiusure parziali con ordini pendentiIF close <= myshortexit THENexitshort Position contract at MarketENDIFendif// secondo ingresso short in caso il prezzo salga di 20 pips dal mio prezzo di ingresso del primo ordineif shortonmarket and Conto = 1 thensellshort 2 * Position contract at tradeprice + 20 * pipsize limitset stop ploss MyStop1set target pprofit MyProfit1Conto = 2endif// terzo ingresso short in caso il prezzo salga di 40 pip dal prezzo di ingresso del primo ordineif shortonmarket and Conto = 2 thensellshort 3 * Position contract at tradeprice + 40 * pipsize limitset stop ploss MyStop2set target pprofit MyProfit2Conto = 3endif1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on