
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.
La estrategia funciona de la siguiente manera:
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.
Señales de entrada:
Ajustes para detener el daño:
Mecanismo de salida:
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.
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.
Control de riesgos: Control eficaz de los riesgos de cada operación mediante el establecimiento de un punto de parada fijo.
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.
Ejecución automatizada: Las estrategias pueden programarse para que las transacciones sean completamente automatizadas, reduciendo la intervención humana y el impacto emocional.
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.
Flexibilidad: Las estrategias pueden ser optimizadas para diferentes mercados y variedades de transacciones.
Riesgo de falsas rupturas: el mercado puede tener falsas rupturas, lo que lleva a una salida de pérdidas frecuentes.
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.
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.
Falta de seguimiento de tendencias: la estrategia no tiene un parador establecido y puede no tener una buena idea de las grandes tendencias.
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.
Costos de transacción: los ingresos y salidas frecuentes pueden generar costos de transacción más altos que afectan a los ingresos generales.
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.
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.
Incorporar un mecanismo de detención: establecer condiciones de detención basadas en el riesgo-beneficio, mejorar el beneficio-pérdida de la estrategia.
Análisis de volumen: se añade el análisis de volumen para mejorar la fiabilidad de la señal de ruptura.
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.
Optimice el momento de entrada: considere el uso de indicadores como el RSI para invertir en zonas de sobreventa y sobrecompra.
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.
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.
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.
/*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