Richiesta aiuto per settaggio TARGET PROFIT

Viewing 15 posts - 1 through 15 (of 117 total)
  • Author
    Posts
  • #91492 quote
    Albert FX
    Participant
    Average

    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.

    / Definizione dei parametri del codice
    DEFPARAM CumulateOrders = True // Posizioni cumulate disattivate
    
    //DEFPARAM FlatAfter = 220000
    //DEFPARAM FLATBEFORE = 090000
    
    // Condizioni per entrare su posizioni long
    //indicator6 = CurrentDayOfWeek = 1
    
    MyLow = 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]=MyLow
    CondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5 AND Cond6
    MyStop = LOW[3]
    MyHigh = HIGH[2]
    
    //MyATR = AverageTrueRange[14](close)
    
    MySize = 100
    
    IF not onmarket AND OPEN>LOW[3] AND OPEN<HIGH[2] AND CondTOT THEN
    BUY MySize SHARES AT (MyHigh+0.0000) STOP
    ENDIF
    
    SET STOP pLOSS MyStop
    SET TARGET PROFIT MyHigh+(MyHigh-MyStop)
    Schermata-2019-02-15-alle-22.42.14.png Schermata-2019-02-15-alle-22.42.14.png Schermata-2019-02-15-alle-22.41.36.png Schermata-2019-02-15-alle-22.41.36.png
    #91506 quote
    robertogozzi
    Moderator
    Master

    Per 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:

    1. $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)
    2. %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)
    3. pLOSS e pPROFIT   richiedono, rispettivamente, l’indicazione di quanti PIPS puoi perdere e quanti ne vuoi guadagnare (esempio: 30)
    4. 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:

    MyStop = (HIGH[2] - LOW[3]) / pipsize

    perché devi calcolare la differenza e convertirla in pips in quanto hai indicato “pPROFIT“, se non avessi indicato la “p” iniziale sarebbe bastato:

    MyStop = HIGH[2] - LOW[3]

    La riga 30 richiede una differenza di prezzo, quindi devi scriverla così:

    SET TARGET PROFIT MyHigh-MyStop

    in 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:

    BUY MySize SHARES AT (MyHigh+(0.0000*pipsize)) STOP

    Perché 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.
    #91544 quote
    Albert FX
    Participant
    Average

    innanzitutto 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.

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = True // Posizioni cumulate disattivate
    
    //DEFPARAM FlatAfter = 220000
    //DEFPARAM FLATBEFORE = 090000
    
    // Condizioni per entrare su posizioni long
    //indicator6 = CurrentDayOfWeek = 1
    
    MyLow = 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]=MyLow
    CondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5 AND Cond6
    MyStop = (HIGH[2]-LOW[3])/pipsize
    MyHigh = HIGH[2]
    
    //MyATR = AverageTrueRange[14](close)
    
    MySize = 100
    
    IF not onmarket AND OPEN>LOW[3] AND OPEN<HIGH[2] AND CondTOT THEN
    BUY MySize SHARES AT (MyHigh+0.0000) STOP
    ENDIF
    
    
    SET STOP pLOSS MyStop
    SET TARGET PROFIT MyHigh-MyStop
    Esempio-123-Ross.png Esempio-123-Ross.png
    #91547 quote
    robertogozzi
    Moderator
    Master

    Avendo usato sistemi diversi per SL e TP, devi cambiare la riga 31 così:

    SET TARGET PROFIT MyHigh-(MyStop*pipsize)
    #91584 quote
    Albert FX
    Participant
    Average

    ciao,

    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.

    Ross-Exit.png Ross-Exit.png
    #91586 quote
    Albert FX
    Participant
    Average

    ho 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.

    Ross-Exit2.png Ross-Exit2.png
    #91590 quote
    robertogozzi
    Moderator
    Master

    Dimmi su quale TF lo usi (mi sembra Daily) e quale candela è quella evidenziate, mi pare il 29 Maggio, ma di quale anno?

    #91644 quote
    Albert FX
    Participant
    Average

    hai 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.

    #91659 quote
    robertogozzi
    Moderator
    Master

    Devi 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.

    #91680 quote
    Albert FX
    Participant
    Average
    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = True // Posizioni cumulate disattivate
    
    //DEFPARAM FlatAfter = 220000
    //DEFPARAM FLATBEFORE = 090000
    
    // Condizioni per entrare su posizioni long
    //indicator6 = CurrentDayOfWeek = 1
    
    MyLow = 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]=MyLow
    CondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5 AND Cond6
    MyStop = (HIGH[2]-LOW[3])/pipsize
    MyHigh = HIGH[2]
    
    //MyATR = AverageTrueRange[14](close)
    
    MySize = 10000
    
    IF not onmarket AND OPEN>LOW[3] AND OPEN<HIGH[2] AND CondTOT THEN
    BUY MySize SHARES AT (MyHigh+0.0000) STOP
    ENDIF
    
    
    SET STOP pLOSS MyStop
    SET TARGET PROFIT MyHigh-(MyStop*pipsize)
    #91681 quote
    Albert FX
    Participant
    Average

    ero 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.

    #91683 quote
    Albert FX
    Participant
    Average

    l’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.

    Op-123-2015.png Op-123-2015.png
    #91744 quote
    robertogozzi
    Moderator
    Master

    Ricordati 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.

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = True // Posizioni cumulate disattivate
     
    //DEFPARAM FlatAfter = 220000
    //DEFPARAM FLATBEFORE = 090000
     
    // Condizioni per entrare su posizioni long
    //indicator6 = CurrentDayOfWeek = 1
     
    MyLow = 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]=MyLow
    CondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5 AND Cond6
    MyStop = (HIGH[2]-LOW[3])/pipsize
    MyHigh = HIGH[2]
     
    //MyATR = AverageTrueRange[14](close)
     
    MySize = 10000
     
    IF not onmarket AND OPEN>LOW[3] AND OPEN<HIGH[2] AND CondTOT THEN
    BUY MySize SHARES AT (MyHigh+0.0000) STOP
    ENDIF
     
    SET STOP pLOSS MyStop
    SET 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"
    x-9.jpg x-9.jpg
    #91753 quote
    Albert FX
    Participant
    Average

    grazie 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 !

    #91755 quote
    robertogozzi
    Moderator
    Master

    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)

    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ì:

    BUY MySize SHARES AT (high[2]+0.0000) STOP

    Tieni 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.

Viewing 15 posts - 1 through 15 (of 117 total)
  • You must be logged in to reply to this topic.

Richiesta aiuto per settaggio TARGET PROFIT


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Albert FX @albert-fx Participant
Summary

This topic contains 116 replies,
has 2 voices, and was last updated by robertogozzi
6 years, 9 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 02/15/2019
Status: Active
Attachments: 26 files
Logo Logo
Loading...