Impulso tras la estrategia CCI


Fecha de creación: 2023-10-25 17:37:39 Última modificación: 2023-10-25 17:37:39
Copiar: 1 Número de Visitas: 762
1
Seguir
1617
Seguidores

Impulso tras la estrategia CCI

Descripción general

Esta estrategia se basa en el indicador CCI, diseñado para hacer más en caso de sobreventa y menos en caso de sobreventa. Opcionalmente, también utiliza el filtro EMA para controlar el comercio solo en la dirección de la tendencia. La estrategia también ofrece un stop loss basado en un porcentaje fijo o en un rango real medio (ATR).

Principio de estrategia

  1. Utilizando el índice CCI para determinar las tendencias del mercado

    • El CCI mide la dinámica comparando el precio actual con el precio promedio en un período determinado

    • CCI por encima de 150 es sobrecompra, por debajo de -100 es sobreventa

  2. Se puede usar el filtro EMA

    • Hacer más solo cuando el precio está por encima de la EMA, hacer un descuento cuando el precio está por debajo de la EMA

    • Utiliza EMA para determinar la dirección de la tendencia y evitar el comercio contra la tendencia

  3. Dos opciones para detener los daños

    • Detención de pérdidas basada en un porcentaje fijo: utiliza un porcentaje fijo del precio de entrada para configurar el stop loss

    • Stop loss basado en ATR: utiliza el multiplicador de ATR para establecer el stop loss y luego calcula el stop en función de la relación de riesgo/recibo

  4. Condiciones de ingreso

    • CCI hace más cuando cruza la línea 100

    • Descanso bajo la CCI en la línea 150

    • Si EMA está activado, solo hacer más cuando el precio está por encima de EMA y hacer un vacío cuando el precio está por debajo de EMA

  5. Condiciones de salida

    • El precio alcanzó el nivel de parada de pérdidas

    • El CCI vuelve a entrar en zona de sobrecompra y sobreventa

  6. Dibujo

    • Colorear el mapa con el indicador CCI

Análisis de las ventajas

  1. El uso del CCI para determinar sobrecompra y sobreventa es un uso clásico del indicador CCI

  2. El EMA opcional asegura que se negocie solo en la dirección de la tendencia y evita la reversión

  3. Ofrece dos formas de stop loss que pueden ajustarse según el mercado

  4. El CCI indica que el mercado ha vuelto a entrar en zona de sobreventa para cerrar posiciones y bloquear ganancias para invertir la tendencia.

  5. Los mapas destacan las señales CCI para que sean fáciles de leer

  6. La lógica de la estrategia es clara, simple, fácil de entender y optimizar

Análisis de riesgos

  1. Indicadores del CCI están rezagados y pueden haber inversiones perdidas o falsas señales

  2. La configuración incorrecta de los parámetros de EMA puede perder la tendencia o hacer que la estrategia no sea válida

  3. El porcentaje de paradas de pérdidas es difícil de adaptar a los cambios en el mercado, con un parámetro más amplio

  4. El ATR es sensible a los ciclos de intervalo y debe ajustarse a los parámetros óptimos

  5. El riesgo de retiro es mayor y la gestión de las posiciones debe ajustarse adecuadamente

  6. Eficacia Los parámetros del indicador deben evaluarse a medida que el entorno del mercado cambia

Dirección de optimización

  1. Evaluar los parámetros CCI de diferentes períodos para encontrar la combinación óptima de parámetros

  2. Prueba de diferentes períodos de EMA para determinar el período de tendencia más adecuado

  3. Ajuste de los parámetros de stop loss para obtener la mejor relación riesgo-beneficio

  4. Añadir otras condiciones de filtro, como volumen de transacciones, para filtrar aún más las señales falsas

  5. Para mejorar la eficacia de los juicios de forma combinados con líneas de tendencia o gráficos

  6. Aumentar las estrategias de gestión de posiciones, como fijar posiciones, para controlar el riesgo de retiro

  7. Recopilación global de datos de diferentes entornos de mercado y parámetros de ajuste dinámico

Resumir

