Qualcuno può aiutarmi a scrivere un codice ( o mandarmi il link di un post passato) semplice di entrata e uscita in base alle colonne heikin ashi? Entro quando virano e si confermano positive, esco quando virano e si confermano negative.
Intanto occorre definire le candele HA.
Questo è il codice da mettere all’inizio di una strategia, indicatore o screener che sia:
// HA - definizione 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))
Dopodiché va creata la strategia, eccola:
Defparam CumulateOrders = false
// HA - definizione 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))
Rialzo = xClose > xOpen
Ribasso = xClose < xOpen
If Rialzo and Rialzo[1] and Ribasso[2] and not OnMarket then
Buy 1 contract at Market
Endif
If Ribasso and Ribasso[1] and Rialzo[2] and not OnMarket then
Sellshort 1 contract at Market
Endif
Set Target pProfit 60
Set Stop pLoss 30
attende che ci sia un cambio di colore, confermato da un’ulteriore successiva candela.
Non l’ho provata.
Roberto, grazie! Sempre il 🔝!
Stasera la inserisco e ti so dire
Ciao Roberto,
a proposito del codice sopra ma per entrare long solo quando il minimo della candela verde corrisponde esattamente all’apertura e viceversa short solo quando il massimo è uguale all’apertura?
grazie per l’aiuto!
Eccolo:
Defparam CumulateOrders = false
// HA - definizione 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))
LongCond = xClose > xOpen AND xLow = xOpen
Ribasso = xClose < xOpen AND xHigh = xOpen
If LongCond and not OnMarket then
Buy 1 contract at Market
Endif
If ShortCond and not OnMarket then
Sellshort 1 contract at Market
Endif
Set Target pProfit 60
Set Stop pLoss 30
Grazie Roberto!
Sono un pò in difficoltà per implementare la strategia con queste varianti:
TIME H1
Media Mobile semplice 3 spostata di 3 su chiusura.
Ingresso long: Candela verde con tutto il corpo sopra la media con apertura = minimo
USCITA LONG:
- quando su candela verde si verifica ombra sotto maggiore del corpo OPPURE
- massimo più basso del precedente OPPURE
- candela doji OPPURE
- chiusura sotto la ema OPPURE
- cambio colore
Ingresso short: Candela rossa con tutto il corpo sotto la media con apertura = massimo
USCITA SHORT:
- quando su candela rossa si verifica ombra sopra maggiore del corpo OPPURE
- minimo più alto del precedente OPPURE
- candela doji OPPURE
- chiusura sopra la ema OPPURE
- cambio colore
Possibile inserimento di trailing stop che si muove sotto il minimo (long) o sopra il massimo (short) alla fine di ogni candela
GRAZIE INFINITE!
Cosa intendi per spostata di 3?
Sui parametri della ema, Nm Periodi 3 / Spostamento in Periodo 3
Vedi foto.
Inoltre, la media va calcolata sulla chiusura delle normali candele giapponesi o su quella delle candele HA ?
HA
ma si potrebbe provare entrambe le versioni
Ho provato più volte, la allego ma non va…
Comunque se entri nei parametri di configurazione della EMA trovi:
Metodo = Simple
Nm Periodi = 3
Spostamento in Periodo = 3
Ecco:
Defparam CumulateOrders = false
// HA - definizione 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))
xRange = xHigh - xLow
//
Rialzo = xClose > xopen
Ribasso = xClose < xOpen
Piatta = Rialzo AND xLow = xOpen
Ribasso = Ribasso AND xHigh = xOpen
Corpo = abs(xOpen - xClose)
OmbraSU = xHigh - max(xOpen,xClose)
OmbraGIU = min(xOpen,Xclose) - xLow
Doji = Corpo <= xRange * 0.10 //Doji = corpo <= 10% del range
//
Shift = 0 //da 0 a N (non negativo)
Sma3 = Average[3,0](xClose[Shift]) //calcolo sulle candele HA
//Sma3 = Average[3,0](close[Shift]) //calcolo sulla normali candele giapponesi
// entrata LONG
LongCond = Rialzo AND Piatta AND xOpen > Sma3
If LongCond and not OnMarket then
Buy 1 contract at Market
Endif
// uscita LONG
L1 = Rialzo AND OmbraGIU > Corpo
L2 = xHigh < xHigh[1]
L3 = Doji
L4 = xClose < Sma3
L5 = Ribasso AND Rialzo[1]
ExitL = L1 or L2 or L3 or L4 or L5
IF ExitL AND LongOnMarket THEN
SELL AT MARKET
ENDIF
//entrata SHORT
ShortCond = Ribasso AND Piatta AND xOpen < Sma3
If ShortCond and not OnMarket then
Sellshort 1 contract at Market
Endif
// uscita SHORT
S1 = Ribasso AND OmbraSU > Corpo
S2 = xLow > xLow[1]
S3 = Doji
S4 = xClose > Sma3
S5 = Rialzo AND Ribasso[1]
ExitS = S1 or S2 or S3 or S4 or S5
IF ExitS AND ShortOnMarket THEN
EXITSHORT AT MARKET
ENDIF
//
Set Target pProfit 100
Set Stop pLoss 50
//************************************************************************
//trailing stop function
trailingstart = 10 //trailing will start @trailinstart points profit
trailingstep = 5 //trailing step to move the "stoploss"
//reset the stoploss value
IF NOT ONMARKET THEN
newSL=0
ENDIF
//manage long positions
IF LONGONMARKET THEN
//first move (breakeven)
IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
newSL = tradeprice(1)+trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
newSL = newSL+trailingstep*pipsize
ENDIF
ENDIF
//manage short positions
IF SHORTONMARKET THEN
//first move (breakeven)
IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
newSL = tradeprice(1)-trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
newSL = newSL-trailingstep*pipsize
ENDIF
ENDIF
//stop order to exit the positions
IF newSL>0 THEN
SELL AT newSL STOP
EXITSHORT AT newSL STOP
ENDIF
//************************************************************************
Le righe 23 e 24 calcolano la SMA3 su HA o candele giapponesi normali, basta che togli le barre di commento da una riga e le metti sull’altra per cambiare.
Lo shift (riga 22), NON può essere negativo (solo PRT può farlo).
Alla riga 20 stabilisci te la percentuale del corpo per essere considerata DOJI.
Il trailing stop è quello di Nicolas.