Esta estrategia calcula los carriles medios, superiores e inferiores del canal de Keltner. Llena el color sobre los carriles medios e inferiores. Después de determinar la dirección del canal, rompe y compra y vende. Es una especie de estrategia de seguimiento de tendencias.
El indicador principal es el canal de Keltner. El carril medio del canal es el promedio móvil ponderado de N días del precio típico (precio más alto + precio más bajo + precio de cierre) / 3. Las líneas de ferrocarril superiores e inferiores del canal son, respectivamente, un rango de negociación promedio móvil ponderado de N días lejos de la línea de ferrocarril medio. Donde el rango de negociación puede elegir la verdadera volatilidad ATR, o tomar directamente la amplitud (precio más alto - precio más bajo).
Específicamente, la estrategia juzga principalmente si el precio rompe el carril superior o el inferior, y toma decisiones largas o cortas con el carril medio como límite. Si el precio de cierre es mayor que el carril superior, vaya largo; si el precio de cierre es menor que el carril inferior, vaya corto. La línea de stop loss es el valor MA del carril medio.
En general, esta estrategia es relativamente simple y directa, y es una estrategia de avance de precio común. La ventaja es que la idea es clara y fácil de entender e implementar, lo que es adecuado para que los principiantes aprendan. Pero también hay ciertas limitaciones. Es sensible a los parámetros, los resultados son desiguales y se requieren pruebas y optimización repetidas. Si se puede combinar con indicadores de juicio más complejos, puede formar una estrategia de negociación más 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)