Estrategia de negociación de materias primas adaptada a largo plazo para captar el fondo del CCI


Fecha de creación: 2023-12-21 14:30:03 Última modificación: 2023-12-21 14:30:03
Copiar: 0 Número de Visitas: 726
1
Seguir
1623
Seguidores

Estrategia de negociación de materias primas adaptada a largo plazo para captar el fondo del CCI

Descripción general

La estrategia se basa en el índice de canales de mercancías (CCI), utiliza el criterio de entradas de adaptabilidad dinámica para determinar el momento en que la tendencia se invierte, y utiliza el seguimiento de las paradas para bloquear las ganancias. El nombre de la estrategia se ajusta a la estrategia de comercio de mercancías para capturar el fondo del CCI. La estrategia contiene el núcleo de la estrategia: utiliza el indicador CCI para determinar las zonas de venta por encima para capturar oportunidades de reversión y utiliza entradas de adaptabilidad dinámica para optimizar las entradas horizontalmente.

Principio de estrategia

El indicador central es el índice CCI, que se utiliza para determinar las áreas de sobreventa para indicar la oportunidad de un cambio de tendencia. Además, la amplitud de las áreas de sobreventa del CCI puede variar según los diferentes indicadores y el entorno del mercado. Por lo tanto, esta estrategia utiliza un enfoque mirador para determinar la ubicación del punto más bajo del CCI en el pasado y establecer dinámicamente el nivel de compra del CCI.

En concreto, el nivel de CCI de la señal de compra por defecto es -145. Luego, se determina la ubicación del punto más bajo de CCI en los últimos 40 días, 50 días, etc. Si el punto más bajo es superior al siguiente nivel de nivel por defecto, por ejemplo, -90, se toma -90 como nuevo nivel de entradas.

Además, la estrategia también utiliza un trazado de stop-loss para bloquear ganancias, y los niveles de stop-loss se mueven a medida que los precios se mueven.

Análisis de las ventajas

  • La idea de usar el indicador CCI para determinar las zonas de sobreventa es clara y confiable
  • Diseño de adaptabilidad horizontal y dinámica que permite que las estrategias se adapten automáticamente a diferentes tipos de entornos de mercado
  • El diseño de seguimiento de la pérdida hace que la estrategia sea muy buena para bloquear las ganancias

Este diseño dinámico permite optimizar el momento de las entradas en comparación con el nivel de las entradas fijas. Buscar un estándar de entradas más alto en un mercado con una fuerte caída puede reducir el riesgo; mientras que reducir el estándar de entradas en un mercado con una clasificación por zonas de oscilación puede aprovechar más oportunidades. Este diseño aumenta la adaptabilidad de la estrategia.

El CCI en sí mismo es un indicador claro y fiable para determinar el exceso de compra y venta, y la lógica de la inversión de tendencia basada en el CCI es efectiva. Combinado con el diseño de entradas dinámicas, la ventaja general de esta estrategia es significativa.

Análisis de riesgos

  • El indicador CCI no es perfecto, y tiene un cierto retraso. El juicio puede fallar cuando los precios superan rápidamente las lecturas del CCI.
  • La adaptación dinámica horizontal de las entradas no puede adaptarse perfectamente a los cambios en el entorno del mercado, y la adaptación lenta también puede perder el momento óptimo.
  • Las fluctuaciones en los mercados de mercancías son grandes, y una mala configuración de stop loss puede causar grandes pérdidas.

La idea de los puntos de inflexión de tendencia basados en el CCI tiene un cierto atraso, cuando los precios suben o bajan rápidamente, el tiempo de las entradas puede no ser correcto. Además, el mecanismo de adaptación dinámica horizontal de las entradas también es difícil de adaptarse perfectamente al entorno del mercado actual, lo que hace que las entradas no sean necesariamente el momento óptimo.

Dirección de optimización

  • Optimización de los parámetros de CCI y de los ciclos de suavización para probar el efecto de CCI en diferentes longitudes de tiempo
  • Prueba más tipos de niveles de entradas para encontrar mejores valores predeterminados o diseños adaptativos
  • Prueba de diferentes parámetros de stop loss y aumenta adecuadamente el stop loss para adaptarse a las características de alta volatilidad de los mercados de mercancías

Se puede optimizar principalmente a partir de los parámetros del CCI en sí, la configuración del nivel de entradas y los parámetros de stop loss. Para determinar con precisión los parámetros de mejor ubicación para los parámetros específicos, se puede mejorar el efecto de la estrategia.

Resumir

La estrategia combina el uso de los indicadores CCI para determinar el exceso de venta y el diseño de niveles de entradas de adaptación dinámica para capturar las tendencias de ruptura. En comparación con los parámetros fijos, los niveles de entradas dinámicas aumentan significativamente la adaptabilidad de la estrategia.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Extended Adaptive CCI Entry Strategy for Commodities", shorttitle="Ext_Adaptive_CCI_Entry_Com", overlay=true)

