Estrategia de compra de retroceso cruzado de CCI + doble media móvil

CCI MA
Fecha de creación: 2024-05-24 17:45:49 Última modificación: 2024-05-24 17:45:49
Copiar: 3 Número de Visitas: 680
1
Seguir
1617
Seguidores

Estrategia de compra de retroceso cruzado de CCI + doble media móvil

Descripción general

La estrategia CCI+ es una estrategia de comercio cuantitativa que combina el indicador de avance (CCI) y la señal de cruce de la línea de avance. La estrategia espera la formación de un horno de la línea de avance para que el precio retroceda cerca de la línea rápida y se venda al mismo tiempo que el indicador CCI. La estrategia se vende cuando el precio rebota cerca de la línea rápida y se vende al mismo tiempo que el indicador CCI.

Principio de estrategia

  1. Calcula el indicador CCI, que calcula el valor actual del CCI según los parámetros CCI establecidos por el usuario (datos de origen, período, tipo de media móvil, umbral de sobreventa y sobreventa).
  2. Para juzgar el CCI sobrecompra sobreventa, el color de fondo se establece en rojo cuando el CCI es mayor que el umbral de sobrecompra y el color de fondo se establece en verde cuando es menor que el umbral de sobreventa.
  3. Calcula el promedio rápido y lento, calcula el promedio rápido y lento actual de acuerdo con los parámetros de promedio rápido y lento establecidos por el usuario (datos de origen, período, tipo de promedio móvil) respectivamente.
  4. Para juzgar el horco dorado, se dibuja una señal de múltiples cabezas cuando la línea rápida atraviesa la línea lenta para formar un horco dorado, y se dibuja una señal de cabezas vacías cuando la línea rápida atraviesa la línea lenta para formar un horco muerto.
  5. Tomar decisiones de transacción:
    • Entrada múltiple: cuando la línea rápida está por encima de la línea lenta, y el precio de cierre de la línea K anterior está por debajo de la línea rápida, la línea K actual es la línea izquierda, mientras que el CCI es menor que el umbral de venta por encima de comprar y abrir más posiciones
    • Entrada en blanco: cuando la línea rápida está por debajo de la línea lenta, y el precio de cierre de la línea K anterior está por encima de la línea rápida, la línea K actual es negativa, mientras que el CCI es mayor que el umbral de compra y se vende la posición abierta

Ventajas estratégicas

  1. Seguimiento de tendencias: para determinar la dirección de las tendencias a través de señales de cruce de dos líneas equiláteras, para adaptarse mejor a las tendencias del mercado.
  2. Entrada en contra: la espera de que el precio retroceda después de que la tendencia se establezca para comprar o rebotar para vender, puede obtener un precio de entrada relativamente más favorable y mejorar la relación riesgo-beneficio.
  3. Reducción de falsas señales: La combinación de los indicadores CCI con el cruce de la línea media puede reducir eficazmente las falsas señales generadas por un solo indicador.
  4. Parámetros flexibles: El usuario puede configurar los parámetros CCI y de la línea media de manera flexible según sus preferencias para optimizar el rendimiento de la estrategia.

Riesgo estratégico

  1. Riesgo de mercado en turbulencia: En mercados en turbulencia, los horquillos de oro frecuentes pueden llevar a que la estrategia genere más operaciones perdedoras.
  2. Riesgo de parámetros: la configuración inadecuada de los parámetros puede conducir a un mal desempeño de la estrategia, lo que requiere un buen análisis y análisis de la combinación óptima de parámetros en diferentes condiciones de mercado.
  3. Riesgo de tendencia: cuando la tendencia del mercado se invierte, la estrategia puede retrasar la salida y asumir un mayor riesgo de retiro.

Dirección de optimización de la estrategia

  1. Introducción de la gestión de posiciones, para ajustar dinámicamente las posiciones de cada operación en función de la intensidad y la volatilidad de las tendencias actuales del mercado, para un mejor control del riesgo.
  2. Optimización de las condiciones de entrada, como la inclusión de indicadores de volumen de operaciones u otros indicadores auxiliares de juicio, para mejorar la fiabilidad de la señal de entrada.
  3. Optimización de las condiciones de salida, como la configuración de un stop loss móvil o un stop loss de tiempo, para reducir la pérdida máxima de una sola transacción.
  4. Optimización de parámetros para diferentes mercados y variedades, para mejorar la adaptabilidad y la solidez de las estrategias.

