Ho scritto questo piccolo sistema per provare la sintassi di programmazione. Sembra che funzioni correttamente: rispetta le condizioni di ingresso, stop e uscita a tempo. Il problema sorge nello StopLoss quando acquista ad un livello maggiore di + 4*pointisize del livello di ingresso. Io vorrei lo stop +4*pontsize sotto il livello minimo del pattern. Cioè lo StopLoss deve essere prezzo d’ingresso – il minimo del pattern + 4*pontsize. Aiutatemi nella sintassi, sia per lo stop sia se c’è una maniera migliore per scrivere il tutto. Vi ringrazio enormemente.
DEFPARAM CumulateOrders = false
baby=high<high[1] and low>low[1] //pattern per l'ingresso
entrata= high[1] + 1*POINTSIZE //livello di entrata: il MAX della candela [1]
uscita=barindex-tradeindex>=10 //uscita a tempo: dopo 10 candele
IF baby and entrata THEN //condizione verificata per buy
compra= 1
BUY 1 CONTRACTS AT entrata stop //compra a qualsiasi prezzo sopra il livello di entrata
SET STOP PLOSS (high[1]-lowest[2](low))+4*pointsize //stoploss: il il MAX candela[1] - il minimo del pattern + 4 punti
endif
If compra =1 and uscita THEN //condizione verificata per uscire a tempo
SELL AT MARKET //vende a qualsiasi prezzo
ENDIF
mi spiego meglio:
Voglio trovare il valore del prezzo d’ingresso, il valore del minimo dove metto lo stop per poter fare la differenza.
differenza = prezzo ingresso – prezzo minimo del pattern
Quella differenza diventa lo StopLoss e quindi mi permette di mettere
SET STOP LOSS differenza
Il calcolo mi sembra corretto, devi solo usare LOSS invece di PLOSS.
LOSS richiede una differenza tra prezzi (come hai fatto tu), mentre PLOSS vuole un numero di pips.
Funzionaaa…. Grazie enormemente
Non sono pratico di programmazione, però ci sono riuscito. Per il resto è scritto bene o si potrebbe fare meglio ?
Va bene, devi solo togliere COMPRA perché non serve.
Nell’uscita sostituisci compra =1 con
OnMarket