
Descripción general
Esta es una estrategia de negociación de ruptura de intervalo basada en los máximos y mínimos del día de negociación anterior. La estrategia busca oportunidades de negociación mediante la identificación de los máximos o mínimos de la ruptura o caída del precio del día anterior, y solo ejecuta una operación por cada dirección de ruptura o caída. La estrategia adopta una configuración fija de stop loss de 50 puntos y restablece los marcadores de negociación al comienzo de cada día de negociación para garantizar que las operaciones se realicen de manera ordenada.
Principio de estrategia
La lógica central de la estrategia incluye los siguientes aspectos:
- Generación de señales de negociación: El sistema determina la dirección de la operación al determinar si el precio de cierre actual ha superado el máximo o mínimo del día anterior. Cuando el precio de cierre supera el máximo del día anterior, el sistema emite una señal de multiplicación; cuando el precio de cierre cae por debajo del mínimo del día anterior, el sistema emite una señal de cancelación.
- Control de la frecuencia de las transacciones: La estrategia utiliza marcas de bandera para asegurar que cada dirección solo ejecute una transacción por día. Este diseño evita la repetición de transacciones en la misma zona de precios y reduce los costos de transacción.
- Gestión de riesgos: Cada transacción tiene un límite fijo de 50 puntos de parada y pérdida. Esta forma de gestión de riesgos simétrica permite controlar eficazmente el riesgo de una sola transacción.
- Mecanismo de reinicio del día: al comienzo de cada día de negociación, el sistema reinicia el marcador de negociación para prepararse para el nuevo día de negociación. Este mecanismo asegura que la estrategia pueda capturar nuevas oportunidades de negociación.
Ventajas estratégicas
- Claridad de la lógica de las transacciones: la estrategia se basa en una simple teoría de la ruptura de precios, las reglas de las transacciones son claras, fáciles de entender y ejecutar.
- Estricto control de riesgos: El riesgo de cada operación está controlado de manera efectiva con un número fijo de puntos de parada y pérdida y un límite de transacción en un solo sentido.
- Evite el exceso de operaciones: solo se permite una operación por día en cada dirección, lo que evita las pérdidas que se producen con el comercio frecuente en mercados inestables.
- Alto grado de automatización: La ejecución de las estrategias puede ser totalmente automatizada sin necesidad de intervención humana.
- Adaptabilidad: Las estrategias se pueden aplicar a diferentes entornos de mercado, especialmente en mercados con tendencias evidentes.
Análisis de riesgos
- Riesgo de Falsa Breakout: El mercado puede tener una falsa breakout, lo que lleva a pérdidas de operaciones. Se recomienda la confirmación en combinación con otros indicadores técnicos.
- Riesgo de mercado en crisis: En mercados en crisis, las rupturas y caídas frecuentes pueden causar pérdidas continuas. Se puede mejorar mediante el aumento de las condiciones de filtración.
- Riesgo de pérdidas fijas: los puntos de pérdidas fijas pueden no ser adecuados para todos los entornos de mercado, y en los mercados más volátiles pueden detenerse demasiado pronto.
- Riesgo de deslizamiento: en un momento de fuerte volatilidad del mercado, el deslizamiento puede provocar que el punto de parada real se desvíe de las expectativas.
Dirección de optimización
- Configuración de stop loss dinámico: el número de puntos de stop loss se puede ajustar dinámicamente en función de la volatilidad del mercado (como el indicador ATR).
- Aumentar el filtro de tendencias: Combina indicadores de tendencias (como las medias móviles o el ADX) para filtrar las señales de negociación.
- Optimización de la confirmación de la ruptura: se puede aumentar la confirmación de la transacción u otros indicadores técnicos para mejorar la fiabilidad de la ruptura.
- Filtrado por tiempo: Se pueden agregar condiciones de filtrado por tiempo para evitar el comercio en períodos de mayor volatilidad.
- Optimización de la gestión de posiciones: el tamaño de las posiciones se puede ajustar dinámicamente según la volatilidad del mercado y la capacidad de soportar el riesgo de la cuenta.
Resumir
La estrategia es un sistema de negociación clásico basado en brechas en el horizonte, que se adapta a las tendencias unidireccionales del mercado a través de una estricta gestión de operaciones y control de riesgos. Si bien existen algunos riesgos inherentes, la estabilidad y la rentabilidad de la estrategia se pueden mejorar con una optimización y mejora razonables. La clave para el éxito de la estrategia reside en manejar correctamente el riesgo de brechas falsas, establecer un stop loss razonable y mantener la adaptabilidad de la estrategia en diferentes entornos de mercado.
Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("US 30 Daily Breakout Strategy (Single Trade Per Breakout/Breakdown, New York Time)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, trim_orders = true)
// Set pip size for US 30 (1 pip = 1 point)
var float pip = 1.0
// Set take profit and stop loss in points (1 pip = 1 point)
take_profit_pips = 50
stop_loss_pips = 50
// Calculate the previous day's high and low (assumes chart timezone is set to New York)
prevDayHigh = request.security(syminfo.tickerid, "D", high[1])
prevDayLow = request.security(syminfo.tickerid, "D", low[1])
// Initialize flags to track if a breakout/breakdown trade has been taken
var bool breakout_traded = false
var bool breakdown_traded = false
// Reset flags at the start of a new day in New York timezone (as per chart setting)
if (ta.change(time("D")))
breakout_traded := false
breakdown_traded := false
// Condition for a long entry: candle closes above the previous day's high and no breakout trade has been taken
longCondition = close > prevDayHigh and strategy.opentrades == 0 and not breakout_traded
// Condition for a short entry: candle closes below the previous day's low and no breakdown trade has been taken
shortCondition = close < prevDayLow and strategy.opentrades == 0 and not breakdown_traded
// Execute long trade if the condition is met, and set the breakout flag
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Long", limit=close + take_profit_pips * pip, stop=close - stop_loss_pips * pip)
breakout_traded := true // Set breakout flag
// Execute short trade if the condition is met, and set the breakdown flag
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Short", limit=close - take_profit_pips * pip, stop=close + stop_loss_pips * pip)
breakdown_traded := true // Set breakdown flag
// Plotting the previous day's high and low for visualization
plot(prevDayHigh, color=color.green, linewidth=1, title="Previous Day High")
plot(prevDayLow, color=color.red, linewidth=1, title="Previous Day Low")