Estratégia de rastreamento do canal Keltner

Autora:ChaoZhang, Data: 2023-12-25 13:14:24
Tags:

img

Resumo

Esta estratégia é projetada com base no indicador Keltner Channel para gerar sinais de negociação quando o preço atravessa as faixas superior e inferior do canal.

Estratégia lógica

A estratégia usa SMA e ATR para construir o Canal de Keltner.

Banda superior = SMA + ATR * Multiplicador Banda inferior = SMA - ATR * Multiplicador

Quando o preço ultrapassa a faixa superior, um sinal de compra é gerado.

Uma vez que só vai longo, se um sinal de venda aparecer, ele cancelará ordens anteriores e achatará a posição.

A lógica é:

  1. Construir o canal Keltner com SMA e ATR
  2. Quando o preço quebra acima da faixa superior, defina o preço de entrada e vá longo
  3. Quando o preço ultrapassar a faixa inferior, nivelar a posição longa anterior

Análise das vantagens

As vantagens desta estratégia:

  1. Lógica simples e clara, fácil de compreender e implementar
  2. O canal Keltner é intuitivo para a identificação de tendências
  3. Só ir longo evita perseguir o risco de stop loss
  4. Ordens condicionais de indicação de precisão

Análise de riscos

Há também alguns riscos:

  1. Frequentes operações abertas/fechadas durante as flutuações do mercado
  2. Incapaz de aproveitar oportunidades de curto prazo
  3. Falta de mecanismo de saída, necessidade de intervenção manual

Soluções:

  1. Otimizar os parâmetros do canal para reduzir os sinais falsos
  2. Adicionar módulo curto para negociação bidirecional
  3. Adicionar mecanismos de saída como stop loss movendo, trailing stop

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar parâmetros como período do canal, ATR multiplicador etc
  2. Adicionar módulo curto baseado na breakout da banda inferior
  3. Incorporar mecanismos de stop loss como o ATR trailing stop
  4. Considere mais filtros para evitar sinais falsos
  5. Eficácia dos ensaios em diferentes produtos

Conclusão

Esta estratégia capta efetivamente as tendências do mercado com regras simples do canal de Keltner. A lógica é clara e fácil de entender. Apesar da falta de saídas e módulo curto, tem grande potencial para melhorias como ajuste de parâmetros, adição de paradas, curto, etc.


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Keltner Channel Strategy", overlay=true)
source = close

useTrueRange = input(true)
length = input(20, minval=1)
mult = input(1.0)

ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

crossUpper = crossover(source, upper)
crossLower = crossunder(source, lower)

bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])

sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) 

crossBcond = false
crossBcond := crossUpper ? true 
 : na(crossBcond[1]) ? false : crossBcond[1]

crossScond = false
crossScond := crossLower ? true 
 : na(crossScond[1]) ? false : crossScond[1]

cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )

if (cancelBcond)
    strategy.cancel("KltChLE")

if (crossUpper)
    strategy.entry("KltChLE", strategy.long, stop=bprice, comment="KltChLE")

if (cancelScond)
    strategy.cancel("KltChSE")

if (crossLower)
    strategy.entry("KltChSE", strategy.short, stop=sprice, comment="KltChSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Mais.