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.
-
-
05/08/2019 at 12:28 PM #97934
Grazie mille !!!
mi hai dato delle informazioni preziosissime… non ci sarei mai arrivato da solo.
vado immediatamente a provare e poi ti dico.
solo due conferme:
- mi hai indicato “MyTradePrice=close”, ma per il discorso che avevamo fatto in precedenza, dovrei mettere MyTradePrice=high, così basta che tocca e parte il trailing. Corretto ?
- ma se per portare lo stop in pari e per portare successivamente il secondo stop a metà del target iniziale (righe 50 e 53) mi baso effettivamente sul mio vero tradeprice iniziale (e solo poi al 80% parte il trailing) perché devo sostituire anche in queste righe il tradeprice iniziale che il nuovo Mytradeprice ? questo sinceramente non l’ho capito. 🙁
Grazie ancora.
05/08/2019 at 12:58 PM #97937stavo facendo una ulteriore riflessione, proprio perché voglio capire in modo costruttivo le tue indicazioni 🙂
le righe 50 e 51 dicono al programma che quando il prezzo è arrivato a metà strada tra il tradeprice (quello vero iniziale) ed il takeprofit bisogna spostare lo SL al valore del tradeprice (sempre quello vero iniziale). E fin qui mi sembra di aver appurato che tutto funziona come si deve e non ci sarebbe bisogno di ulteriori modifiche.
le righe 53 e 54 dicono al programma che quando il prezzo è arrivato al 80% della strada tra il tradeprice (quello vero iniziale) ed il takeprofit bisogna spostare lo SL a metà strada tra tradeprice (quello vero iniziale) ed il takeprofit, proprio per mettere al sicuro almeno una parte degli utili già “maturati”
solo le righe 56 e 57 dicono al programma che DA LI IN POI (ecco perché ho messo PercStop2+0,1 ovvero dal pip successivo al 80% del mio obiettivo) bisogna far partire il Trailing Stop. Ecco perché ero e sono convinto (forse sbagliando) che solo qui si debba sostituire il tradeprice iniziale con il mytradeprice per far digerire al programma un nuovo punto di partenza dal quale dare il via al trailing. E visto che alla riga 62 io vendo al Breakeven, io dovrei solo alla riga 57 dire al programma che breakeven=Mytradeprice. Ma a questo punto come fa il programma capire che da li in poi deve partire il trailing e che il valore dello SL messo a metà strada tra tradeprice e takeprofit deve iniziare a salire man mano che il valore HIGH aumenta ?? (portandosi dietro proprio lo SL che diventerebbe a tutti gli effetti “dinamico”).
Sto dicendo una stupidaggine o il mio ragionamento è in qualche modo corretto ?
Ti ringrazio molto.
05/08/2019 at 8:57 PM #97993Perdonami, ma sono oltre 5 ore che sto cercando di applicare i tuoi suggerimenti senza però riuscirci ed adesso sto purtroppo andando per tentativi, mosso solo dalla disperazione per non aver ancora raggiunto nessun risultato. 🙁
potresti cortesemente riscrivermi tu le righe da 50 a 57 ?
anche se io (in base a tutte le verifiche che ho fatto fin’ora) ero convinto che le righe da 50 a 54 fossero già sistemate in modo definitivo.
poi non ho capito come può convivere il concetto di Breakeven con quello del MyTradePrice. Pensavo che dopo l’ 80% fosse il Breakeven stesso a muoversi in qualità di trailingstop.
ho riletto 100 volte la spiegazione che ho trovato sul forum contenuta nell’articolo dal titolo “complete Trailing stop code function” ma vedo solo due passaggi. Il primo muove lo stop a Breakeven ed il secondo fa partire il trailing ed utilizza il concetto di “newSL” che dovrebbe corrispondere al “Breakeven” che mi avevi suggerito tu.
sono il primo a non essere contento di dover mendicare così l’aiuto di qualcuno, ma proprio non riesco in questo momento a capire come procedere. Per favore dammi una mano.
Grazie.
05/11/2019 at 11:10 AM #98230In effetti non è così semplice, perché dovresti sostituire TUTTE le volte che c’è TRADEPRICE con MYTRADEPRICE, tranne la prima volta che sei a mercato e basterebbe scrivere:
123IF OnMarket AND Not OnMarket[1] THEN //la prima barra in cui sei a mercatoMyTradePrice = TRADEPRICEENDIFe quando superi PercStop2 scriverai:
1MyTradePrice = (TargetProfit * (PercStop2+0.1))*pipsizeOvviamente, a parte la prima volta suindicata, dovrai sempre fare riferimento a MyTradeprice.
05/14/2019 at 7:53 PM #98507ciao,
seguendo i tuoi consigli ho cercato di applicare la soluzione che mi hai fornito e contemporaneamente ho cercato anche di “semplificare” il meccanismo di spostamento del Breakeven.
adesso il comportamento del sistema dovrebbe essere il seguente:
- entro al superamento del max della candela di setup, non solo se avviene nella candela immediatamente successiva, ma anche in quelle dopo e una volta entrato non ripete l’ordine (e funziona)
- lo stop loss iniziale è impostato al minimo della candela di setup e se appena entro il mercato si gira contro l’operazione si chiude correttamente con lo SL (e funziona)
- quando raggiungo il 50% del target che ho impostato, il sistema sposta automaticamente lo SL dal minimo della candela di setup al mio prezzo di acquisto (e funziona)
- quando raggiungo l’ 80% del target che ho impostato, il sistema fa iniziare il Trailing partendo dal 50% del mio target e lasciando uno “spazio di manovra” del 30% del mio target (ovvero la differenza tra l’80% da quando parte il Trailing ed il 50% di dove è posizionato in quel momento lo SL (e funziona)
l’unico problema (non di poco conto) è che il sistema dopo essersi accorto che rispetto al massimo raggiunto si è tornati indietro di oltre il 30% del target, anziché chiudere immediatamente l’operazione aspetta di vedere il valore di apertura della candela successiva. Se tale valore è ancora inferiore al massimo raggiunto meno il 30% del target, allora chiude l’operazione vendendo al prezzo di apertura della candela. Invece il sistema dovrebbe chiudere l’operazione DURANTE la candela non appena rileva di essere tornato indietro di oltre il 30% rispetto al massimo raggiunto da quando ho aperto l’operazione.
da cosa potrebbe dipendere, secondo la tua esperienza ?
potresti cortesemente far girare il codice che ho allegato e vedere se anche a te emerge lo stesso problema ?
utilizzando EURUSD Daily prova per favore a vedere l’operazione del 6 giugno 2013. Te la chiude il giorno successivo (sbagliando) o la chiude il giorno stesso quando il prezzo torna indietro rispetto al suo massimo di giornata ?
attualmente non dispongo per i miei test della possibilità di effettuare un controllo “tick by tick” ma soltanto Daily. Potrebbe essere questo il motivo del problema in sede di verifica dei risultati ?
cosa ne pensi di come ho risolto il discorso del trailing alle righe da 49 a 55 ?
GRAZIE MILLE !
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566//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) AND High >= Breakeven + ((TargetProfit * (PercStop2 - PercStop1))*pipsize) THENBreakeven = Tradeprice + (TargetProfit/2)ENDIFENDIFIF OnMarket AND Breakeven>0 THENSELL AT Breakeven STOPENDIFSET STOP pLOSS StopLoss//SET TARGET pPROFIT TargetProfit//SET STOP pTRAILING TargetProfitgraph Moltiplicatore05/15/2019 at 10:58 AM #98544…francamente mi sembra molto strano che il sistema debba aspettare il completamento della candela in corso e l’apertura della successiva per capire se far scattare lo stop dato dal trailing.
probabilmente manca qualcosa che attualmente mi sta sfuggendo (avevamo addirittura detto che mettendo High anziché Close era sufficiente che il prezzo toccasse il valore impostato per far scattare il trail senza aspettare la chiusura…)
inoltre, nell’articolo “complete trailing stop code function” vedo che c’è un “tradeprice” seguito da (1) tra parentesi tonde ! cosa significa ? fin’ora ero abituato a vedere solo parentesi quadre per indicare valori cronologicamente precedenti 🙁
hai già avuto modo di vedere il mio codice ?
Ti ringrazio.
05/15/2019 at 11:13 AM #98545Il tuo codice non l’ho ancora visto.
TRADEPRICE, come DCLOSE ed altri, richiedono le parentesi tonde.
Non ne conosco il motivo.
Con CLOSE il prezzo deve chiudere oltre un certo punto per fare scattare il trailing stop, mentre con HIGH basta che il prezzo sia arrivato ad un certo punto, anche se alla chiusura non è più li.
Le strategie vengono eseguite solo alla chiusura di ogni barra, quindi è solo a quel punto che il trailing stop può partire.
In alternativa puoi usare il supporto MTF per entrare/uscire da TF inferiori.
05/15/2019 at 1:44 PM #98553nell’attesa che tu possa gentilmente visionare il mio ultimo codice e dirmi se adesso funziona tutto bene, ti ringrazio e vorrei condividere con te ancora una riflessione…
come è possibile che per gli ingressi si riesca ad aprire una posizione durante la formazione della candela, esattamente ad esempio al superamento di un certo livello di prezzo (cosa che con fatica sono riuscito a fare e funziona benissimo), mentre per le uscite si deve aspettare il completamento della candela per capire se si sono effettivamente verificate le condizioni di uscita ?
ma se io vado sulla piattaforma PRT ed inserisco un ordine manualmente impostando anche sin da subito il livello dal quale far scattare il trail (senza quindi passare da ProOrder o da altri automatismi), l’ordine di vendita mi scatterà immediatamente al verificarsi della condizione oppure si dovrà anche in questo caso aspettare il completamento della candela in corso ?
non vorrei essere io ad aver compreso male alcuni aspetti e ad aver conseguentemente programmato male il codice chiedendo al sistema di fare cose non possibili.
ho cercato, seguendo i tuoi consigli, di snellire al massimo la gestione delle posizioni aperte ed adesso gli step sono solo due e proprio il secondo è stato ulteriormente semplificato.
primo step righe 50 e 51: al raggiungimento della metà del target iniziale lo stop loss viene spostato al mio tradeprice (e funziona benissimo)
secondo step righe 53 e 54: al raggiungimento del 80% del target iniziale faccio partire subito direttamente il trailing, assegnando come punto di partenza il nuovo stop loss (ovvero il mio trade price, ovvero il 50% del target iniziale che è già stato raggiunto). Per questo secondo step attendo un tuo riscontro…
pensavo che almeno queste due condizioni cosi “banali” (anche se non c’è mai nulla di banale) potessero essere gestite molto più agilmente.
arrivati a questo punto vado a leggere il discorso del MTF per cercare di dire al sistema che, dopo aver spostato lo stop loss dal mio trade price al 50% del target, deve spostarsi sulle candele ad 1 minuto ed alla prima chiusura sotto il trailing deve chiudere la posizione aperta.
è corretto questo mio approccio al problema ?
Ti ringrazio tanto, come sempre.
05/15/2019 at 2:00 PM #98554E’ difficile capire se il tuo codice funziona bene, o meno. Dovrei mettermi a verificarlo operazione per operazione e non posso farlo. Segnalami tu lo strumento, il TF e l’ora in cui ti sembra ci sia qualcosa di errato ed io poi lo verifico.
Il discorso della candela NON è un errore, è così, punto. Nel senso che l’esecuzione avviene alla chiusura di ogni candela, non prima.
Nel tuo caso, alla riga 59 l’uscita sarà esattamente a quel prezzo (a parte l’evantuale slippage) perché alla chiusura della precedente candela hai piazzato quell’ordine pendente di STOP.
Ma la variabile BREAKEVEN per essere settata correttamente occorre attendere che un certo prezzo sia stato raggiunto alla chiusura, se hai usato CLOSE è necessario che sia CLOSE >= a quel prezzo, quindi anche se il prezzo è stato toccato ma è tornato indietro BREAKEVEN viene ignorato fino alla candela successiva, se hai usato HIGH, invece, anche se CLOSE è tornato indietro BREAKEVEN verrà settato correttamene. Con HIGH il comportamento è più simile (non uguale, perché ci sarà sempre un ritardo) al comportamento manuale.
L’utilizzo di MTF, come hai correttamente scritto, ti permette di verificare su un TF inferiore queste cose, per cui, anche se sulla candela ad un minuto la strategia viene eseguita sempre alla chiusura, è difficile (ma non impossibile!) che il prezzo venga toccato senza che BREAKEVEN sia settato.
05/15/2019 at 2:39 PM #98556ciao,
il sistema adesso dovrebbe funzionare bene perché sono io che, giustamente, sto controllando operazione per operazione e sto rilevando delle anomalie sempre simili che mi portano a pensare che tutto sia ok ma che ci sia sempre questo necessario slittamento alla candela successiva per concludere i ragionamenti…
utilizzando come esempio significativo il cambio EURUSD con tf Daily, prova per favore a vedere l’operazione del 6 giugno 2013. Te la chiude il giorno successivo (sbagliando) o la chiude il giorno stesso quando il prezzo torna indietro rispetto al suo massimo di giornata ?
secondo me il sistema non si accorge che in data 6 giugno 2013 dopo aver raggiunto il massimo di giornata il prezzo sta tornando indietro oltre il valore di trailing. All’apertura del 7 giugno il sistema però capisce immediatamente che il valore di tale apertura di candela (essendo sotto il valore di trailing precedentemente settato) ha fatto scattare lo stop e chiude subito l’operazione vendendo ad 1 pip in meno dell’apertura (che dovrebbe essere lo spread bid/ask). Peccato però che avrebbe dovuto chiudere l’operazione il giorno prima con tanti bei pips di guadagno in più 🙁
Potresti solo confermarmi che anche tu vedi (e interpreti) ciò che vedo io ?
GRAZIE !!
05/15/2019 at 2:49 PM #98557hai ragione sul discorso BREAKEVEN-CLOSE-HIGH, infatti io nel mio sistema utilizzo sempre “High – Tradeprice” proprio per seguire il tuo suggerimento e fare in modo che appena il prezzo raggiunge un determinato valore (senza aspettare la chiusura) venga immediatamente spostato il trailing.
E fin qui penso che stia funzionando bene.
Il vero problema però è che questo trailing spostato tempestivamente viene “verificato” dal sistema non immediatamente tick by tick come avviene per lo spostamento del trailing, ma soltanto a candela chiusa e se l’apertura della successiva è sotto il valore del trailing allora e solo in quel momento si procederà alla chiusura dell’operazione. Corretto ? (spero di sbagliarmi perché vorrebbe dire che magari c’è una soluzione ma ho paura che sia proprio che ho detto).
Sto leggendo delle cose sul MTF e spero di trovare lì una soluzione…
Grazie mille.
05/15/2019 at 3:40 PM #98564Io ho fatto il test con il codice di cui sopra e mi segnala cose strane, forse mancano delle aggiunte/variazioni. Breakeven ha un valore maggiore a 30!!!
Posta il codice aggiornato.
-
AuthorPosts
Find exclusive trading pro-tools on