Estrategia de ruptura y reversión de velas matinales

OHLC MA ATR RSI
Fecha de creación: 2024-07-31 14:16:42 Última modificación: 2024-07-31 14:16:42
Copiar: 5 Número de Visitas: 591
1
Seguir
1617
Seguidores

Estrategia de ruptura y reversión de velas matinales

Descripción general

Esta estrategia es una estrategia de negociación intradiaria basada en el patrón de la barra de la mañana, que utiliza principalmente los puntos altos y bajos de la barra de las 11:00 a.m. para determinar el movimiento del mercado. La idea central de la estrategia es hacer más cuando el precio rompe el punto alto de la barra de la mañana, hacer vacío cuando se rompe el punto bajo, y establecer las condiciones de parada correspondientes.

Principio de estrategia

La estrategia funciona de la siguiente manera:

  1. Determinación de precios clave: la estrategia primero identifica los puntos más altos y más bajos de las 11:00 a.m. y los utiliza como niveles de referencia clave.

  2. Señales de entrada:

    • Hacer más señales: cuando el precio de cierre de la bolsa rompa dos líneas K consecutivas en el punto más alto de la mañana, se activa la señal de hacer más.
    • Se activa una señal de baja cuando el precio de cierre de dos líneas K consecutivas cae por debajo de los mínimos de la mañana.
  3. Ajustes para detener el daño:

    • El punto más bajo de la tormenta de la mañana.
    • La pérdida de cabeza en blanco: el punto más alto de la cola en la mañana.
  4. Mecanismo de salida:

    • Tocar el Stop Loss: Cancelar automáticamente la posición cuando el precio toque el nivel de Stop Loss correspondiente.
    • Tiempo de salida: Todas las posiciones se liquidan automáticamente a las 15:15 para controlar el riesgo de la noche a la mañana.
  5. Limitación del tiempo de negociación: la estrategia de no abrir nuevas operaciones después de las 15:15 para evitar fluctuaciones anormales antes del cierre.

Ventajas estratégicas

  1. Reglas claras de negociación: las estrategias se basan en una clara brecha de precios y lógica de reversión, fáciles de entender y ejecutar.

  2. Control de riesgos: Control eficaz de los riesgos de cada operación mediante el establecimiento de un punto de parada fijo.

  3. Adaptación al mercado: la estrategia es capaz de adaptarse a diferentes estados de fluctuación del mercado en función de los rangos de precios que se forman en la mañana.

  4. Ejecución automatizada: Las estrategias pueden programarse para que las transacciones sean completamente automatizadas, reduciendo la intervención humana y el impacto emocional.

  5. Negociación en el día: evita el riesgo de tener posiciones durante la noche al cerrar las posiciones antes del cierre del día.

  6. Flexibilidad: Las estrategias pueden ser optimizadas para diferentes mercados y variedades de transacciones.

Riesgo estratégico

  1. Riesgo de falsas rupturas: el mercado puede tener falsas rupturas, lo que lleva a una salida de pérdidas frecuentes.

  2. Limitación de la amplitud de fluctuación: en períodos de baja volatilidad, la estrategia puede ser difícil de activar señales de negociación o generar ganancias efectivas.

  3. Un marco de tiempo único: depender de la línea de las 11:00 puede pasar por alto información importante del mercado en otros períodos de tiempo.

  4. Falta de seguimiento de tendencias: la estrategia no tiene un parador establecido y puede no tener una buena idea de las grandes tendencias.

  5. Detención fija: En mercados con mucha volatilidad, el detenerse fijo puede ser demasiado cercano, lo que lleva a una salida prematura de la ventaja.

  6. Costos de transacción: los ingresos y salidas frecuentes pueden generar costos de transacción más altos que afectan a los ingresos generales.

