Esta estrategia es un sistema de negociación de impulso basado en el índice de canal de productos básicos (CCI), diseñado para capturar oportunidades de negociación en áreas de sobreventa mediante el monitoreo de desviaciones de precios de la media.
El principio básico utiliza el CCI para medir la desviación del precio de su media. El cálculo del CCI implica: primero calcular el precio típico (media aritmética de los precios altos, bajos y cerrados), luego calcular el promedio móvil simple (SMA) del precio típico, finalmente derivar el CCI restando el SMA del precio típico, dividiendo por la desviación media y multiplicando por 0.015. Las posiciones largas se ingresan cuando el CCI cae por debajo de -90, lo que indica posibles condiciones de sobreventa; las posiciones se cierran cuando el precio se rompe por encima de los máximos anteriores, confirmando la tendencia al alza. La estrategia ofrece parámetros de stop-loss y take-profit personalizables para acomodar diferentes preferencias de riesgo.
Esta estrategia captura oportunidades de sobreventa del mercado a través del indicador CCI, combinado con mecanismos de stop-loss y take-profit para crear un sistema de negociación completo. La estrategia cuenta con lógica clara, fácil ejecución y buenas capacidades de control de riesgos. A través de medidas de optimización como el filtrado de señales y umbrales dinámicos, la estabilidad y rentabilidad de la estrategia pueden mejorarse aún más. Se aconseja a los operadores que realicen pruebas de retroceso y ajusten los parámetros de acuerdo con las características específicas del mercado antes de la implementación en vivo.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("CCI Threshold Strategy", overlay=false, initial_capital=50000, pyramiding=0, commission_type=strategy.commission.cash_per_contract, commission_value=0.05, slippage=1) // --- Input Parameters --- // Lookback period for CCI calculation lookbackPeriod = input.int(12, minval=1, title="CCI Lookback Period") // Buy threshold for CCI; typically represents an oversold condition buyThreshold = input.int(-90, title="CCI Buy Threshold") // Stop loss and take profit settings stopLoss = input.float(100.0, minval=0.0, title="Stop Loss in Points") takeProfit = input.float(150.0, minval=0.0, title="Take Profit in Points") // Checkboxes to enable/disable SL and TP useStopLoss = input.bool(false, title="Enable Stop Loss") useTakeProfit = input.bool(false, title="Enable Take Profit") // --- Calculate CCI --- // CCI (Commodity Channel Index) is used as a momentum indicator to identify oversold and overbought conditions cci = ta.cci(close, length=lookbackPeriod) // --- Define Buy and Sell Conditions --- // Buy condition: CCI drops below -90, indicating potential oversold levels longCondition = cci < buyThreshold // Sell condition: Close price crosses above the previous day's high, signaling potential exit sellCondition = close > ta.highest(close[1], 1) // --- Strategy Execution --- // Buy entry based on the long condition if (longCondition) strategy.entry("Buy", strategy.long) // Close the long position based on the sell condition if (sellCondition) strategy.close("Buy") // Optional: Add stop loss and take profit for risk management if (longCondition) strategy.exit("Sell", from_entry="Buy", loss=useStopLoss ? stopLoss : na, profit=useTakeProfit ? takeProfit : na) // --- Plotting for Visualization --- // Plot CCI with threshold levels for better visualization plot(cci, title="CCI", color=color.blue) hline(buyThreshold, "Buy Threshold", color=color.red, linestyle=hline.style_dotted) hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dotted)