Tendência de criptomoeda seguindo estratégia baseada em Heiken Ashi

Autora:ChaoZhang, Data: 2024-01-19 17:40:52
Tags:

img

Resumo

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.

Estratégia lógica

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.

Vantagens

  • Usando Heiken Ashi pode efetivamente filtrar o ruído e tornar os sinais de negociação mais claros
  • A dupla EMA combinada com a Heiken Ashi pode identificar tendências relativamente fortes a médio e longo prazo.
  • Julgamentos de várias condições ajudam a evitar perder boas oportunidades
  • A estratégia é especialmente adequada para o mercado de criptomoedas altamente volátil
  • Pode ser configurado como uma estratégia de longo prazo para reduzir os riscos comerciais

Riscos

  • Podem ocorrer grandes perdas devido ao facto de o stop loss ser demasiado frouxo
  • A estratégia pode gerar negociações mais ineficazes em mercados limitados ao intervalo
  • Ainda há algum atraso em Heiken Ashi, incapaz de evitar completamente os riscos
  • Não pode determinar pontos de inversão da tendência, enfrentando riscos de expansão das perdas

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.

Orientações de otimização

A estratégia pode também ser otimizada nos seguintes aspectos:

  • Otimizar os parâmetros EMA para encontrar a melhor combinação de parâmetros
  • Tente outros indicadores para substituir o Heiken Ashi, como KDJ, MACD etc.
  • Adicionar a diferença de preço como confirmação de entrada
  • Incorporar indicadores de volatilidade para determinar a inversão da tendência
  • Usar métodos de aprendizagem de máquina para otimizar dinamicamente parâmetros

Conclusão

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")




Mais.