Estratégia de ruptura adaptativa do canal

Autora:ChaoZhang, Data: 2024-02-29 14:49:05
Tags:

img

Resumo

A estratégia de ruptura de canal adaptativo é uma estratégia de tendência que acompanha os canais de preços do mercado.

A vantagem desta estratégia é que ela pode se adaptar automaticamente às mudanças do mercado, expandindo os canais para filtrar o ruído e produzir sinais de negociação quando uma tendência é clara.

Estratégia lógica

Esta estratégia baseia-se na teoria da ruptura do canal. Ele calcula dois conjuntos de preços mais altos e mais baixos em diferentes períodos (longo de entrada e comprimento de saída) para formar canais. Quando os preços excedem os canais, os sinais são gerados.

Especificamente, a estratégia primeiro calcula o preço mais alto de 20 períodos (superior) e o preço mais baixo (inferior) para formar o canal de preços. Em seguida, calcula o preço mais alto de 10 períodos (sup) e o preço mais baixo (down). Após um sinal de compra ser acionado (quedas acima do trilho superior), o preço mais baixo de 10 períodos (down) é usado como a linha de stop loss. Após um sinal de venda ser acionado (quedas abaixo do trilho inferior), o preço mais alto de 10 períodos (sup) é usado como a linha de lucro. Isso forma um sistema de canal adaptativo.

Quando os preços atravessam o canal, isso indica que uma tendência está se formando. A estratégia emitirá então sinais de negociação. Ao mesmo tempo, as linhas de take profit e stop loss também se ajustam com as mudanças de preço para bloquear lucros e evitar perdas.

Vantagens

  • O canal desta estratégia se ajusta automaticamente com base nos preços recentes, expandindo a faixa de canais para filtrar o ruído quando uma tendência começa.
  • Negocia com breakouts fortes, só entra em breakouts para cima ou para baixo, evitando perseguir preços altos e matar preços baixos.
  • Mecanismos de controlo de riscos: adota linhas de stop loss e take profit baseadas em diferentes períodos para bloquear os lucros de forma flexível e evitar perdas maiores.
  • É fácil de implementar, requer apenas dois parâmetros e os dados de ensaio são fáceis de obter, adequados para negociação quantitativa.

Análise de riscos

Os principais riscos desta estratégia incluem:

  • Há o risco de comprar alto e vender baixo quando a faixa de canal é muito grande. Isso pode ser mitigado por otimização de parâmetros para reduzir negócios desnecessários.
  • Risco de stop loss. Linhas de stop loss de período fixo podem ser muito rígidas. Pode-se considerar o stop loss ATR adaptativo.
  • Risco de alta frequência de negociação. Ajustes de parâmetros inadequados podem levar a negociações excessivamente frequentes. Condições de filtro podem ser adicionadas para controlar a frequência de negociação.
  • Risco de anomalia de mercado: esta estratégia julga as tendências futuras com base em dados históricos e pode falhar ou perder dinheiro quando ocorrem mudanças drásticas no mercado.

Optimização

As potenciais otimizações desta estratégia incluem:

  • Adicione filtros de indicadores de tendência. Indicadores de tendência como EMA ou MACD podem ser introduzidos para receber sinais apenas quando alinhados com a direção de ruptura do canal.
  • Introduzir o ATR de stop loss adaptativo. As linhas de stop loss calculadas a partir da faixa média verdadeira podem controlar melhor a perda de uma única negociação.
  • Otimizar combinações de parâmetros. Melhorar ainda mais a rentabilidade da estratégia encontrando combinações de parâmetros otimizadas através de mais backtests.
  • Introduzir técnicas de aprendizagem de máquina, utilizar redes neurais ou algoritmos genéticos para gerar parâmetros dinâmicos para melhorar a robustez.

Conclusão

A estratégia de ruptura de canal adaptativo tem lógica clara e forte viabilidade geral. Ela pode rastrear automaticamente as mudanças de mercado e gerar sinais de negociação quando as tendências se formam. Os mecanismos de duplo canal e stop loss / take profit também ajudam a controlar os riscos. Esta estratégia pode ser ainda melhorada em estabilidade e lucratividade através da otimização de parâmetros, condições de filtragem, etc. Vale a pena mais verificação e refinamento de negociação ao vivo.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Turtle Trade Channels Strategy", shorttitle="TTCS", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

length = input(20,"Entry Length", minval=1)
len2=input(10, "Exit Length", minval=1)

lower = lowest(length)
upper = highest(length)

up=highest(high,length)
down=lowest(low,length)
sup=highest(high,len2)
sdown=lowest(low,len2)
K1=barssince(high>=up[1])<=barssince(low<=down[1]) ? down : up
K2=iff(barssince(high>=up[1])<=barssince(low<=down[1]),sdown,sup)
K3=iff(close>K1,down,na)
K4=iff(close<K1,up,na)

buySignal=high==upper[1] or crossover(high,upper[1])
sellSignal = low==lower[1] or crossover(lower[1],low)
buyExit=low==sdown[1] or crossover(sdown[1],low)
sellExit = high==sup[1] or crossover(high,sup[1])

strategy.entry("Buy", strategy.long, when = buySignal and barssince(buySignal) < barssince(sellSignal[1]))
strategy.entry("Sell", strategy.short, when = sellSignal and barssince(sellSignal) < barssince(buySignal[1]))
strategy.exit("Buy Exit", from_entry = "Buy", when = buyExit and barssince(buyExit) < barssince(sellExit[1]))
strategy.exit("Sell Exit", from_entry = "Sell", when = sellExit and barssince(sellExit) < barssince(buyExit[1]))

plot(K1, title="Trend Line", color=color.red, linewidth=2)
e=plot(K2, title="Exit Line", color=color.blue, linewidth=1, style=6)



Mais.