Cette stratégie est une stratégie de suivi de tendance de crypto-monnaie basée sur l'indicateur Heiken Ashi. Elle utilise deux moyennes mobiles exponentielles (EMA) avec différentes périodes combinées avec Heiken Ashi et diverses conditions pour générer des signaux de trading.
La stratégie utilise des EMA de 50 et 100 périodes. Pendant ce temps, elle calcule les bougies Heiken Ashi, qui sont un chandelier spécial qui peut filtrer le bruit du marché. La stratégie utilise les prix d'ouverture, de fermeture, de haut et de bas des bougies Heiken Ashi et les applique à l'EMA de 100 périodes pour générer des signaux de trading plus précis.
Plus précisément, lorsque le prix d'ouverture du Heiken Ashi à 100 périodes est supérieur au prix de clôture et que le prix d'ouverture de la bougie précédente est inférieur au prix de clôture, il s'agit d'un signal long.
La stratégie combine le double système EMA et l'indicateur Heiken Ashi, visant à saisir les opportunités en temps opportun lorsque des tendances à moyen et long terme se forment.
Pour atténuer les risques, nous pouvons réduire de manière appropriée la plage de stop loss, ou envisager de combiner d'autres indicateurs pour déterminer l'inversion de tendance.
La stratégie peut également être optimisée dans les aspects suivants:
La stratégie de suivi des tendances de crypto-monnaie basée sur Heiken Ashi a considéré de manière exhaustive des aspects tels que le jugement des tendances, le timing d'entrée, le contrôle des pertes de stop, etc., ce qui la rend très adaptable aux actifs très volatils comme les crypto-monnaies.
/*backtest start: 2023-01-12 00:00:00 end: 2024-01-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@SoftKill21 strategy(title="CRYPTO HA Strategy", shorttitle="CRYPTO HA Strategy", overlay=true , default_qty_type =strategy.percent_of_equity, default_qty_value =100, commission_type= strategy.commission.percent,commission_value =0.1 ) ma1_len = input(50) ma2_len = input(100) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2020, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //First Moving Average data o = ema(open, ma1_len) c = ema(close, ma1_len) h = ema(high, ma1_len) l = ema(low, ma1_len) // === HA calculator === ha_t = heikinashi(syminfo.tickerid) ha_o = security(ha_t, timeframe.period, o) ha_c = security(ha_t, timeframe.period, c) ha_h = security(ha_t, timeframe.period, h) ha_l = security(ha_t, timeframe.period, l) //Second Moving Average data o2 = ema(ha_o, ma2_len) c2 = ema(ha_c, ma2_len) h2 = ema(ha_h, ma2_len) l2 = ema(ha_l, ma2_len) // === Color def === ha_col = o2 > c2 ? color.white : color.lime sell = o2 > c2 and o2[1] < c2[1] and time_cond buy = o2 < c2 and o2[1] > c2[1] and time_cond plotshape(buy, color=color.green, text= "Buy", location= location.belowbar,style= shape.labelup, textcolor=color.white, size = size.tiny, title="Buy Alert",editable=false, transp=60) plotshape(sell, color=color.red, text= "Sell", location= location.abovebar,style= shape.labeldown, textcolor=color.white, size = size.tiny, title="Sell Alert", editable=false, transp=60) trendColor = buy ? color.red : sell ? color.green : na plot( buy ? close: sell ? close : na , color=trendColor, style=plot.style_line, linewidth=4, editable=false) onlylong=input(true) original=input(false) if(onlylong) strategy.entry("long",1,when=buy) strategy.close("long",when=sell) if(original) strategy.entry("long",1,when=buy) strategy.entry("short",0,when=sell) sl = input(0.075) strategy.exit("closelong", "long" , loss = close * sl / syminfo.mintick, alert_message = "sl point") strategy.exit("closeshort", "short" , loss = close * sl / syminfo.mintick, alert_message = "sl point")