Dirección de optimización de la estrategia

  1. Introducción de análisis de múltiples marcos temporales: en combinación con el juicio de tendencias en períodos de tiempo más largos, mejora la precisión de las transacciones.

  2. Detención dinámica: utiliza métodos como el indicador ATR para configurar el deterioro dinámico para adaptarse a diferentes estados de volatilidad del mercado.

  3. Incorporar un mecanismo de detención: establecer condiciones de detención basadas en el riesgo-beneficio, mejorar el beneficio-pérdida de la estrategia.

  4. Análisis de volumen: se añade el análisis de volumen para mejorar la fiabilidad de la señal de ruptura.

  5. Filtración de estado de mercado: Introducción de indicadores de volatilidad como el ATR, para reducir la frecuencia de las operaciones en períodos de baja volatilidad.

  6. Optimice el momento de entrada: considere el uso de indicadores como el RSI para invertir en zonas de sobreventa y sobrecompra.

  7. Añadir un elemento de seguimiento de tendencias: Considere el uso de un stop loss móvil para seguir la tendencia en el momento de una fuerte ruptura.

  8. La retroalimentación y la optimización de parámetros: se realizan retroalimentaciones de diferentes combinaciones de parámetros para encontrar la configuración óptima de los parámetros.

Resumir

La estrategia de brecha y reversión de la mañana es un sistema de negociación diurno basado en brechas clave de precios. Utiliza los altos y bajos de las brechas de las 11:00 a.m. como referencia importante para capturar tendencias a corto plazo a través de brechas de precios. La estrategia tiene la ventaja de tener reglas claras, riesgos controlables y adecuadas para la ejecución automática. Sin embargo, también enfrenta riesgos potenciales como la fijación de brechas falsas, paros y pérdidas.

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

//@version=5
strategy("Custom Strategy Nifty 50", overlay=true)

// Define the time variables
var bool morningCandleFound = false
var float morningHigh = na
var float morningLow = na
var bool inTrade = false
var int tradeDirection = 0 // 0: No trade, 1: Buy Call, -1: Buy Put
var bool noNewTrades = false // To prevent new trades after 15:15

// Identify the high and low of the 11:00 morning candle
if (hour == 11 and minute == 0)
    morningHigh := high
    morningLow := low
    morningCandleFound := true

// Plot the high and low of the 11:00 morning candle
plot(morningHigh, title="11:00 morning High", color=color.green, linewidth=2)
plot(morningLow, title="11:00 morning Low", color=color.red, linewidth=2)

// Conditions for Buy Call and Buy Put signals
var bool buyCallCondition = false
var bool buyPutCondition = false

if (morningCandleFound and (hour > 11 or (hour == 11 and minute > 0)) and not noNewTrades)
    // Check for Buy Call condition
    if (close[1] > morningHigh and close > morningHigh)
        if (not inTrade or tradeDirection != 1)
            strategy.entry("Buy Call", strategy.long, stop=morningLow)
            buyCallCondition := true
            inTrade := true
            tradeDirection := 1
            label.new(bar_index, high, "Buy Call", color=color.green)
            alert("Buy Call: Price crossed morning high", alert.freq_once_per_bar_close)
    else if (close[1] <= morningHigh)
        buyCallCondition := false

    // Check for Buy Put condition
    if (close[1] < morningLow and close < morningLow)
        if (not inTrade or tradeDirection != -1)
            strategy.entry("Buy Put", strategy.short, stop=morningHigh)
            buyPutCondition := true
            inTrade := true
            tradeDirection := -1
            label.new(bar_index, low, "Buy Put", color=color.red)
            alert("Buy Put: Price crossed morning low", alert.freq_once_per_bar_close)
    else if (close[1] >= morningLow)
        buyPutCondition := false

    // Exit conditions
    if (inTrade)
        if (tradeDirection == 1 and low <= morningLow)
            strategy.close("Buy Call")
            label.new(bar_index, low, "Exit Call", color=color.red)
            alert("Exit Call: Price fell below stop", alert.freq_once_per_bar_close)
            buyCallCondition := false
            inTrade := false
            tradeDirection := 0
        if (tradeDirection == -1 and high >= morningHigh)
            strategy.close("Buy Put")
            label.new(bar_index, high, "Exit Put", color=color.green)
            alert("Exit Put: Price rose above stop", alert.freq_once_per_bar_close)
            buyPutCondition := false
            inTrade := false
            tradeDirection := 0

// Close all positions at 15:15 and prevent new trades for the rest of the day
if (hour == 15 and minute == 15)
    strategy.close_all()
    inTrade := false
    tradeDirection := 0
    noNewTrades := true
    alert("Close All Positions at 15:15", alert.freq_once_per_bar_close)

// Reset noNewTrades at the start of a new day
if (hour == 11 and minute == 0)
    noNewTrades := false