Ciao Roberto, vorrei costruire una strategia basata sulle Heikin-Hashii con entrata long o short sulla apertura della quarta candela dello stesso colore, e sull’avvenuto incrocio delle due medie mobili, con uscita posizione all’incrocio successivo.
Poi eventualmente inserirò io ulteriori stop loss e take profit. Per chiarezza ti allego un immagine.
Grazie.
Le strategie vengono eseguite alla chiusura di ogni candela, per cui alla chiusura della terza o della quarta, ovviamente non si può sapere di quale colore sarà la successiva.
Eccolo:
DEFPARAM CumulateOrders = FALSE
//
// definizione delle candele Heikin-Ashi
once xOpen = open
xClose = (open + close + high + low) / 4
if barindex > 0 then
xOpen = (xOpen + xClose[1]) / 2
endif
//xLow = min(low,min(xClose,xOpen))
//xHigh = max(high,max(xClose,xOpen))
//xTypic = (xHigh + xLow + xClose) / 3
//xMed = (xHigh + xLow) / 2
//xRange = xHigh - xLow
xBullish = xClose > xOpen
xBearish = xClose < xOpen
//
NumeroHA = 3
SerieUP = (summation[NumeroHA](xBullish) = NumeroHA)
SerieDN = (summation[NumeroHA](xBearish) = NumeroHA)
//
ONCE CrossUP = 0
ONCE CrossDN = 0
IF IsLastBarUpdate THEN
Sma20 = Average[20,0](close)
Sma50 = Average[50,0](close)
IF CrossUP = 0 THEN
CrossUP = Sma20 CROSSES OVER Sma50
IF CrossUP THEN
CrossDN = 0
ENDIF
ENDIF
IF CrossDN = 0 THEN
CrossDN = Sma20 CROSSES UNDER Sma50
IF CrossDN THEN
CrossUP = 0
ENDIF
ENDIF
CambioDirezione = (CrossUP AND CrossDN[1]) OR (CrossUP[1] AND CrossDN)
ENDIF
// LONG
IF SerieUP AND CrossUP AND Not OnMarket THEN
BUY 1 Contract AT Market
ENDIF
IF LongOnMarket AND CambioDirezione THEN
SELL AT Market
ENDIF
// SHORT
IF SerieDN AND CrossDN AND Not OnMarket THEN
SELLSHORT 1 Contract AT Market
ENDIF
IF ShortOnMarket AND CambioDirezione THEN
EXITSHORT AT Market
ENDIF
//
SET TARGET pPROFIT 500
SET STOP pLOSS 100
//
graph SerieUP
graph SerieDN
graph CrossUP
graph CrossDN
graph CambioDirezione
Grazie Roberto, sempre molto gentile, pensavo fosse piu semplice, non ci sarei mai riuscito.
Scusa Roberto, ma come posso evitare che apra una nuova posizione dopo aver raggiunto il profit? Ti allego un immagine con le freccette dove vorrei che non entrasse a mercato.
Subito dopo la riga 42 (tra BUY ed ENDIF) inserisci queste:
SerieUP = 0
CrossUP = 0
subito dopo la riga 49 (tra SELLSHORT ed ENDIF) inserisci queste:
SerieDN = 0
CrossDN = 0
non l’ho provato, ma dovrebbe funzionare.