
A estratégia é baseada no cálculo do meio-carril, do meio-carril e do meio-carril do canal de Keltner, com o meio-carril e o meio-carril e o meio-carril acima e abaixo de cores de preenchimento. Depois de julgar a direção do canal, execute a compra e venda de ruptura.
O indicador central é o canal de Keltner. A trajectória do canal é o preço típico (preço mais alto + preço mais baixo + preço de fechamento) / N-dia média móvel ponderada. A trajectória do canal e a trajectória inferior são separadas da trajectória de um intervalo de negociação.
Concretamente, a estratégia determina principalmente se o preço irá romper a trajetória superior ou inferior, com a trajetória central como divisória para tomar decisões multi-cabeça ou cabecera. Se o preço de fechamento for maior do que a trajetória superior, faça mais; Se o preço de fechamento for menor do que a trajetória inferior, faça um vazio. A linha de parada é o MA da trajetória média.
A estratégia é, em geral, mais simples e direta, pertence a uma estratégia de ruptura de preços comum. A vantagem é que a ideia é clara, fácil de entender e apropriada para os iniciantes. Mas também há certas limitações, sensíveis aos parâmetros, os parâmetros de efeito são discordantes e precisam ser testados e otimizados repetidamente.
/*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)