Richiesta aiuto per settaggio TARGET PROFIT
Forums › ProRealTime forum Italiano › Supporto ProOrder › Richiesta aiuto per settaggio TARGET PROFIT
- This topic has 116 replies, 2 voices, and was last updated 5 years ago by robertogozzi.
-
-
04/16/2019 at 11:44 AM #96584
Ti conviene non usare TRAILING, non è molto affidabile.
Sono stati sviluppati svariati codici per sostituirlo. Basta che cerchi TRAILING STOP o BREAKEVEN e ne troverai a bizzeffe.
Il primo fu ideato da Nicolas, proprio per usarlo al posto di TRAILING, poi ci sono state molte evoluzioni.
04/16/2019 at 11:55 AM #96585ok, grazie per il suggerimento. Vado immediatamente a cercare nel forum per vedere (e capire) come posso usare queste tecniche sostitutive del trailing.
Invece per quanto riguarda l’ultimo codice che ho allegato (quello comprendente anche il secondo spostamento al 80%), hai avuto modo di provarlo un attimo per vedere se come l’ho impostato è corretto o se necessita di qualche ulteriore aggiustamento da parte tua ??
grazie !!!
04/16/2019 at 12:05 PM #96586Lo proverò appena ho un pò di tempo, nei prossimi giorni.
04/16/2019 at 12:14 PM #9658704/16/2019 at 7:15 PM #96627123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566//PARAMETRI//inserire qui sotto tutti i parametri BASE del codice// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivateMioRischio = 100 //importo massimo in euro che voglio rischiare per ogni singola operazionePercStop1 = 0.50 //attiva il pareggio al 50% del profittoPercStop2 = 0.80 //attiva lo SL a metà del profitto quanto questo ragguinge la seconda %PagoSpese = 0.0005 //numero di pips che aggiungo al breakeven per ripagarmi delle spese//DEFPARAM FlatAfter = 220000 //Range orario DOPO il quale non bisogna più essere in posizione (eventuale)//DEFPARAM FLATBEFORE = 090000 //Range orario PRIMA del quale non bisogna ancora essere in posizione (eventuale)//INSERIRE EVENTUALE PARAMETRO DAY OF THE WEEK PER ULTERIORE FILTRO DA TESTAREIF Not OnMarket THENBreakEven = 0ENDIFONCE Flag = 0IF OnMarket OR LOW < MinimoPat THENFlag=0 //Azzerare il prezzo serve a non inserire ancora l'ordine pendente...ENDIF //... una volta entrato oppure quando non ci sono più le condizioni//IF Not OnMarket THEN//BreakEven = 0//ENDIF//CONDIZIONI//inserire qui sotto tutte le condizioni che caratterizzano il pattern o la strategia da tradareAO=Average[5](MedianPrice)-Average[34](MedianPrice)Cond1 = AO[0]>0Cond2 = AO[1]<0CondTOT = Cond1 AND Cond2 //Condizione globale da tradareIF CondTOT THENFlag = 1ENDIF//COMPORTAMENTI//inserire qui sotto come si deve comportare la strategia quando è ONMARKETIF CondTOT AND Not LongOnMarket THENTargetProfit = (HIGH - LOW)/pipsize //VALORE in PIPS del mio TARGET INIZIALEPrezzo = HIGH //VALORE al quale si entra in posizione se vengono soddisfatte TUTTE le CONDIZIONIStopLoss = (HIGH - LOW)/pipsize //VALORE in PIPS dello STOP LOSS INIZIALEMinimoPat = LOWENDIFMoltiplicatore = (MioRischio/(StopLoss/Prezzo)/pipsize) //QUANTITA' dello strumento da negoziare per avere in caso di perdita un valore//corrispondente a MIORISCHIO (nei parametri iniziali)IF not onmarket AND Flag THENBUY Moltiplicatore lots AT (Prezzo+0.0000) STOP //Ordine automatico di ENTRATA LONG in posizione con eventuale aggiunta di pipsENDIF//IF LongOnMarket AND ((close - Tradeprice) >= (TargetProfit * PercStop2)) THEN//IF LongOnMarket THEN//Breakeven = max(BreakEven,Tradeprice + (TargetProfit / 2)) //mettere al sicuro il 50% del profitto (è un BreakEven + metà profitto)//ENDIF//ENDIFIF LongOnMarket THENIF Breakeven=0 AND ((High - Tradeprice) >= (TargetProfit * PercStop1)*pipsize) THENBreakeven = Tradeprice + PagoSpeseENDIFIF Breakeven>0 AND ((High - Tradeprice) >= (TargetProfit * PercStop2)*pipsize) THENBreakeven = Tradeprice + (TargetProfit/2)ENDIFIF Breakeven>0 AND ((High - Tradeprice) >= (TargetProfit * (PercStop2+0.1))*pipsize) THENBreakeven = Breakeven + 1ENDIFENDIFIF OnMarket AND Breakeven>0 THENSELL AT Breakeven STOPENDIFSET STOP pLOSS StopLoss//SET TARGET pPROFIT TargetProfit//SET STOP pTRAILING TargetProfitCIAO !!
…non so come (anzi lo so, con tanta fatica e decine di tentativi) ma sono riuscito ad ottenere un codice definitivo e funzionante che fa tutto ciò che desideravo.
Quando hai anche solo un paio di minuti potresti per favore far girare il codice che allego e vedere come si comporta ?
Non dovrebbero esserci sorprese, anzi, la sorpresa che che tutto (forse) funziona bene.
Tutto ruota attorno alle righe da 49 a 59, in tre distinti momenti:
1- a metà del profitto porta lo stop in pari e aggiungo qualche pips per pagarmi anche le spese 🙂
2. – al raggiungimento della seconda percentuale, il Breakeven diventa uguale al tradeprice + metà del profitto
3. – subito dopo il Breakeven aumenta di 1 Pips alla volta diventando di fatto un Trailing (ed è qui che vorrei sapere da te se funziona bene).
Per me è stato un grande traguardo, se penso che solo un paio di settimane fa facevo fatica a distinguere le candele [1] dalle candele [0] 😉
Spero di avere presto un tuo responso ed eventuali, forse, correzioni da fare.
Grazie di tutto, adesso inizio con i veri test 🙂
ciao.
04/16/2019 at 10:09 PM #96638Qual’è lo scopo della riga 57, che significa aggiungerci 1?
04/17/2019 at 11:15 AM #96681Ciao,
hai assolutamente centrato il problema !
Seguendo il tuo suggerimento ho fatto una ricerca sul forum impostando la parola “trailing” ed ho trovato un mare di informazioni, al momento forse troppe per me 🙁
Mi sono quindi focalizzato sull’articolo intitolato “Complete trailing stop code function” perché mi sembrava quello più adatto a risolvere i miei problemi di trailing (avrei preferito utilizzare il concetto di MFE ma ho provato a modificare il mio codice e non funzionava più nulla…)
E dopo svariate prove/tentativi sono riuscito QUASI ad ottenere ciò che volevo.
Le righe 50 e 51 mi spostano lo stop in pari, e questo mi pare che stia funzionando bene.
Le righe 53 e 54 mi permettono mi mettere al sicuro metà del profitto quando raggiungo la seconda % di stop, ed anche qui dovrebbe funzionare bene.
E adesso viene il bello. Dopo che ho “bloccato” metà del profitto, vorrei anche che da li in poi partisse un vero e proprio trailing per poter cavalcare il più possibile l’operazione.
Mi pare di aver capito che esistono altri due parametri da gestire che si chiamano “trailingstart” e “trailingstep”. Nell’esempio che ho visto veniva indicato “NewSL = NewSL + TrailingStep” ed io che utilizzo il nome “Breakeven” ho scritto “Breakeven = Breakeven + 1″ dove 1 è il valore di TrailingStep e significa che deve salire di pip in pip. Ma purtroppo non funziona 🙁
E non saprei nemmeno cosa toccare. La riga 56 dice che al 90% del target iniziale, ovvero (TargetProfit * (PercStop2+0.1)), dovrebbe partire il trailing con TrailingStart=TargetProfit * PercStop1 e TrailingStep=1 (perché se non do un po’ di spazio tra il TrailingStart ed il prezzo sarebbe come non avere il trailing).
Mi daresti per favore qualche suggeriemento su come rendere funzionanti le righe 56-57 ?
GRAZIE !!
04/17/2019 at 2:42 PM #9670904/17/2019 at 3:04 PM #96713Per attivare il trailing devi dargli uno start, siccome tu vuoi che parta dopo l’80%, che viene calcolato alla riga 56, tu devi convertire quel prezzo in PIPS ed indicare quel valore come TrailingStart, poi stabilisci te i TrailingStep.
04/17/2019 at 3:19 PM #9671704/29/2019 at 1:12 PM #97338Ciao,
vorrei tornare ancora un attimo sull’argomento e chiederti, per favore, alcuni chiarimenti…
sia il trailingstart che il trailingstep sono espressi in pips, corretto ?
se il trailingstart è un numero di pips, da dove parte ? dal mio tradaprice, ovvero il mio prezzo di ingresso ?
quindi se io entro long su EURUSD a 1,12 ad esempio, ed il mio target è 1,13 (ovvero 100 pips) ed io voglio far partire li trailing al 80% del target impostato inizialmente, è sufficiente dire in questo caso trailingstart=80 ? (ovvero 80 pips sopra il mio punto di ingresso).
ed inoltre: se ad esempio il mio trailingstep fosse uguale a 10, cosa succede ? quando ho guadagnato 81 pips porta lo stop a 71 oppure quando guadagno 91 pips incomincia a funzionare portando lo stop a 81 ?
tu mi hai giustamente suggerito di convertire il prezzo in pips, ma alla riga 56 “<span class=”crayon-st”>High</span> <span class=”crayon-o”>-</span> <span class=”crayon-st”>Tradeprice” è già un numero di pips ed anche “TargetProfit <span class=”crayon-o”>*</span> (PercStop2<span class=”crayon-o”>+</span><span class=”crayon-cn”>0.1</span>))<span class=”crayon-o”>*</span>pipsize” è un numero di pips 🙁 o dovrei togliere la parte dove lo moltiplico per pipsize ??</span>
…ma poi alla riga 34 è corretto dividere per pipsize ? HIGH-LOW non dovrebbe già essere un numero di pips ?
scusa la valanga di domande ma purtroppo mi sono un po’ incartato…
quando hai un attimo, potresti gentilmente riscrivermi la riga 56 nel modo che ritieni corretto ?
GRAZIE MILLE !
04/29/2019 at 1:18 PM #97340ho fatto un casino con il copia/incolla
volevo scriviere…
tu mi hai giustamente suggerito di convertire il prezzo in pips, ma alla riga 56 High-Tradeprice è già un numero di pips ed anche TargetProfit *(PercStop2(+0.1))*pipsize0.1) è un numero di pips o dovrei togliere la parte dove lo moltiplico per pipsize ??
04/29/2019 at 5:45 PM #97360Il codice del trailing stop parte da TRADEPRICE, quindi ti mette in pareggio solo quanto arriva ad 80 pips, mentre tu sei già in pareggio da tempo.
Devi sostituire TRADEPRICE con MyTradePrice e settarlo a 999999 quando non sei a mercato. Quando arrivi al tuo punto desiderato, setti MyTradePrice a quel valore (+80 pips) e da li lui parte a fare il trailing ogni STEPSIZE pips.
Ricodati che una differenza tra 1.1300 1.1200 NON ti da 10 pips, perché è una differenza di prezzo, quindi ti da 0.0100, devi convertirlo in pips dividendolo per PIPSIZE che te lo convertirà in 100. Questo risponde anche alla domanda su HIGH-LOW (è sempre una differenza di prezzo, non di pips!).
Una differenza tra due medie è, anch’essa, una differenza di prezzo, non di pips! Se tu acquisti in LIMIT a HIGH + 10, non ti acquista 10 pips oltre il massimo, ma a 10 + 1.1300 cioè 11.1300 che non arriverà MAI! In questo caso devi convertire i pips (10 non è un prezzo, sono pips), devi moltiplicare tale valore per PIPSIZE.
La riga 56 corretta sarà:
1IF Breakeven>0 AND ((High - Tradeprice)*pipsize >= (TargetProfit * (PercStop2+0.1))) THENperché TARGETPROFIT l’avevi già trasformato in Pips quando l’hai calcolato, per cui devi convertire in Pips solo la differenza dei due prezzi, altrimenti confronti, ad esempio, 0.0100 con 80 e non può mai essere vera questa condizione!
05/07/2019 at 10:34 PM #97874Ciao,
sono tornato (dopo tante prove e pochi risultati…). 🙁
perdona la banalità della domanda: ma se alla riga 56 per essere corretta, come da tua indicazione, devo metterci *pipsize dopo tradeprice, anche alle righe 50 e 53 devo fare la stessa cosa ? perché mi sembra che funzionino bene così come sono adesso.
e dopo percstop2+0.1 (sempre alla riga 56) non devo più moltiplicare per pipsize ?
inoltre, il famoso “mytradeprice” deve sostituire il tradeprice solo della riga 56, corretto ? (perché alla riga 50 e 53 è giusto che ci sia tradeprice, mi pare).
Alla riga 13 dovrei aggiungere “AND MyTradePrice=999999” dopo il breakeven=0 per rispettare ciò che mi dici “Devi sostituire TRADEPRICE con MyTradePrice e settarlo a 999999 quando non sei a mercato. Quando arrivi al tuo punto desiderato, setti MyTradePrice a quel valore (+80 pips) e da li lui parte a fare il trailing ogni STEPSIZE pips.”
ma poi non so dove intervenire per sostituire TRADEPRICE con MYTRADEPRICE. Sempre alla riga 56??
onestamente sono un po’ confuso. Per favore aiutami a chiarire i vari passaggi.
Grazie mille.
05/08/2019 at 10:46 AM #97900Certo, anche le altre. Non le avevo indicate perché sono sostanzialmente identiche.
No, dopo percstop2+0.1 non devi fare nessuna conversione, l’avevi già fatta alla riga 34.
Comunque c’è un errore nella mia precedente correzione, la riga 56 deve usare “/”, non “*” con pipsize:
1IF Breakeven>0 AND ((High - Tradeprice)/pipsize >= (TargetProfit * (PercStop2+0.1))) THENperché converti un prezzo (la differenza tra High e Tradeprice) in Pips, mentre il segno di moltiplicazione va usato per convertire i Pips in prezzo.
Dopo la riga 13 devi aggiungere:
1MyTradePrice=999999AND non serve a niente, non devi valutare più di una condizione, ma solamente assegnare un valore ad una variabile, MyTradePrice in questo caso.
Devi sostituire TRADEPRICE com MyTradePrice. Dove? dove c’è scritto TRADEPRICE.
Quando arriva al valore dove tu vuoi cha parte il Trailing Stop, li ci metterai:
1MyTradePrice=closeUsa:
12345graph closegraph Tradepricegraph MyTradePricegraph Breakevengraph TargetProfited aventuali altri dati che t’interessano, per verificarli, candela per candela, nell’apposita finestra delle variabili di ProBackTest.
-
AuthorPosts
Find exclusive trading pro-tools on