Esta estratégia calcula os trilhos do meio, superior e inferior do Canal de Keltner. Ele preenche a cor acima dos trilhos do meio e inferior. Depois de determinar a direção do canal, ele rompe e compra e vende. É uma espécie de estratégia de rastreamento de tendências.
O indicador central é o canal de Keltner. O trilho médio do canal é a média móvel ponderada em N dias do preço típico (preço mais alto + preço mais baixo + preço de fechamento) / 3. As linhas de trilho superiores e inferiores do canal são, respectivamente, uma faixa de negociação média móvel ponderada em N dias longe da linha de trilho médio.
Especificamente, a estratégia julga principalmente se o preço atravessa o trilho superior ou o trilho inferior, e toma decisões longas ou curtas com o trilho médio como o limite.
Em geral, esta estratégia é relativamente simples e direta, e é uma estratégia de avanço de preço comum. A vantagem é que a ideia é clara e fácil de entender e implementar, o que é adequado para iniciantes aprenderem. Mas também há certas limitações. É sensível a parâmetros, os resultados são desiguais e são necessários testes e otimização repetidos. Se puder ser combinado com indicadores de julgamento mais complexos, pode formar uma estratégia de negociação mais poderosa.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © WMX_Q_System_Trading //@version=3 strategy(title = "WMX Keltner Channels strategy", shorttitle = "WMX Keltner Channels strategy", overlay = true) useTrueRange = input(true) length = input(20, minval=5) mult = input(2.618, minval=0.1) mah =ema(ema( ema(high, length),length),length) mal =ema(ema( ema(low, length),length),length) range = useTrueRange ? tr : high - low rangema =ema(ema( ema(range, length),length),length) upper = mah + rangema * mult lower = mal - rangema * mult ma=(upper+lower)/2 uc = red lc=green u = plot(upper, color=uc, title="Upper") basis=plot(ma, color=yellow, title="Basis") l = plot(lower, color=lc, title="Lower") fill(u, basis, color=uc, transp=95) fill(l, basis, color=lc, transp=95) strategy.entry("Long", strategy.long, stop = upper, when = strategy.position_size <= 0 and close >upper) strategy.entry("Short", strategy.short, stop = lower, when = strategy.position_size >= 0 and close<lower) if strategy.position_size > 0 strategy.exit("Stop Long", "Long", stop = ma) if strategy.position_size < 0 strategy.exit("Stop Short", "Short", stop = ma)