La estrategia utiliza el clásico principio de sobrecompra y sobreventa del indicador CCI para introducirla. La dirección de la tendencia se puede controlar con la adición de un filtro EMA. Ofrece dos métodos de parada de pérdidas para facilitar el ajuste.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
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/
// © alifer123

//@version=5
// strategy("CCI+EMA Strategy with Percentage or ATR TP/SL [Alifer]", shorttitle = "CCI_EMA_%/ATR_TP/SL", overlay=false,
//      initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.045)

length = input(14, "CCI Length")
overbought = input.int(150, step = 10, title = "Overbought")
oversold = input.int(-140, step = 10, title = "Oversold")
src = hlc3
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))

// EMA
useEMA = input(true, "Use EMA", tooltip = "Only enters long when price is above the EMA, only enters short when price is below the EMA")
emaLength = input(55, "EMA Length")
var float ema = na
if useEMA
    ema := ta.ema(src, emaLength)

// Take Profit and Stop Loss Method
tpSlMethod_percentage = input(true, "Percentage TP/SL", group="TP/SL Method")
tpSlMethod_atr = input(false, "ATR TP/SL", group="TP/SL Method")

// Percentage-based Take Profit and Stop Loss
tp_percentage = input.float(10.0, title="Take Profit (%)", step=0.1, group="TP/SL Method")
sl_percentage = input.float(10.0, title="Stop Loss (%)", step=0.1, group="TP/SL Method")

// ATR-based Take Profit and Stop Loss
atrLength = input(20, title="ATR Length", group="TP/SL Method")
atrMultiplier = input(4, title="ATR SL Multiplier", group="TP/SL Method")
riskRewardRatio = input(2, title="Risk Reward Ratio", group="TP/SL Method")

// Calculate TP/SL levels based on the selected method, or leave them undefined if neither method is selected
longTP = tpSlMethod_percentage ? strategy.position_avg_price * (1 + tp_percentage / 100) : na
longSL = tpSlMethod_percentage ? strategy.position_avg_price * (1 - sl_percentage / 100) : na
shortTP = tpSlMethod_percentage ? strategy.position_avg_price * (1 - tp_percentage / 100) : na
shortSL = tpSlMethod_percentage ? strategy.position_avg_price * (1 + sl_percentage / 100) : na

if tpSlMethod_atr
    longSL := strategy.position_avg_price - ta.atr(atrLength) * atrMultiplier
    longTP := ((strategy.position_avg_price - longSL) * riskRewardRatio) + strategy.position_avg_price
    shortSL := strategy.position_avg_price + ta.atr(atrLength) * atrMultiplier
    shortTP := ((strategy.position_avg_price - shortSL) * riskRewardRatio) - strategy.position_avg_price

// Enter long position when CCI crosses below oversold level and price is above EMA
longCondition = ta.crossover(cci, oversold) and (not useEMA or close > ema)
if longCondition
    strategy.entry("Buy", strategy.long)

// Enter short position when CCI crosses above overbought level and price is below EMA
shortCondition = ta.crossunder(cci, overbought) and (not useEMA or close < ema)
if shortCondition
    strategy.entry("Sell", strategy.short)

// Close long positions with Take Profit or Stop Loss
if strategy.position_size > 0
    strategy.exit("Long Exit", "Buy", limit=longTP, stop=longSL)

// Close short positions with Take Profit or Stop Loss
if strategy.position_size < 0
    strategy.exit("Short Exit", "Sell", limit=shortTP, stop=shortSL)

// Close positions when CCI crosses back above oversold level in long positions or below overbought level in short positions
if ta.crossover(cci, overbought)
    strategy.close("Buy")
if ta.crossunder(cci, oversold)
    strategy.close("Sell")

// Plotting
color_c = cci > overbought ? color.red : (cci < oversold ? color.green : color.white)
plot(cci, "CCI", color=color_c)
hline(0, "Middle Band", color=color.new(#787B86, 50))
obband = hline(overbought, "OB Band", color=color.new(#78867a, 50))
osband = hline(oversold, "OS Band", color=color.new(#867878, 50))
fill(obband, osband, color=color.new(#787B86, 90))