// Inputs
cciLength = input(20, title="CCI Period")
defaultCCIEntryOversold = input(-145, title="Default CCI Entry Oversold Level")
adaptiveCCIEntryLevel90 = input(-90, title="Adaptive CCI Entry Level for 40 Days")
adaptiveCCIEntryLevel70_50Days = input(-70, title="Adaptive CCI Entry Level for 50 Days")
adaptiveCCIEntryLevel50 = input(-50, title="Adaptive CCI Entry Level for 60 Days")
adaptiveCCIEntryLevel4 = input(-4, title="Adaptive CCI Entry Level for 90 Days")
adaptiveCCIEntryLevel0 = input(0, title="Adaptive CCI Entry Level for 120 Days")
adaptiveCCIEntryLevel25 = input(25, title="Adaptive CCI Entry Level for 140 Days")
adaptiveCCIEntryLevel50_160Days = input(50, title="Adaptive CCI Entry Level for 160 Days")
adaptiveCCIEntryLevel70_180Days = input(70, title="Adaptive CCI Entry Level for 180 Days")
lookback40 = input(40, title="Lookback Period for -90 Level")
lookback50 = input(50, title="Lookback Period for -70 Level")
lookback60 = input(60, title="Lookback Period for -50 Level")
lookback90 = input(90, title="Lookback Period for -4 Level")
lookback120 = input(120, title="Lookback Period for 0 Level")
lookback140 = input(140, title="Lookback Period for +25 Level")
lookback160 = input(160, title="Lookback Period for +50 Level")
lookback180 = input(180, title="Lookback Period for +70 Level")

// Indicator Calculation
cci = ta.cci(close, cciLength)

// Determine adaptive entry level based on lookback periods
var float entryLevel = defaultCCIEntryOversold // Initialize with the default level
if ta.lowest(cci, lookback40) > adaptiveCCIEntryLevel90
    entryLevel := adaptiveCCIEntryLevel90
if ta.lowest(cci, lookback50) > adaptiveCCIEntryLevel70_50Days
    entryLevel := adaptiveCCIEntryLevel70_50Days
if ta.lowest(cci, lookback60) > adaptiveCCIEntryLevel50
    entryLevel := adaptiveCCIEntryLevel50
if ta.lowest(cci, lookback90) > adaptiveCCIEntryLevel4
    entryLevel := adaptiveCCIEntryLevel4
if ta.lowest(cci, lookback120) > adaptiveCCIEntryLevel0
    entryLevel := adaptiveCCIEntryLevel0
if ta.lowest(cci, lookback140) > adaptiveCCIEntryLevel25
    entryLevel := adaptiveCCIEntryLevel25
if ta.lowest(cci, lookback160) > adaptiveCCIEntryLevel50_160Days
    entryLevel := adaptiveCCIEntryLevel50_160Days
if ta.lowest(cci, lookback180) > adaptiveCCIEntryLevel70_180Days
    entryLevel := adaptiveCCIEntryLevel70_180Days

// Entry Condition
longCondition = cci < entryLevel

// Entry and Exit
if (longCondition)
    strategy.entry("Long", strategy.long, qty=1)
    alert("Long entry executed at " + str.tostring(close), alert.freq_once_per_bar)

trailOffset = input(10.0, title="Trailing Stop Offset in USD")
strategy.exit("Trailing Stop", "Long", trail_offset = trailOffset, trail_price = close)
if (close < entryLevel - trailOffset)
    alert("Long position closed at " + str.tostring(close), alert.freq_once_per_bar)

// Plotting
plot(series=cci, color=color.purple, title="CCI")
hline(price=defaultCCIEntryOversold, color=color.red, title="Default CCI Entry Oversold Level")
hline(price=adaptiveCCIEntryLevel90, color=color.orange, title="CCI -90 Level (40 Days)")
hline(price=adaptiveCCIEntryLevel70_50Days, color=color.yellow, title="CCI -70 Level (50 Days)")
hline(price=adaptiveCCIEntryLevel50, color=color.green, title="CCI -50 Level (60 Days)")
hline(price=adaptiveCCIEntryLevel4, color=color.blue, title="CCI -4 Level (90 Days)")
hline(price=adaptiveCCIEntryLevel0, color=color.purple, title="CCI 0 Level (120 Days)")
hline(price=adaptiveCCIEntryLevel25, color=color.aqua, title="CCI +25 Level (140 Days)")
hline(price=adaptiveCCIEntryLevel50_160Days, color=color.black, title="CCI +50 Level (160 Days)")
hline(price=adaptiveCCIEntryLevel70_180Days, color=color.gray, title="CCI +70 Level (180 Days)")