A estratégia é baseada em três períodos de tempo de medias asimetricas suaves, que produzem sinais de negociação quando diferentes indicadores de períodos são otimistas ou pessimistas. O objetivo é usar vários quadros de tempo para confirmar a tendência e reduzir a probabilidade de falsos sinais.
O Heiken Ashi é um indicador diferente da linha K comum, que é calculado para suavizar a curva de preços e identificar tendências com maior precisão.
Esta estratégia usa um indicador de média diferencial de planejamento para os três períodos de tempo do Sol, do Cinturão e da Lua. Um sinal de compra é gerado quando os três são favoráveis, ou seja, quando a linha de tocha de todos os períodos de tempo é verde; Um sinal de venda é gerado quando os três são pessimistas, ou seja, quando a linha de tocha é toda vermelha.
Após a entrada, um sinal de equilíbrio é gerado se qualquer período de tempo se deslocar para a média isotônica suave.
A validação de múltiplos prazos reduz os falsos sinais e aumenta a estabilidade.
O indicador de média isotrópica suave identifica tendências e reduz o ruído.
As regras são simples, claras e fáceis de implementar.
A combinação de períodos de tempo pode ser escolhida com flexibilidade para adaptar-se a diferentes variedades.
Otimizado sem parâmetros, fácil de usar.
A restrição de múltiplos requisitos pode fazer com que você perca uma oportunidade de negociação.
O atraso da média asynchronous continua, podendo atrasar o sinal. Pode ser otimizado em combinação com outros indicadores.
Não se estabelece um stop loss, não se controla o risco. Pode-se adicionar uma estratégia de stop loss móvel.
A taxa de ganhos e perdas é fixa, sem flexibilidade. Pode-se configurar o stop loss dinâmico.
O sistema de verificação de quantidade pode ser adicionado.
O teste adiciona mais prazos, como 15 minutos ou 60 minutos.
Optimizar os parâmetros de média diferencial suave e aumentar a sensibilidade.
Acompanhe a estratégia de stop loss móvel para controlar o risco.
Estude os indicadores de estrutura do mercado para evitar oscilações.
Novas condições de reentrada e prolongamento do período de detenção.
A estratégia utiliza os benefícios de um indicador de média heterogêneo de suavização de múltiplos períodos de tempo para realizar o acompanhamento de tendências, mas é propensa a produzir falsos sinais apenas com base no indicador. A estratégia pode ser melhorada adicionando mais indicadores, estratégias de parada de perdas e métodos de otimização de parâmetros, etc.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_5",true]]
*/
//@version=4
strategy("Heiken Ashi MTF Strategy")
ha_t = heikinashi(syminfo.tickerid)
res = input('D', title="TM 1")
ha_open = security(ha_t, res, open)
ha_close = security(ha_t, res, close)
ha_dif = ha_open-ha_close
ha_diff=iff(ha_dif > 0, 1, iff(ha_dif<0, 2, 3))
res2 = input('W', title="TM 2")
ha_open2 = security(ha_t, res2, open)
ha_close2 = security(ha_t, res2, close)
ha_dif2 = ha_open2-ha_close2
ha_diff2=iff(ha_dif2 > 0, 1, iff(ha_dif2<0, 2, 3))
res3 = input('M', title="TM 3")
ha_open3 = security(ha_t, res3, open)
ha_close3 = security(ha_t, res3, close)
ha_dif3 = ha_open3-ha_close3
ha_diff3=iff(ha_dif3 > 0, 1, iff(ha_dif3<0, 2, 3))
plot(15, title="TF1", color=iff(ha_diff==1, color.red, iff(ha_diff==2, color.green, color.white)), style=plot.style_circles, linewidth=5, join=true)
plot(14, title="TF2", color=iff(ha_diff2==1, color.red, iff(ha_diff2==2, color.green, color.white)), style=plot.style_circles, linewidth=5, join=true)
plot(13, title="TF3", color=iff(ha_diff3==1, color.red, iff(ha_diff3==2, color.green, color.white)), style=plot.style_circles, linewidth=5, join=true)
short = ha_diff ==1 and ha_diff2==1 and ha_diff3 ==1
long = ha_diff ==2 and ha_diff2==2 and ha_diff3 ==2
exitlong = ha_diff ==1 or ha_diff2==1 or ha_diff3 ==1
exitshort = ha_diff ==2 or ha_diff2==2 or ha_diff3 ==2
longA = input(true)
shortA = input(false)
if(longA)
strategy.entry("long",1,when=long)
strategy.close("long",when=exitlong)
if(shortA)
strategy.entry("short",0,when=short)
strategy.close("short",when=exitshort)