Cette stratégie est basée sur un seul indicateur - Heikin-Ashi lissé, pour mettre en œuvre une tendance simple à la suite d'opérations d'achat et de vente.
La stratégie calcule la moyenne mobile des prix d'ouverture, de hausse, de baisse et de clôture pour construire une Heikin-Ashi lissée.
Condition d'achat: les barres actuelles sont fermées > les barres précédentes sont fermées, les barres précédentes sont fermées > 2 barres précédentes sont fermées, les 3 dernières barres sont haussières.
Condition de vente: les barres actuelles sont fermées < les barres précédentes sont fermées, les barres précédentes sont fermées < 2 barres auparavant sont fermées, les 3 dernières sont baissières.
Les conditions d'achat et de vente exigent que le dernier signal soit nul ou contraire, afin d'éviter des transactions consécutives dans le même sens.
Des améliorations peuvent être apportées en combinant d'autres indicateurs de tendance à long terme, en optimisant la stratégie de stop loss, en accordant une attention particulière au marché global, etc.
Cette stratégie utilise la capacité de suivi de tendance de Heikin-Ashi
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Masoud Abdoli //Heikin Ashi Smoothed Buy & Sell Strategy Rev.4 //Date: 01-Oct-2021 //@version=4 strategy(title="Abdoli's Heikin Ashi Smoothed Buy & Sell Strategy Rev.4", shorttitle="Heikin-Ashi Smoothed Rev.4", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) MaPeriod = input (title="Moving Average Period?", type=input.integer, defval=65, minval=5, maxval=100, step=5) maOpen = ema(open , MaPeriod) maHigh = ema(high , MaPeriod) maLow = ema(low , MaPeriod) maClose = ema(close, MaPeriod) haClose = (maOpen+maHigh+maLow+maClose)/4 haOpen = 0.0 haOpen:= na(haOpen[1]) ? (maOpen[1]+maClose[1])/2 : (haOpen[1]+haClose[1])/2 haHigh = max(maHigh, max(haClose, haOpen)) haLow = min(maLow , max(haClose, haOpen)) plotcandle(haOpen, haHigh, haLow, haClose, title="heikin-Ashi smoothed", color=haOpen>haClose ? color.orange : color.blue) B0 = haClose - haOpen B1 = haClose[1] - haOpen[1] B2 = haClose[2] - haOpen[2] BuyCondition = B0 > 0.0 and B1 > 0.0 and B2 > 0.0 and haClose > haClose[1] and haClose[1] > haClose[2] SellCondition= B0 < 0.0 and B1 < 0.0 and B2 < 0.0 and haClose < haClose[1] and haClose[1] < haClose[2] last_signal = 0 Buy_final = BuyCondition and (nz(last_signal[1]) == 0 or nz(last_signal[1]) ==-1) Sell_final = SellCondition and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == 1) last_signal := Buy_final ? 1 : Sell_final ? -1 : last_signal[1] plotshape(Buy_final , style=shape.labelup , location=location.belowbar, color=color.blue, title="Buy label" , text="BUY" , textcolor=color.white) plotshape(Sell_final, style=shape.labeldown, location=location.abovebar, color=color.red , title="Sell label", text="SELL", textcolor=color.white) strategy.entry("Buy", strategy.long, when=Buy_final) strategy.close("Buy", when=Sell_final)