Esta estratégia é uma estratégia de tendência de criptomoeda baseada no indicador Heiken Ashi. Ela usa duas médias móveis exponenciais (EMA) com diferentes períodos combinados com Heiken Ashi e várias condições para gerar sinais de negociação.
A estratégia emprega EMAs de 50 e 100 períodos. Enquanto isso, ele calcula velas Heiken Ashi, que é um candelabro especial que pode filtrar o ruído do mercado. A estratégia usa preços abertos, fechados, altos e baixos das velas Heiken Ashi e as aplica à EMA de 100 períodos para gerar sinais de negociação mais precisos.
Especificamente, quando o preço de abertura do Heiken Ashi de 100 períodos está acima do preço de fechamento e o preço de abertura da vela anterior está abaixo do preço de fechamento, é um sinal longo.
A estratégia combina o sistema dual EMA e o indicador Heiken Ashi, com o objetivo de capturar oportunidades em tempo hábil quando se formam tendências de médio a longo prazo.
Para mitigar os riscos, podemos reduzir adequadamente o intervalo de stop loss, ou considerar a combinação de outros indicadores para determinar a inversão da tendência.
A estratégia pode também ser otimizada nos seguintes aspectos:
A estratégia de tendência de criptomoeda baseada em Heiken Ashi considera aspectos como julgamento de tendência, tempo de entrada, controle de stop loss, etc., tornando-a muito adaptável a ativos altamente voláteis como criptomoedas. Usando Heiken Ashi para filtrar o ruído e adotando métodos robustos de controle de risco, a estratégia pode efetivamente aproveitar as oportunidades de negociação trazidas pelas tendências de preços de médio a longo prazo.
/*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")