Buongiorno a tutti, è la prima volta che scrivo sul Forum per cui perdonate alcuni miei errori . Vorrei iniziare a programmare con Probuilder in modo da testare le mie future strategie, ho iniziato da una cosa semplice semplice che vi riporto :
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
c1 = (close > open)
c2 = (DClose(1) < DOpen(1))
c3 = (high < DHigh(1))
c4 = (low > DLow(1))
c5 = high[1]
c6=low[1]
IF c1 AND c2 AND c3 AND c4 THEN
BUY 1000 CASH at c5 stop
ENDIF
// Stop e target
set stop loss c6
SET TARGET %PROFIT 5
L’entrata al superamento del massimo della prima candela di set up funziona, il target funziona mentre l’eventuale uscita al minimo della prima candela di setup no.
Ho letto qualche cosa nel forum ma non ne sono ancora venuto a capo , potete aiutarmi? Nell’esempio , avrebbe dovuto uscire alla terza candela verde dopo l’entrata in quanto il prezzo ha toccato 380€ andando sotto il minimo della prima candela di set up ( 381€ ) ( due candele prima dell’entrata sul mercato ) .
Vi ringrazio molto, ciao
C6 deve contenere una differenza di prezzo, non un prezzo.
Leggi questo post https://www.prorealcode.com/topic/spostare-lo-stop/#post-93970.
Se hai dubbi scrivi pure.
Grazie Roberto, ho inserito c6= high[1]-low[1] e ora si avvicina a quello che volevo creare . Tuttavia :
Max prima candela setup = 405.46 , min prima candela setup = 381 , c6 = 24,46
Mi entra sul mercato al prezzo di 407,56 ( apre sopra il max della prima candela di setup ) e mi aspetto di avere margine fino a 383,1 ( anche se per me l’ideale sarebbe il minimo reale e cioè 381 ) , esce invece dal mercato al prezzo di 391,83 . Sbaglio qualcosa nella logica ?
Nel secondo caso chiaramente se l’apertura è molto bassa mi fa uscire dal mercato con una perdita superiore allo stop loss, ma quello è un altro discorso.
Saluti
Bisogna che tu consideri l’eventuale distanza minina dello stop richiesta dal broker per quello strumento.
Ad ogni modo per fare verifiche precise mi occorre:
– il codice completo
– lo strumento utilizzato
– il TF utilizzato
– data e ora della candela di apertura dell’operazione.
Solo in questo modo posso replicare esattamente quello che ti è successo.
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
c1 = (close > open)
c2 = (DClose(1) < DOpen(1))
c3 = (high < DHigh(1))
c4 = (low > DLow(1))
c5 = high[1]
c6=high[1]-low[1]
IF c1 AND c2 AND c3 AND c4 THEN
BUY 1000 CASH at c5 stop
ENDIF
// Stop e target
set stop loss c6
SET TARGET %PROFIT 5
titolo netflix
backtest con TF daily
i giorni in questione sono il 27 e 28 giugno 2018
Grazie
Lo SL non viene raggiunto, quindi va in profitto.
Aggiungi alla fine della strategia queste 3 righe e rifai il backtest:
graphonprice c5 coloured(255,0,0,255) AS "PrezzoEntrata"
graphonprice (tradeprice - c6) coloured(0,128,0,255) AS "SL"
graphonprice tradeprice coloured(0,0,255,255) AS "TradePrice"
Sul grafico potrai vedere le tre linee con colori diversi:
- C5 in ROSSO
- Stop Loss in VERDE
- TradePrice in BLU’
questo ti faciliterà il debugging (verifica del codice).
interessanti le 3 linee , devo studiarmele bene. Tuttavia non mi torna una cosa : a me segna che entra a mercato il 27 giugno 2018 al prezzo di 407,56 ( avendo giustamente superato il max della prima candela di setup 405,46 ) ed esce il 28 giugno 2018 al prezzo di 391,83 con una perdita.
Non arriva al stop loss ma esce
il target è del 5% quindi non lo tocca per uscire dal mercato in positivo.
Sbaglio qualcosa nella visione del grafico del backtest?
Grazie, ciao
avevo allegato anche la lista ordini….
ho fatto un po di confusione con la lista ordini, scusa. la prima è con spread 2 e la seconda è quella senza spread ( quella che uso di solito per il backtest ) che entra quindi a mercato a 407,56
Ciao
Quindi scusa Roberto, interpreto male io il grafico di uscita del trade?
Succede perché C6 viene ricalcolato ad ogni candela, mentre una volta stabilito il setup non deve più cambiare, fino ad un nuovo setup, metti il calcolo di C6 all’interno delle condizioni BUY, così:
IF c1 AND c2 AND c3 AND c4 THEN
c6=high[1]-low[1]
BUY 1000 CASH at c5 stop
ENDIF
Funziona. Grazie Roberto, gentilissimo