Esta estrategia es un sistema de negociación basado en el canal G personalizado y el promedio móvil exponencial (EMA). El canal G consta de líneas superiores (a), inferiores (b) y medias (avg), que determinan los límites del canal a través del cálculo dinámico de los precios actuales e históricos. La estrategia combina el EMA como un filtro de tendencia, generando señales comerciales a través de cruces de precios con líneas de canal y posición relativa al EMA, capturando efectivamente los puntos de inversión de tendencia del mercado.
La lógica central comprende dos componentes principales: el filtro G-Channel y el filtro EMA. Los cálculos de G-Channel se basan en los precios actuales y los datos históricos, ajustando dinámicamente el ancho del canal a través de un algoritmo adaptativo. La línea superior (a) toma el máximo del precio actual y la línea superior anterior, ajustados por parámetros de ancho y longitud del canal; la línea inferior (b) utiliza un método similar para valores mínimos; la línea media es la media aritmética. Las señales de negociación se activan combinando los cruces de precios con las líneas de canal y la posición relativa a la EMA: las señales de compra ocurren cuando el precio rompe por encima de la línea inferior mientras está por debajo de la EMA; las señales de venta ocurren cuando el precio rompe la línea superior mientras está por debajo de la EMA.
El sistema de negociación de filtros de tendencia G-Channel y EMA es una estrategia de negociación completa que combina las rupturas de canal y el seguimiento de tendencia. A través de las características dinámicas de G-Channel y la función de confirmación de tendencia EMA, la estrategia captura efectivamente los puntos de inflexión del mercado mientras controla los riesgos comerciales. Aunque existen ciertas limitaciones, el rendimiento general de la estrategia puede mejorarse aún más a través de las direcciones de optimización propuestas. Esta estrategia es adecuada para los mercados de tendencia y puede servir como un marco fundamental para construir sistemas de negociación más complejos.
/*backtest start: 2024-11-04 00:00:00 end: 2024-12-04 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("G-Channel with EMA Strategy", overlay=true) // G-Channel Indicator length = input.int(100, title="G-Channel Length") src = input(close, title="Source") var float a = na var float b = na a := math.max(src, nz(a[1])) - (nz(a[1]) - nz(b[1])) / length b := math.min(src, nz(b[1])) + (nz(a[1]) - nz(b[1])) / length avg = (a + b) / 2 // G-Channel buy/sell signals crossup = ta.crossover(close, b) crossdn = ta.crossunder(close, a) bullish = ta.barssince(crossdn) <= ta.barssince(crossup) // EMA Indicator emaLength = input.int(200, title="EMA Length") ema = ta.ema(close, emaLength) // Buy Condition: G-Channel gives a buy signal and price is below EMA buySignal = bullish and close < ema // Sell Condition: G-Channel gives a sell signal and price is above EMA sellSignal = not bullish and close > ema // Plotting the G-Channel and EMA plot(a, title="Upper", color=color.blue, linewidth=2, transp=100) plot(b, title="Lower", color=color.blue, linewidth=2, transp=100) plot(avg, title="Average", color=bullish ? color.lime : color.red, linewidth=1, transp=90) plot(ema, title="EMA", color=color.orange, linewidth=2) // Strategy Execution if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) // Plot Buy/Sell Signals plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")