Estrategia de seguimiento de tendencia ATR dinámico con stop loss de Chande-Kroll

SMA ATR SPX
Fecha de creación: 2024-06-14 15:15:43 Última modificación: 2024-06-14 15:15:43
Copiar: 0 Número de Visitas: 736
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencia ATR dinámico con stop loss de Chande-Kroll

Descripción general

La estrategia de seguimiento de tendencias ATR de Chande-Kroll Stop Loss es una estrategia de negociación cuantitativa basada en el indicador de stop loss de Chande-Kroll y el promedio móvil simple (SMA). La estrategia está diseñada para capturar tendencias al alza en el mercado, mientras que el uso de los stops dinámicos para administrar el riesgo.

Principio de estrategia

El núcleo de esta estrategia es el indicador de stop loss de Chande-Kroll, que utiliza el ATR para calcular el nivel de stop loss dinámico. El ATR mide la volatilidad del mercado y el nivel de stop loss se ajusta a la dinámica de ATR y multiplicador. Esto asegura que las posiciones de stop loss se ajusten a las condiciones actuales del mercado. Hacer más condiciones: Comenzar a hacer más cuando el precio de cierre rompa el tren inferior de Chande-Kroll y esté por encima de la SMA de 21 ciclos. Condiciones de la posición baja: Cuando el precio de cierre cae por debajo de la vía de Chande-Kroll, la posición baja.

Ventajas estratégicas

  1. Detención dinámica: El indicador de detención de Chande-Kroll está basado en el cálculo del nivel de detención dinámica de ATR, que puede adaptarse a diferentes situaciones de volatilidad del mercado y mejorar la efectividad de la detención.
  2. Seguimiento de tendencias: el SMA de 21 ciclos actúa como un filtro de tendencias, asegurando que las operaciones se ajusten a la dirección de la tendencia principal y reduciendo el riesgo de operaciones en contra.
  3. Flexibilidad de los parámetros: los parámetros de la estrategia, como el ciclo ATR, el multiplicador ATR, el ciclo stop loss y el ciclo SMA, se pueden ajustar según las preferencias del usuario para mejorar la adaptabilidad de la estrategia.
  4. Gestión del tamaño de la posición: el tamaño de la posición se ajusta dinámicamente en función de los factores de riesgo y la volatilidad actual del mercado, lo que permite la gestión dinámica del riesgo.

Riesgo estratégico

  1. Riesgo de optimización de parámetros: los parámetros de la estrategia necesitan ser optimizados en función de las diferentes condiciones del mercado y la variedad de transacciones. La configuración inadecuada de los parámetros puede causar un mal rendimiento de la estrategia.
  2. Riesgo de reconocimiento de tendencias: en un mercado convulso o en el inicio de una reversión de tendencias, la estrategia puede generar señales erróneas y causar pérdidas.
  3. Puntos de deslizamiento y costos de transacción: en las transacciones reales, los puntos de deslizamiento y los costos de transacción afectan el beneficio neto de la estrategia. Las medidas de gestión de riesgos incluyen: una revisión exhaustiva de la estrategia y la optimización de los parámetros; en las operaciones reales, seguir estrictamente las reglas de la estrategia y controlar el riesgo de cada operación; evaluar periódicamente el rendimiento de la estrategia y hacer ajustes cuando sea necesario.

Dirección de optimización de la estrategia

  1. El comercio bidireccional multi-espacio: La estrategia actual es sólo hacer múltiples señales, que se pueden ampliar a comercio bidireccional multi-espacio para capturar plenamente las oportunidades en diferentes entornos de mercado.
  2. Optimización de parámetros dinámicos: Utiliza algoritmos de aprendizaje automático o optimización para ajustar los parámetros de la estrategia en tiempo real según las condiciones del mercado, mejorando la adaptabilidad.
  3. Combinación con otros indicadores técnicos: introducción de otros indicadores de tipo de tendencia o de tipo de convulsión, construcción de estrategias multifactoriales para mejorar la fiabilidad de la señal.
  4. Incorporación de indicadores de sentimiento de mercado: en combinación con indicadores de sentimiento de mercado como VIX, etc., para controlar las operaciones cuando el sentimiento del mercado es extremo y mejorar la capacidad de gestión de riesgos.

Resumir

La estrategia de seguimiento de tendencias ATR de parada de pérdidas dinámicas de Chande-Kroll es una estrategia de negociación cuantitativa basada en los principios de parada de pérdidas dinámicas y seguimiento de tendencias. A través de la combinación del indicador de parada de pérdidas de Chande-Kroll y el filtro de tendencias SMA, la estrategia permite administrar el riesgo de manera efectiva mientras se captura una tendencia alcista. La flexibilidad de los parámetros de la estrategia y el ajuste dinámico de la escala de la posición aumentan aún más la adaptabilidad de la estrategia.

Código Fuente de la Estrategia
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chande Kroll Stop Strategy", overlay=true, initial_capital = 1000, commission_type = strategy.commission.percent, commission_value = 0.01, slippage = 3)

// Chande Kroll Stop parameters
calcMode = input.string(title="Calculation Mode", defval="Exponential", options=["Linear", "Exponential"])
riskMultiplier = input(5, "Risk Multiplier")
atrPeriod = input(10, "ATR Period")
atrMultiplier = input(3, "ATR Multiplier")
stopLength = input(21, "Stop Length")
smaLength = input(21, "SMA Length")

// Calculate ATR
atr = ta.atr(atrPeriod)

// Calculate Chande Kroll Stop
highStop = ta.highest(high, stopLength) - atrMultiplier * atr
lowStop = ta.lowest(low, stopLength) + atrMultiplier * atr

sma21 = ta.sma(close, smaLength)

// Entry and Exit conditions
longCondition = ta.crossover(close, lowStop) and close > sma21
exitLongCondition = close < highStop

// Funktion zur Berechnung der Menge
calc_qty(mode, riskMultiplier) =>
    lowestClose = ta.lowest(close, 1560)
    if mode == "Exponential"
        qty = riskMultiplier / lowestClose * 1000 * strategy.equity / strategy.initial_capital
    else
        qty = riskMultiplier / lowestClose * 1000

// Berechnung der Menge basierend auf der Benutzerwahl
qty = calc_qty(calcMode, riskMultiplier)

// Execute strategy
if (longCondition)
    strategy.entry("Long", strategy.long, qty=qty)
    alert("Buy Signal", alert.freq_once_per_bar_close)

if (exitLongCondition)
    strategy.close("Long")
    alert("Sell Signal", alert.freq_once_per_bar_close)

// Plotting
plotshape(series=longCondition, location=location.belowbar, color=#0097a7, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(series=ta.crossunder(close, highStop), location=location.abovebar, color=#ff195f, style=shape.triangledown, size=size.small, title="Sell Signal")
plot(sma21, color=color.gray)
plot(highStop, color=#0097a7)
plot(lowStop, color=#ff195f)