Resumir

La estrategia de compra y compra de retiro cruzado de CCI + es una estrategia de negociación cuantitativa que combina el seguimiento de la tendencia y los beneficios de la entrada en contra. La estrategia de captura de la tendencia a través de la dirección de la tendencia a través de la línea de paridad y el uso del indicador CCI para distinguir el intervalo de sobreventa, mientras se espera que los precios se retiren y reboten para obtener un precio de entrada más óptimo, puede mejorar en cierta medida el potencial de ganancia de la estrategia y la rentabilidad del riesgo.

Código Fuente de la Estrategia
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots

//@version=5
strategy("CCI + MA Crossover Pullback Buy Strategy [TradeDots]", overlay=true)


ma(source, length, type) =>
  type == "SMA" ? ta.sma(source[1], length) :
  type == "EMA" ? ta.ema(source[1], length) :
  type == "SMMA (RMA)" ? ta.rma(source[1], length) :
  type == "WMA" ? ta.wma(source[1], length) :
  type == "VWMA" ? ta.vwma(source[1], length) :
  na

//CCI settings
cci_coloring  = input.bool(true, "CCI Background Color", group = "Commodity channel index")
cci_length    = input.int(20,"CCI Length", group = "Commodity channel index")
cci_ma_type   = input.string("EMA","CCI MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group = "Commodity channel index")
cci_soruce    = input(hlc3, "CCI Source", group = "Commodity channel index")
cci_threshold = input.int(100, "CCI Threshold", group = "Commodity channel index")
cci_ma = ma(cci_soruce, cci_length, cci_ma_type)
cci = (cci_soruce - cci_ma) / (0.015 * ta.dev(cci_soruce, cci_length))

bgcolor(cci > cci_threshold and cci_coloring ? color.new(#f9396a, 80) : cci < -cci_threshold and cci_coloring? color.new(#9cff87, 80) : na, title = "CCI Overbought / Oversold")

//ma crossover settings
input_crossover_labels = input.bool(true, "Show Crossover Labels", group="Moving average")

fastma_type   = input.string("EMA","", inline="fastma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
fastma_source = input(close, "", inline="fastma", group="Moving average")
fastma_length = input.int(10, "", inline="fastma", minval=1,group="Moving average")
fastma_color  = input(#e2fdff, "", inline="fastma",group="Moving average")
fastma = ma(fastma_source, fastma_length, fastma_type)
fastmaPlot = plot(fastma, color = #b7e4c7, linewidth = 2, title = "Fast MA")

slowma_type   = input.string("EMA","", inline="slowma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
slowma_source = input(close, "", inline="slowma", group="Moving average")
slowma_length = input.int(30, "", inline="slowma", minval=1,group="Moving average")
slowma_color  = input(#e2fdff, "", inline="slowma",group="Moving average")
slowma = ma(slowma_source, slowma_length, slowma_type)
slowmaPlot = plot(slowma, color = #2d6a4f, linewidth = 2, title = "Slow MA")

bullish_crossover = ta.crossover(fastma, slowma)
bearish_crossover = ta.crossunder(fastma, slowma)

// // strategy
// if bullish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#9cff87, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index,low, "Bullish Crossover", style = label.style_label_up, color = #9cff87)

// else if bearish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#f9396a, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index, high, "Bearish Crossover", style = label.style_label_down, color = #f9396a, textcolor = color.white)

if fastma > slowma and close[1] < fastma and close > open and cci < -cci_threshold
    strategy.entry("Long", strategy.long)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) < 0
    //     label.new(bar_index,low, "🟢 Long", style = label.style_label_up, color = #9cff87)

if fastma < slowma and close[1] > fastma and close < open and cci > cci_threshold
    strategy.entry("Short", strategy.short)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) > 0
    //     label.new(bar_index, high, "🔴 Short", style = label.style_label_down, color = #f9396a, textcolor = color.white)