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.
-
-
02/15/2019 at 10:55 PM #91492
Buona sera a tutti,
sono finalmente riuscito a memorizzare i parametri affinché i valori di un pattern non vengano spostati di giorno in giorno e sembra che stia funzionando tutto correttamente (almeno per quanto riguarda la corretta identificazione dei pattern che mi interessano).
il problema però adesso riguarda il corretto settaggio dei valori di target profit. Sto leggendo il manuale ma evidentemente mi sta sfuggendo qualche particolare… 🙁
inoltre non capisco (allego le videate) come sia possibile che le operazioni vengano aperte e poi immediatamente chiuse.
sicuramente sto sbagliando qualcosa ma non capisco cosa
ad esempio l’operazione del 4 dicembre avrebbe dovuto chiudersi in utile (secondo le mie impostazioni) ma è stata chiusa immediatamente dopo la sua apertura.
il mio obiettivo sarebbe quello di creare un codice “base” (con le condizioni ed i parametri dettati correttamente) dal quali partire per poi sviluppare tutti i codici/strategie successive.
Potete cortesemente indicarmi dove sto sbagliando ?
Grazie a tutti.
123456789101112131415161718192021222324252627282930/ Definizione dei parametri del codiceDEFPARAM CumulateOrders = True // Posizioni cumulate disattivate//DEFPARAM FlatAfter = 220000//DEFPARAM FLATBEFORE = 090000// Condizioni per entrare su posizioni long//indicator6 = CurrentDayOfWeek = 1MyLow = Lowest[5](Low)Cond1 = LOW[3]<LOW[2]Cond2 = LOW[1]<LOW[2]Cond3 = HIGH[3]<HIGH[2]Cond4 = HIGH[1]<HIGH[2]Cond5 = LOW[1]>LOW[3]Cond6 = LOW[3]=MyLowCondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5 AND Cond6MyStop = LOW[3]MyHigh = HIGH[2]//MyATR = AverageTrueRange[14](close)MySize = 100IF not onmarket AND OPEN>LOW[3] AND OPEN<HIGH[2] AND CondTOT THENBUY MySize SHARES AT (MyHigh+0.0000) STOPENDIFSET STOP pLOSS MyStopSET TARGET PROFIT MyHigh+(MyHigh-MyStop)02/16/2019 at 8:29 AM #91506Per scrivere il codice , utilizza il pulsante <> “insert PRT code”, per rendere il codice più leggibile (adesso l’ho messo a posto io). Grazie.
Per SL e TP usi scale diverse, ti riepilogo le differenze:
- $LOSS e $PROFIT richiedono, rispettivamente, l’indicazione della somma massima che puoi perdere e quella che vuoi guadagnare (esempio: 300, non va indicato nessun simbolo monetario)
- %LOSS e %PROFIT richiedono, rispettivamente, l’indicazione della percentuale massima che puoi perdere e quella che vuoi guadagnare, rispetto al prezzo d’entrata (esempio: 1.5)
- pLOSS e pPROFIT richiedono, rispettivamente, l’indicazione di quanti PIPS puoi perdere e quanti ne vuoi guadagnare (esempio: 30)
- LOSS e PROFIT simili a pLOSS e pPROFIT, solo che richiedono la differenza in PREZZO, anziché in Pips (esempio: 0.0030)
quindi la tua riga 18 devi cambiarla in:
1MyStop = (HIGH[2] - LOW[3]) / pipsizeperché devi calcolare la differenza e convertirla in pips in quanto hai indicato “pPROFIT“, se non avessi indicato la “p” iniziale sarebbe bastato:
1MyStop = HIGH[2] - LOW[3]La riga 30 richiede una differenza di prezzo, quindi devi scriverla così:
1SET TARGET PROFIT MyHigh-MyStopin questo caso non avevi messo la “p” iniziale, quindi va bene così, nell’altro caso avresti dovuto convertirla in pips (come sopra).
La riga 26 va bene anche così, perché essendo 0.0 non può creare problemi, ma ti consiglio, di usare i pips e poi PIPSIZE per convertirli in prezzo, in tal modo funzionerà sempre, che tu operi su valute o su indici o azioni:
1BUY MySize SHARES AT (MyHigh+(0.0000*pipsize)) STOPPerché se tu operassi su Eur/Usd, ad esempio, per sommare 10 pips dovresti indicare 0.0010, ma sul dax 10, quindi con questa conversione rendi la tua strategia “portabile” su tutti gli strumenti.
Per le conversioni noterai che ho usato “/” o “*”, secondo questa regola:
- per convertire da Prezzo a Pips devi usare “/“, ad esempio “(high – close) / pipsize)” per ottenere la differenza, in Pips, tra il Massimo e la Chiusura
- per convertire da Pips a Prezzo devi usare “*“, ad esempio “BUY MySize SHARES AT (MyHigh + (10 * pipsize)) STOP” per aggiungere 10 pips al prezzo d’entrata.
02/16/2019 at 9:31 PM #91544innanzitutto molte grazie per la rapidissima risposta… adesso so cosa farò questa domenica. 😉
ho provato a modificare il codice seguendo le indicazioni ma evidentemente manca ancora qualcosa.
ho allegato il codice che ho fatto girare su EURGBP ma il comportamento del programma non è quello che mi aspettavo.
allego una immagine per chiarire meglio ciò che vorrei ottenere.
partendo da un semplicissimo pattern 123 di Joe Ross (che voglio usare come esempio per poi sviluppare tutti gli altri pattern che ho in mente) vorrei aprire una posizione LONG al superamento del punto 2 (linea gialla) partendo dalla prima candela successiva al punto 3 (evitando anche gap in apertura sopra il punto 2 o sotto il punto 1, per i quali penso di aver messo correttamente le condizioni).
vorrei posizionare lo stop loss al livello del punto 1 (linea rossa) e se il prezzo scende sotto tale valore chiudo la posizione long.
inoltre vorrei proiettare la differenza tra il punto 1 ed il punto 2 come mio potenziale target per chiudere in utile la mia posizione (linea azzurra).
dal grafico che ho allegato sembrerebbe che il pattern sia stato correttamente identificato e nonostante i prezzi non siano scesi sotto la linea rossa di stop loss, l’operazione è stata chiusa in perdita in corrispondenza del triangolino giallo indicato da PRT mentre avrebbe potuto ampiamente raggiungere il mio target e chiudersi in utile.
non capisco il perché di questo (strano) comportamento.
Grazie.
12345678910111213141516171819202122232425262728293031// Definizione dei parametri del codiceDEFPARAM CumulateOrders = True // Posizioni cumulate disattivate//DEFPARAM FlatAfter = 220000//DEFPARAM FLATBEFORE = 090000// Condizioni per entrare su posizioni long//indicator6 = CurrentDayOfWeek = 1MyLow = Lowest[20](Low)Cond1 = LOW[3]<LOW[2]Cond2 = LOW[1]<LOW[2]Cond3 = HIGH[3]<HIGH[2]Cond4 = HIGH[1]<HIGH[2]Cond5 = LOW[1]>LOW[3]Cond6 = LOW[3]=MyLowCondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5 AND Cond6MyStop = (HIGH[2]-LOW[3])/pipsizeMyHigh = HIGH[2]//MyATR = AverageTrueRange[14](close)MySize = 100IF not onmarket AND OPEN>LOW[3] AND OPEN<HIGH[2] AND CondTOT THENBUY MySize SHARES AT (MyHigh+0.0000) STOPENDIFSET STOP pLOSS MyStopSET TARGET PROFIT MyHigh-MyStop02/16/2019 at 11:09 PM #91547Avendo usato sistemi diversi per SL e TP, devi cambiare la riga 31 così:
1SET TARGET PROFIT MyHigh-(MyStop*pipsize)02/17/2019 at 9:26 PM #91584ciao,
ho variato la riga 31 seguendo esattamente le tue istruzioni ma evidentemente c’è ancora qualcosa che non gira come dovrebbe…
ho rifatto girare il sistema su EURGBP e dopo una entrata perfetta sul pattern 123 l’operazione viene chiusa immediatamente, e non saprei proprio dove metterci le mani 🙁
allego una videata dell’operazione.
Grazie mille.
02/17/2019 at 9:35 PM #91586ho anche risistemato la riga 18, dove mi era sfuggito un “pipsize” ma il risultato continua a non essere coerente con ciò che pensavo di aver programmato :((
allego un’altra videata con un’uscita ancora più “strana”.
quando riuscirò a sistemare/risolvere questo problema avrò sicuramente fatto un enorme passo avanti 😉
Grazie.
02/17/2019 at 11:33 PM #91590Dimmi su quale TF lo usi (mi sembra Daily) e quale candela è quella evidenziate, mi pare il 29 Maggio, ma di quale anno?
02/18/2019 at 3:22 PM #91644hai ragione, scusa se non sono stato preciso.
la data di ingresso è il 29 aprile 2015 ed il backtest l’ho fatto girare su EURGBP.
ho provato a fare anche altre modifiche/sistemazioni (andando per tentativi, ma comunque di buon senso) ma ho sempre ottenuto risultati strani e non desiderati.
mi spiego meglio.
le caratteristiche del pattern sono:
1.il pattern è composto da tre candele, 23,24 e 27 aprile 2015
2. lo stop loss deve essere impostato al minimo della candela del 23 aprile 2015
3.il valore di take profit è dato dal massimo della candela del 24 aprile 2015 alla quale aggiungo i pips derivanti dalla differenza tra tale massimo ed il minimo del 23 aprile (praticamente l’ampiezza del pattern).
4. posso entrare in posizione long a partire già dal primo giorno successivo al mio pattern, ovvero dal 28 aprile, nel momento in cui avviene il superamento del massimo della candela del 24 aprile (valore che devo fissare per mantenerlo valido per tutti i giorni successivi fino a quando non ho l’ingresso in posizione).
5. non vi devono essere aperture in gap, ovvero se un open nei giorni successivi al pattern è inferiore al minimo del 23 aprile o superiore al massimo del 24 aprile e poi avviene il superamento del massimo del 24 aprile non si deve entrare in posizione (e l’operazione pendente dovrebbe essere cancellata…)
6. il minimo del 23 aprile deve anche essere il valore più basso degli ultimi 20 minimi a partire dal 23 aprile compreso ed andando indietro.
purtroppo non sono ancora riuscito a settare per bene tutti questi parametri.
Grazie.
02/18/2019 at 4:53 PM #91659Devi postare il codice esatto con cui hai fatto la prova, altrimenti non riesco a riprodurre il backtest.
A me apre una posizione soltanto il 7 Gennaio 2015 e la chiude il giorno dopo sulla base dello stop loss, correttamente.
02/18/2019 at 8:18 PM #9168012345678910111213141516171819202122232425262728293031// Definizione dei parametri del codiceDEFPARAM CumulateOrders = True // Posizioni cumulate disattivate//DEFPARAM FlatAfter = 220000//DEFPARAM FLATBEFORE = 090000// Condizioni per entrare su posizioni long//indicator6 = CurrentDayOfWeek = 1MyLow = Lowest[20](Low)Cond1 = LOW[3]<LOW[2]Cond2 = LOW[1]<LOW[2]Cond3 = HIGH[3]<HIGH[2]Cond4 = HIGH[1]<HIGH[2]Cond5 = LOW[1]>LOW[3]Cond6 = LOW[3]=MyLowCondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5 AND Cond6MyStop = (HIGH[2]-LOW[3])/pipsizeMyHigh = HIGH[2]//MyATR = AverageTrueRange[14](close)MySize = 10000IF not onmarket AND OPEN>LOW[3] AND OPEN<HIGH[2] AND CondTOT THENBUY MySize SHARES AT (MyHigh+0.0000) STOPENDIFSET STOP pLOSS MyStopSET TARGET PROFIT MyHigh-(MyStop*pipsize)02/18/2019 at 8:21 PM #91681ero completamente concentrato a cercare di spiegare al meglio come doveva funzionare il pattern che mi sono totalmente dimenticato di allegare il codice 🙁
da questo codice, su EURGBP daily, riesco ad ottenere solo una operazione che entra corretta ma si chiude in modo anomalo
allego una immagine dell’unica operazione effettuata
grazie.
02/18/2019 at 8:24 PM #91683l’operazione, dopo aperta, non hai mai raggiunto il livello di stop loss ed ha ampiamente raggiunto il take profit
non riesco a capire il perché della chiusura “anticipata” rispetto al reale momento in cui avrebbe dovuto chiudere.
grazie.
02/19/2019 at 12:55 PM #91744Ricordati di fare in modo di allegare una foto con TUTTI i dettagli, oppire di scriverli nel testo del post.
AD ogni modo, prova questa stessa versione con l’aggiunta delle ultime righe di debug (Graph e GraphOnPrice). Ti potranno aiutare a trovare il problema.
Nella foto che allego vedrai una finestra, nella parte superiore, dove ci sono la variabili indicate con GRAPH, mentre sul grafico del prezzo troverai i tratti colorati di quelle indicate con GRAPHONPRICE.
Spostando il mouse sui una candela e fermandotici qualche secondo otterrai le informazioni, relative a quelle variabili, candela per candela.
Nella finestra del prezzo ti ho evidenziato il valore di MyHigh (indicato con “H”), quello dello SL per i long (indicato con “l”) e lo SL per gli short (indicato con “s”). Si possono scrivere etichette anche più lunghe di una sola lettera, ma in quel caso i colori vengono ignorati e ne usa uno solo di default.
12345678910111213141516171819202122232425262728293031323334353637// Definizione dei parametri del codiceDEFPARAM CumulateOrders = True // Posizioni cumulate disattivate//DEFPARAM FlatAfter = 220000//DEFPARAM FLATBEFORE = 090000// Condizioni per entrare su posizioni long//indicator6 = CurrentDayOfWeek = 1MyLow = Lowest[20](Low)Cond1 = LOW[3]<LOW[2]Cond2 = LOW[1]<LOW[2]Cond3 = HIGH[3]<HIGH[2]Cond4 = HIGH[1]<HIGH[2]Cond5 = LOW[1]>LOW[3]Cond6 = LOW[3]=MyLowCondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5 AND Cond6MyStop = (HIGH[2]-LOW[3])/pipsizeMyHigh = HIGH[2]//MyATR = AverageTrueRange[14](close)MySize = 10000IF not onmarket AND OPEN>LOW[3] AND OPEN<HIGH[2] AND CondTOT THENBUY MySize SHARES AT (MyHigh+0.0000) STOPENDIFSET STOP pLOSS MyStopSET TARGET PROFIT MyHigh-(MyStop*pipsize)graph high[2]graph low[3]graph high[2] - low[3]graphonprice MyHigh coloured (0,255,0,255) AS "H"graphonprice tradeprice + (MyStop*pipsize) coloured (255,0,0,255) AS "s"graphonprice tradeprice - (MyStop*pipsize) coloured (0,0,255,255) AS "l"02/19/2019 at 2:30 PM #91753grazie mille, seguirò sicuramente questo tuo prezioso consiglio e traccerò le linee sul grafico.
intanto leggendo anche la tua risposta sul discorso oscillatore, penso che il problema probabilmente possa riguardare la riga 25 dove richiamo il valore OPEN per evitare di avere un gap-up o un gap-down, che mi fa spostare in avanti di una candela tutti i ragionamenti.
quale tipo di istruzione devo inserire nel codice per comprare esattamente al prezzo corrispondente al massimo della candela del 24 ?(con riferimento alla ultima videata che ho allegato)
il problema è sempre lo stesso: se apre in gap oltre il valore di ingresso che mi sono calcolato, non voglio più comprare oppure se dopo aver aperto in gap-up il prezzo dovesse ritornare indietro verso il mio valore di ingresso non vorrei comunque più acquistare (perché il titolo richiudendo il gap aperto potrebbe potenzialmente darmi un segnale di debolezza).
negli anni ho riscontrato (e adesso i backtest di PRT mi potrebbero dare la conferma “scientifica”) che le migliori percentuali di successo si hanno quando, dopo il verificarsi di un pattern, il titolo apre sotto il livello di ingresso e poi durante le contrattazioni lo supera, non quando apre in gap e poi magari retrocede su valori inferiori.
Grazie mille !
02/19/2019 at 4:32 PM #91755quale tipo di istruzione devo inserire nel codice per comprare esattamente al prezzo corrispondente al massimo della candela del 24 ?(con riferimento alla ultima videata che ho allegato)
la candela di setup è il 28, infatti entra il 29, quindi per entrare sul massimodel 24 devi fare riferimento alla candela [2], cioè la seconda precedente. Puoi farlo così:
1BUY MySize SHARES AT (high[2]+0.0000) STOPTieni presente che gli ordini pendenti scadono ogni candela, per cui alla chiusura di quella successiva non cisarà più, perchP entrato o perché cancellato. Se non è entrato a mercato ed il segnale è ancora valido devi reimmetterlo di nuovo.
-
AuthorPosts
Find exclusive trading pro-tools on