Errore al cambio dei valori (da sempre lo stesso risultato)
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Errore al cambio dei valori (da sempre lo stesso risultato)
- This topic has 97 replies, 2 voices, and was last updated 4 years ago by robertogozzi.
Tagged: lot size, lotti, money management
-
-
09/30/2020 at 12:38 PM #145956
Si ovviamente fare con i pips avrebbe poco senso, stavo pensando se invece facessimo che in un range di pips si entra con determinati lotti ad esempio quando MyAtr è tra 2-5 si entra con 1 lotto se tra 6-9 1 lotto emmezzo e cosi via,sarebbe una cosa lunga anche un po meno precisa però si avvicinerebbe molto alla mia idea si potrebbe fare?
10/01/2020 at 11:24 AM #146075Prova questo:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687// Definizione dei parametri del codiceDEFPARAM CumulateOrders = false // Posizioni cumulate attivate// 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 = 230100// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"DEFPARAM FLATAFTER = 230000//TIMEFRAME(default)// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0//ONCE risk = 50 //max. capitale da rischiareONCE lotti = 1 //1 lotto per difettoMyATR = AverageTrueRange[7](close)*10 // 10 volte atr//IF MyATR >= 2 AND MyATR <= 5 THENLotti = 1ELSIF MyATR >= 6 AND MyATR <= 9 THENLotti = 1.5ENDIF//Pips = Risk / PipValue //RicalcolaSET STOP pLOSS PipsSET TARGET pPROFIT Pips * 3//// Condizioni per entrare su posizioni longindicator1 = Average[3](Stochastic[5,3](close))c1 = (indicator1 CROSSES OVER 20)//TIMEFRAME(1 hour,default)indicator2 = ExponentialAverage[9](close)indicator3 = ExponentialAverage[21](close)c2 = (indicator2[1] > indicator3[1])//TIMEFRAME(default)IF (c1 AND c2) AND not daysForbiddenEntry THENBUY Lotti SHARES AT MARKETENDIF// Condizioni per entrare su posizioni shortindicator4 = Average[3](Stochastic[5,3](close))c3 = (indicator4 CROSSES UNDER 80)//TIMEFRAME(1 hour,default)indicator5 = ExponentialAverage[9](close)indicator6 = ExponentialAverage[21](close)c4 = (indicator5[1] < indicator6[1])//TIMEFRAME(default)IF (c3 AND c4) AND not daysForbiddenEntry THENSELLSHORT Lotti SHARES AT MARKETENDIFTIMEFRAME (5minute,upDateOnClose)//************************************************************************//trailing stop functiontrailingstart = 20 //trailing will start @trailinstart points profittrailingstep = 5 //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF10/01/2020 at 11:26 AM #146076Ovviamente puoi aumentare le line 16-20, aggiungendo altri ELSIF o ELSE:
123456789IF MyATR >= 2 AND MyATR <= 5 THENLotti = 1ELSIF MyATR >= 6 AND MyATR <= 9 THENLotti = 1.5ELSIF MyATR >= 10 AND MyATR <= 11 THENLotti = 2ELSELotti = 0.5ENDIF10/01/2020 at 4:39 PM #146113123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123DEFPARAM CumulateOrders = false // Posizioni cumulate attivate// 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 = 230100// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"DEFPARAM FLATAFTER = 230000//TIMEFRAME(default)// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0//ONCE risk = 50ONCE lotti = 10 //max. capitale da rischiare//1 lotto per difettoMyATR = AverageTrueRange[7](close)*10 // 10 volte atr//IF MyATR >= 2 AND MyATR <= 3 THENLotti = 5ELSIF MyATR >= 3 AND MyATR <= 4 THENLotti = 3.3ELSIF MyATR >= 4 AND MyATR <= 5 THENLotti = 2.5ELSIF MyATR >= 5 AND MyATR <= 6 THENLotti = 2ELSIF MyATR >= 6 AND MyATR <= 7 THENLotti = 1.66ELSIF MyATR >=7 AND MyATR <= 8 THENLotti = 1.42ELSIF MyATR >= 8 AND MyATR <= 9 THENLotti = 1.25ELSIF MyATR >= 9 AND MyATR <= 10 THENLotti = 1.11ELSIF MyATR >= 10 AND MyATR <= 11 THENLotti = 1ELSIF MyATR >= 11 AND MyATR <= 12 THENLotti = 0.91ELSIF MyATR >= 12 AND MyATR <= 13THENLotti = 0.83ELSIF MyATR >= 13 AND MyATR <= 14 THENLotti = 0.77ELSIF MyATR >= 14 AND MyATR <= 15THENLotti = 0.71ELSIF MyATR >= 15 AND MyATR <= 16THENLotti = 0.66ELSIF MyATR >= 16 AND MyATR <= 17 THENLotti = 0.625ELSIF MyATR >= 17 AND MyATR <= 18THENLotti = 0.58ELSIF MyATR >= 18 AND MyATR <= 19 THENLotti = 0.55ELSIF MyATR >= 19 AND MyATR <= 20THENLotti = 0.53ENDIF////RicalcolaSET STOP pLOSS MyAtrSET TARGET pPROFIT MyAtr* 3//// Condizioni per entrare su posizioni longindicator1 = Average[3](Stochastic[5,3](close))c1 = (indicator1 CROSSES OVER 20)//TIMEFRAME(1 hour,default)indicator2 = ExponentialAverage[9](close)indicator3 = ExponentialAverage[21](close)c2 = (indicator2[1] > indicator3[1])//TIMEFRAME(default)IF (c1 AND c2) AND not daysForbiddenEntry THENBUY Lotti SHARES AT MARKETENDIF// Condizioni per entrare su posizioni shortindicator4 = Average[3](Stochastic[5,3](close))c3 = (indicator4 CROSSES UNDER 80)//TIMEFRAME(1 hour,default)indicator5 = ExponentialAverage[9](close)indicator6 = ExponentialAverage[21](close)c4 = (indicator5[1] < indicator6[1])//TIMEFRAME(default)IF (c3 AND c4) AND not daysForbiddenEntry THENSELLSHORT Lotti SHARES AT MARKETENDIFTIMEFRAME (5minute,upDateOnClose)//************************************************************************//trailing stop functiontrailingstart = 20 //trailing will start @trailinstart points profittrailingstep = 5 //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIFgraph MyAtrgraph LottiAllora ci siamo più o meno, ho alcune domande, sulla foto myatr è 0,00899 che non riesco a capire quanti pips sono? sono 8.9 o 0.89? poi riguardante il programma ne ho aggiunti altri ed ho ristretto il range, ti volevo dire ho tolto questo:
Pips = Risk / PipValueSET STOP pLOSS PipsSET TARGET pPROFIT Pips * 3perchè io vorrei che lo stop e il profit sia dato dal valore del MyAtr, ho calcolato in modo un po approssimativo i valori dei lotti da inserire per cercare di avere una perdita(il valore dei lotti per cercare di avere una massima perdita di 50euro ho fatto 50/myatr tutto /5 euro che è il valore di un pips va bene?) e perchè facendo backtest mi da guadagno e perdita di 0.10 centesimi?10/02/2020 at 5:26 PM #146219123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169// Definizione dei parametri del codiceDEFPARAM CumulateOrders = false // Posizioni cumulate attivate// 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 = 230100// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"DEFPARAM FLATAFTER = 230000//TIMEFRAME(default)// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0//ONCE risk = 500ONCE lotti = 1000 //max. capitale da rischiare//1 lotto per difettoMyATR = AverageTrueRange[7](close)*100 // 10 volte atrVR=risk/MyATRVR1=VR/5IF MyATR >= 0 AND MyATR <= 1 THENLotti = VR1elsIF MyATR >= 1.01 AND MyATR <= 2 THENLotti = VR1elsIF MyATR >= 2.01 AND MyATR <= 3 THENLotti = VR1ELSIF MyATR >= 3.01 AND MyATR <= 4 THENLotti = VR1ELSIF MyATR >= 4.01 AND MyATR <= 5 THENLotti = VR1ELSIF MyATR >= 5.01 AND MyATR <= 6 THENLotti = VR1ELSIF MyATR >= 6.01 AND MyATR <= 7 THENLotti = VR1ELSIF MyATR >=7.01 AND MyATR <= 8 THENLotti = VR1ELSIF MyATR >= 8.01AND MyATR <= 9 THENLotti = VR1ELSIF MyATR >= 9.01 AND MyATR <= 10 THENLotti = VR1ELSIF MyATR >= 10.01 AND MyATR <= 11 THENLotti = VR1ELSIF MyATR >= 11.01 AND MyATR <= 12 THENLotti = VR1ELSIF MyATR >= 12.01 AND MyATR <= 13THENLotti = VR1ELSIF MyATR >= 13.01 AND MyATR <= 14 THENLotti = VR1ELSIF MyATR >= 14.01 AND MyATR <= 15THENLotti = VR1ELSIF MyATR >= 15.01 AND MyATR <= 16THENLotti = VR1ELSIF MyATR >= 16.01 AND MyATR <= 17 THENLotti = VR1ELSIF MyATR >= 17.01 AND MyATR <= 18THENLotti = VR1ELSIF MyATR >= 18.01 AND MyATR <= 19 THENLotti = VR1ELSIF MyATR >= 19.01 AND MyATR <= 20THENLotti = VR1elsIF MyATR >= 20.01 AND MyATR <= 21 THENLotti = VR1ELSIF MyATR >= 21.01 AND MyATR <= 22 THENLotti = VR1ELSIF MyATR >= 22.01 AND MyATR <= 23 THENLotti = VR1ELSIF MyATR >= 23.01 AND MyATR <= 24 THENLotti = VR1ELSIF MyATR >= 24.01 AND MyATR <= 25 THENLotti = VR1ELSIF MyATR >=25.01 AND MyATR <= 26 THENLotti = VR1ELSIF MyATR >=26.01 AND MyATR <= 27 THENLotti = VR1ELSIF MyATR >= 27.01 AND MyATR <= 28 THENLotti = VR1ELSIF MyATR >= 28.01 AND MyATR <= 29 THENLotti = VR1ELSIF MyATR >= 29.01 AND MyATR <= 30 THENLotti = VR1ELSIF MyATR >= 30.01 AND MyATR <= 31THENLotti = VR1ELSIF MyATR >= 31.01 AND MyATR <= 32THENLotti = VR1ELSIF MyATR >= 32.01AND MyATR <= 33 THENLotti = VR1ELSIF MyATR >= 33.01 AND MyATR <= 34THENLotti = VR1ELSIF MyATR >= 34.01 AND MyATR <= 35THENLotti = VR1ELSIF MyATR >= 35.01 AND MyATR <= 36 THENLotti = VR1ELSIF MyATR >= 36.01 AND MyATR <= 37THENLotti = VR1ELSIF MyATR >= 37.01 AND MyATR <= 38 THENLotti = VR1ELSIF MyATR >= 38.01 AND MyATR <= 39THENLotti = VR1ENDIF////RicalcolaSET STOP pLOSS MyAtrSET TARGET pPROFIT MyAtr*3//// Condizioni per entrare su posizioni longindicator1 = Average[3](Stochastic[5,3](close))c1 = (indicator1 CROSSES OVER 20)//TIMEFRAME(1 hour,default)indicator2 = ExponentialAverage[9](close)indicator3 = ExponentialAverage[21](close)c2 = (indicator2[1] > indicator3[1])//TIMEFRAME(default)IF (c1 AND c2) AND not daysForbiddenEntry THENBUY Lotti SHARES AT MARKETENDIF// Condizioni per entrare su posizioni shortindicator4 = Average[3](Stochastic[5,3](close))c3 = (indicator4 CROSSES UNDER 80)//TIMEFRAME(1 hour,default)indicator5 = ExponentialAverage[9](close)indicator6 = ExponentialAverage[21](close)c4 = (indicator5[1] < indicator6[1])//TIMEFRAME(default)IF (c3 AND c4) AND not daysForbiddenEntry THENSELLSHORT Lotti SHARES AT MARKETENDIFTIMEFRAME (5minute,upDateOnClose)//************************************************************************//trailing stop functiontrailingstart = 20 //trailing will start @trailinstart points profittrailingstep = 5 //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIFgraph MyAtrgraph Lottigraph VR1graph MyAtr*3ok credo di aver capito adesso più o meno torna, ma non capisco perchè sulle posizioni mi da, numero barre zero?Cioè apre e chiude la posizione nella stessa candela?!
10/05/2020 at 12:06 PM #146460Per favore non duplicare i post!
Tu l’hai addiruttura triplicato inserendone uno nel forum sbagliato!
Può solo frammentare le informazioni in quanto qualcuno può risponderti ad un post, qualcun altro ad altri post, col risultato di rendere più difficile trovare le informazioni.
Hai postato qui Venerdì sera, adesso è Lunedì mattina e c’è stato un fine settimana nel mezzo in cui non sempre c’è qualcuno disponibile. Le risposte vengono date da trader appassionati e volontari, quando hanno dei momenti liberi. A volte ne hanno di più, altre di meno.
Ti prego di avere pazienza e di rispettare le regole basilari ben evidenziate in giallo quoi sotto.
Grazie 🙂
10/05/2020 at 4:28 PM #146483E’ impossibile capire cosa vuoi fare, vedo che hai impostato 1000 lotti, cerca di acquistarne oltre 50000!
Sul mini EurGbp non sono sufficientoi 10 milioni di capitale! Hai SL di 2 dollari, il che comporta sempre una chiusura in perdita.
Lasciamo perdere quanto detto e fatto finora, ripartiamo da zero, con la tua strategia di base.
Devi ripartire a spiegarmi:
- cosa vuoi fare con l’ATR
- quanto vuoi perdere, al massimo, ogni volta e quanto vuoi guadagnare
- per limitare la perdita vuoi agire sui Pip, oppure sui Lotti? Si può anche agire innanzitutto sui Lotti e se il risultato è inferiore al numero minimo di lotti mettere il minimo e provare ad agire sui Pips
Un suggerimento, quando fai il backtest e le prove, fallo con un numero minimo di lotti e capitale, per vedere se funziona basta 1 lotto, non ne servono 1000, tanto quando l’hai provato con 1 lotto basta che moltiplichi tutto per 1000 ed è fatta, però con i numeri grandi come hai messo le cifre sono più difficili da interpretare.
10/05/2020 at 5:44 PM #146492Si forse si è creata un po di confusione, io vorrei un atr di 7 periodi che mi definisca il mio stop loss che si a di 50 euro quindi atr=Sl=50 euro e il take profit 3 volte l’atr e quindi 150 euro, l’atr non deve seguire la posizione lo uso solo perchè mi serve solo il suo valore e basta, e vorrei andare ad agire sui lotti quindi per ogni posizione in cui viene definito lo stop loss ci sia un entrata di n.lotti per cui la perdita si aggiri a 50 euro e di conseguenza il guadagno di 150. Rispiego anche la strategia di ingresso, entrata in long quando la media esponenziale a 9 periodi incrocia verso l’alto la media esponenziale a 21 periodi nel time frame h1 e allo stesso tempo lo stocastico (settato 5,3,3) incrocia verso l’alto il valore 20, entrata short quando la media esponenziale a 9 periodi incrocia verso il basso la media esponenziale a 21 periodi nel time frame h1 e allo stesso tempo lo stocastico incrocia verso il basso il valore 80 in time frame 5minuti, spero di essere stato chiaro
10/07/2020 at 9:47 AM #146631Finalmente sono riuscito a finirlo. Mi sembra vada bene, dalle prove fatte su GBPUSD, 5 minuti. La pardita massima non eccede mai i $50, salvo in rare occasioni in cui c’è un gap d’apertura contrario (questo è inevitabile).
Alle righe da 12 a 27 c’è la gestione dei lotti e, successivamente, dei pips per adeguarli al numero dei lotti nel caso eccedessero il capitale di rischio:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899// Definizione dei parametri del codiceDEFPARAM CumulateOrders = false // Posizioni cumulate attivate// 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 = 230100// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"//DEFPARAM FLATAFTER = 230000//TIMEFRAME(default)// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0////////////////////////////////////////////////////////////////////////////////////ONCE risk = 50 //max. capitale da rischiareONCE PipNum = risk / pipvalue //Numero di Pips in base al rischioONCE lotti = 1 //1 lotto per difettoONCE MinLotti = 0.5 //Numero minimo di lottiMyATR = (AverageTrueRange[7](close) / pipsize) * 2Perc = (100 * MyATR) / PipNum //Percentuale tra numero Pips ed ATRLot1 = (risk / MyATR) * (Perc / 100) //Calcolo del numero dei lotti (1)Lot2 = round((Lot1 * 100) - 0.5) //Calcolo del numero dei lotti (2)Lot3 = Lot2 / 100 //Calcolo del numero dei lotti (3)Lotti = max(MinLotti,Lot3) //Verificare che ci sia il minimo di// lotti richiestoPips = PipNum / Lotti //Adeguare il numero dei Pips al// numero di Lotti per non eccedere// il rischio////////////////////////////////////////////////////////////////////////////////////// Condizioni per entrare su posizioni longindicator1 = Average[3](Stochastic[5,3](close))c1 = (indicator1 CROSSES OVER 20)//TIMEFRAME(1 hour,default)indicator2 = ExponentialAverage[9](close)indicator3 = ExponentialAverage[21](close)c2 = (indicator2[1] > indicator3[1])//TIMEFRAME(default)IF (c1 AND c2) AND not daysForbiddenEntry AND Not OnMarket THENBUY Lotti SHARES AT MARKETSET STOP pLOSS PipsSET TARGET pPROFIT Pips * 3ENDIF// Condizioni per entrare su posizioni shortindicator4 = Average[3](Stochastic[5,3](close))c3 = (indicator4 CROSSES UNDER 80)//TIMEFRAME(1 hour,default)indicator5 = ExponentialAverage[9](close)indicator6 = ExponentialAverage[21](close)c4 = (indicator5[1] < indicator6[1])//TIMEFRAME(default)IF (c3 AND c4) AND not daysForbiddenEntry AND Not OnMarket THENSELLSHORT Lotti SHARES AT MARKETSET STOP pLOSS PipsSET TARGET pPROFIT Pips * 3ENDIFTIMEFRAME (5minute,upDateOnClose)//************************************************************************//trailing stop functiontrailingstart = 20 //trailing will start @trailinstart points profittrailingstep = 5 //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF////graph MyATR//graph Lotti//graph Pips//graph PerCATTENZIONE: alle righe 39 e 54 ho aggiunto la condizione AND Not OnMarket, altrimenti viene variato, ad ogni candela, il valore dei Pips di stop loss.
10/07/2020 at 11:32 AM #14665010/07/2020 at 11:58 AM #146655Vedo stai usando la v11. La v11 consente solo il backtest, non il trading automatico.
Ha un modo diverso di gestire i lotti perché opera sui Futures, non sui CFD.
Io l’ho fatta sulla v10.3 di IG e funziona.
10/07/2020 at 12:21 PM #14666010/14/2020 at 4:31 PM #147415Allora ho visto le istruzioni che avevi scritto e che la massima perdita sia 50 va bene, quello che però non capisco se il profit è 3 volte lo stop perchè non ho operazioni vinte di 150 euro ma cambia ogni volta? ho postato anche una foto dove non capisco perchè lo stop sia di 50 pips (credo che siano 5 correggimi se sbaglio) nonostante sotto l atr a 7 periodi segni 3.7 pips perchè l’atr deve darmi il mio stop
10/15/2020 at 1:23 AM #147439Intanto noto che hai un orario diverso, un’ora in meno rispetto a quella italiana, forse usi quella inglese.
Bene, dovremmo esserci, ho trovato degli errori logici nel calcolo, che è più semplice di quanto pensassi prima.
Vedrai che ci sono molte operazioni che finiscono con 150 di guadagno, mentre quelle in perdita sono di 50, tranne alcune perché hanno chiuso l’operazione in occasione di gap contrari, quindi hanno chiuso al primo prezzo disponibile, anche se distante molti pip!
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192// Definizione dei parametri del codiceDEFPARAM CumulateOrders = false // Posizioni cumulate attivate// 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 = 230100// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"//DEFPARAM FLATAFTER = 230000//TIMEFRAME(default)// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0////////////////////////////////////////////////////////////////////////////////////ONCE risk = 50 //max. capitale da rischiareONCE PipNum = risk / pipvalue //Numero di Pips in base al rischioONCE lotti = 1 //1 lotto per difetto//ONCE MinLotti = 0.5 //Numero minimo di lottiMyATR = (AverageTrueRange[7](close) / pipsize) * 2Pips = max(0,min(PipNum,MyATR))Lotti = PipNum / Pips////////////////////////////////////////////////////////////////////////////////////// Condizioni per entrare su posizioni longindicator1 = Average[3](Stochastic[5,3](close))c1 = (indicator1 CROSSES OVER 20)//TIMEFRAME(1 hour,default)indicator2 = ExponentialAverage[9](close)indicator3 = ExponentialAverage[21](close)c2 = (indicator2[1] > indicator3[1])//TIMEFRAME(default)IF (c1 AND c2) AND not daysForbiddenEntry AND Not OnMarket THENBUY Lotti SHARES AT MARKETSET STOP pLOSS PipsSET TARGET pPROFIT Pips * 3ENDIF// Condizioni per entrare su posizioni shortindicator4 = Average[3](Stochastic[5,3](close))c3 = (indicator4 CROSSES UNDER 80)//TIMEFRAME(1 hour,default)indicator5 = ExponentialAverage[9](close)indicator6 = ExponentialAverage[21](close)c4 = (indicator5[1] < indicator6[1])//TIMEFRAME(default)IF (c3 AND c4) AND not daysForbiddenEntry AND Not OnMarket THENSELLSHORT Lotti SHARES AT MARKETSET STOP pLOSS PipsSET TARGET pPROFIT Pips * 3ENDIFTIMEFRAME (5minute,upDateOnClose)//************************************************************************//trailing stop functiontrailingstart = 20 //trailing will start @trailinstart points profittrailingstep = 5 //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF////graph MyATR//graph Lotti//graph Pips//graph NewSL10/15/2020 at 11:43 AM #147463Ok ci siamo quasi alcune corrispondono a 150 cioè come volevo ma perchè ancora altre chiudono ad un valore errato, che intendi per gap contrari, il gap non c’è alle 23?e poi perchè solo le posizioni che chiudono in positivo hanno il valore errato? posto due foto di un esempio della posizione
Ah e se poi mi potevi dire come si aggiusta l orario che non lo trovo grazie
-
AuthorPosts
Find exclusive trading pro-tools on