TS HEIKEN ASHI
Forums › ProRealTime forum Italiano › Supporto ProOrder › TS HEIKEN ASHI
- This topic has 3 replies, 2 voices, and was last updated 3 years ago by robertogozzi.
-
-
06/09/2021 at 3:58 PM #171488
Buon pomeriggio a tutti, tramite il forum non riesco a capire come definire le heiken ashi.
Vorrei provare a codificare un TS che si basa su questo tipo di candele, potete aiutarmi a definire: chiusura, apertura, massimo e minimo?
Il resto ovviamente lo faccio da solo.Grazie
06/09/2021 at 4:19 PM #171489Ecco, sono alcune semplici righe che puoi usare sempre, su qualunque time frame, per definire le Heikin-Ashi. Solitamente si mettono verso l’inizio del codice (dopo eventuali DEFPARAM), in ogni caso basta metterle PRIMA dell’uso.
Esistono 3-4 modi (ognuno leggermente diverso dagli altri), ma questo è il più semplice, si può usare con screener, indicatori e strategie:
Definizione candele Heikin-Ashi12345678910once xOpen = open //Apertura inizialexClose = (open + close + high + low) / 4 //Chiusuraif barindex > 0 thenxOpen = (xOpen[1] + xClose[1]) / 2 //Apertura (dopo la prima)endifxLow = min(low,min(xClose,xOpen)) //MinimoxHigh = max(high,max(xClose,xOpen)) //MassimoxTypic = (xHigh + xLow + xClose) / 3 //Typical pricexMed = (xHigh + xLow) / 2 //Medium pricexRange = xHigh - xLow //Rangeper riferirti ad Open Heikin-Ashi dovrai usare xOpen, al Minimo userai xLow, ecc…
Se vuoi usarle su più TF all’interno dello stesso codice, dovrai usare nomi diversi, ad esempio:
12345678910111213Timeframe(1 hour)once xOpen1 = open //Apertura inizialexClose1 = (open + close + high + low) / 4 //Chiusuraif barindex > 0 thenxOpen1 = (xOpen1[1] + xClose1[1]) / 2 //Apertura (dopo la prima)endif//Timeframe(5 minuti)once xOpen5 = open //Apertura inizialexClose5 = (open + close + high + low) / 4 //Chiusuraif barindex > 0 thenxOpen5 = (xOpen5[1] + xClose5[1]) / 2 //Apertura (dopo la prima)endifnell’esempio ho definito solo xOpen e xClose, può anche bastare se non ti servoni gli altri dati, non è obbligatorio definirli tutti.
06/09/2021 at 9:09 PM #171511Ti ringrazio Roberto, ho inserito il tutto in trade system. Puoi aiutarmi a controllarlo?
Le logiche sono:
BUY
-CANDELA HE RIALZISTA TUTTA CORPO (Body > 50% Range)
-MASSIMO CHE ROMPE BB SUPERIORE-STOP LOSS TECNICO MINIMO TRA 2 MINIMI FA E MEDIANA BB (sono riuscito a fare solo la prima condizione, almeno penso di averla fatta)
TAKE PROFIT X VOLTE LO STOP LOSS (1,618)
NUMERO MASSIMO DI CANDELE (8 o 13) dopo si chiude il trade
SELL
-CANDELA HE RIBASSISTA TUTTA CORPO (Body > 50% Range)
-MINIMO CHE ROMPE BB INFERIORE-STOP LOSS TECNICO MASSIMO TRA 2 MASSIMI FA E MEDIANA BB (sono riuscito a fare solo la prima condizione, almeno penso di averla fatta)
TAKE PROFIT X VOLTE LO STOP LOSS (1,618)
NUMERO MASSIMO DI CANDELE (8 o 13) dopo si chiude il trade
Ti Allego il codice:
Codice1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768DEFPARAM PreLoadBars = 100DEFPARAM CumulateOrders = FalseDEFPARAM FLATBEFORE = 070100 // Il TS non apre trade prima di questo orarioDEFPARAM FLATAFTER = 180000 // Il TS non apre trade dopo questo orario e chiude le posizioni ancora aperte// HA - definizione Heikin-Ashionce xOpen = openxClose = (open+close+high+low)/4if barindex > 0 thenxOpen = (xOpen[1]+xClose[1])/2endifxLow = min(low,min(xClose,xOpen))xHigh = max(high,max(xClose,xOpen))xRange = abs(xHigh - xLow)xBody = abs(XClose - xOpen)//Indicatore BBBBUP = BollingerUp[20](xclose)BBDW = BollingerDown[20](xclose)MEDIA20 = Average[20](xClose)// Condizioni corpo candelaRatio = 0.5 // il 50%c1 = abs(xBody > XRange*Ratio)// Chiusura Posizioni dopo n CandeleTempoScaduto = ((BarIndex - TradeIndex) >= 8) // il trade si chiude dopo "n" candele// Aggiungo "n" Point/Pips al mio stopLossNpips = 2 * pipsize//Condizione BUY - BUYBOUTc2 = xHigh >= BBUP // il massimo della candela è maggiore o uguale alle UPBBc3 = xClose > xOpen // Candela RialzistaMyStop1 = abs((xClose - Lowest[2](xLow))- Npips) // il minimo tra 2 minimi fa - NpipsMyProfit1 = TradePrice + (abs (MyStop1*1.618))//Condizione SELL - SELLBOUTc4 = xLow <= BBDW // il minimo della candela è minore o uguale alle DOWNBBc5 = xClose < xOpen // Candela RibassistaMyStop2 = abs((xClose + Highest[2](xHigh))+ Npips) // il massimo tra due massimi fa + NpipsMyProfit2 = TradePrice - (abs (MyStop2*1.618))// Condizioni per entrare su posizioni longIF NOT LongOnMarket AND c1 and c2 and c3 THENBUY 1 CONTRACTS AT MARKETSET STOP LOSS MyStop1 //se inserisco MySTop1 devo togliere la "p" prima di LOSSSET TARGET PROFIT MyProfit1 //se inserisco MyProfit1 devo togliare la "p" prima di PROFITENDIF// Condizioni per uscire da posizioni longIf LongOnMarket AND TempoScaduto THENSELL AT MARKETENDIF// Condizioni per entrare su posizioni shortIF NOT ShortOnMarket AND c1 and c4 and c5 THENSELLSHORT 1 CONTRACTS AT MARKETSET STOP LOSS MyStop2 //se inserisco MySTop2 devo togliere la "p" prima di LOSSSET TARGET PROFIT MyProfit2 //se inserisco MyProfit2 devo togliare la "p" prima di PROFITENDIF// Condizioni per uscire da posizioni shortIF ShortOnMarket AND TempoScaduto THENEXITSHORT AT MARKETENDIF06/10/2021 at 8:46 AM #171544Mi sembra vada bene. Dal punto di vista logico è corretto.
-
AuthorPosts
Find exclusive trading pro-tools on