
Esta estrategia utiliza el intervalo de precios formado en los primeros 15 minutos después de la apertura del mercado como base para buscar oportunidades de negociación mediante la ruptura de este intervalo. La estrategia funciona en un marco de tiempo de 5 minutos, utilizando órdenes de límite para ingresar en la posición de ruptura del intervalo y establecer puntos de parada y pérdida fijos. Este método aprovecha la volatilidad que suele ocurrir durante el período de apertura y, al mismo tiempo, obtiene un punto de entrada más favorable cuando el precio retrocede o retrocede a través del mecanismo de órdenes de límite.
La lógica central de la estrategia se basa en el rango de precios que se forma al comienzo de la apertura del mercado. En concreto, primero identifica los máximos y mínimos de los precios en los primeros 15 minutos después de la apertura del mercado (9:30-9:45), lo que se logra calculando los máximos y mínimos de las tres primeras líneas de referencia en un marco de tiempo de 5 minutos. Una vez que se establece este rango, la estrategia monitorea si los precios superan el rango.
Cuando el precio de cierre se rompe el límite superior del rango, la estrategia hace un pedido de precio límite en la posición de ruptura; cuando el precio de cierre se rompe el límite inferior del rango, la estrategia hace un pedido de precio límite en la posición de ruptura. La característica de la orden de precio límite es que sólo se activa cuando el precio retrocede o retorna a un nivel especificado, lo que en realidad es la confirmación de la retirada del precio.
La estrategia utiliza un punto de parada fijo (punto 100) y un punto de parada fijo (punto 50). Esto significa que el riesgo tiene una relación de retorno de riesgo de 1:2, una configuración de gestión de riesgo relativamente conservadora. La función de salida de la estrategia se utiliza en el código para administrar automáticamente estos niveles de parada.
Aprovechar la volatilidad de las cuentas abiertasLos primeros 15 minutos después de la apertura del mercado suelen estar acompañados de una mayor volatilidad y volumen de operaciones, lo que proporciona buenas condiciones para las operaciones de ruptura. La estrategia está diseñada específicamente para este período de tiempo y capta eficazmente la energía inicial del mercado.
Mecanismo de pedidos de precio limitado: El uso de órdenes de precio límite permite obtener un precio de entrada más favorable que el de la orden de precio de mercado. Cuando el precio se retira después de una ruptura (esto es común), la estrategia permite ingresar a un precio más ideal, lo que reduce los puntos de deslizamiento y mejora la calidad de ejecución de la operación.
Una gestión de riesgos claraLa estrategia establece puntos de parada y pérdida fijos, con una proporción de riesgo-recibo de 1:2. Esta clara estrategia de gestión de riesgos ayuda a mantener un rendimiento consistente a largo plazo y evita grandes pérdidas en una sola operación.
Sencillo y repetible: La lógica de la estrategia es simple y clara, sin indicadores o cálculos complejos, lo que la hace fácil de entender e implementar. Esta simplicidad también reduce el riesgo de sobreajuste y aumenta la adaptabilidad de la estrategia en diferentes condiciones de mercado.
Ejecución automática: La estrategia puede ser totalmente automatizada, reduciendo la interferencia emocional humana y el retraso en la ejecución. Una vez configurados los parámetros, el sistema puede identificar automáticamente los intervalos, establecer órdenes y administrar el stop loss.
Riesgo de una falsa brechaLa volatilidad en los períodos de apertura del mercado puede provocar falsos rebotes, es decir, que los precios vuelven a rebotar después de un breve rebot en el intervalo. Si bien el mecanismo de órdenes limitadas reduce este riesgo en cierta medida, aún puede provocar transacciones innecesarias. Una posible solución es agregar un mecanismo de confirmación, por ejemplo, pidiendo que los precios permanezcan durante un tiempo después de la rebot, o usar otros indicadores técnicos para confirmar.
Limitaciones de la pérdida fija de frenadoUn método más flexible es ajustar estos parámetros en función de la volatilidad del mercado o de la amplitud de fluctuación real (ATR) en el día de negociación anterior.
Dependencia de un solo período de tiempo: La estrategia se enfoca solo en los primeros 15 minutos después de la apertura, ignorando otros períodos de tiempo que pueden proporcionar señales valiosas. Esta atención estrecha puede conducir a perderse otras oportunidades de negociación. La estrategia de extensión para considerar otros períodos de tiempo clave (como antes del cierre) puede ayudar a aumentar las oportunidades de negociación.
Falta de filtros en el entorno del mercadoLa estrategia no tiene en cuenta el entorno general del mercado, como la dirección de la tendencia o la volatilidad. En ciertas condiciones del mercado, las operaciones de ruptura pueden ser poco efectivas. La introducción de filtros de entorno del mercado, como indicadores de tendencia o de volatilidad, puede ayudar a evitar operaciones en condiciones desfavorables.
La gestión de los fondos no es suficiente.El método de cálculo del tamaño de la posición en el código es sencillo, lo que puede provocar inconsistencias en el riesgo de la brecha. La implementación de sistemas de gestión de fondos más complejos, como el modelo de riesgo porcentual basado en el tamaño de la cuenta, ayudará a mantener un nivel de riesgo consistente.
Dinámica paralización de pérdidasPor ejemplo, se puede usar ATR multiplicado por un factor para establecer los niveles de stop y stop, de modo que cuando aumenta la volatilidad, el punto de stop también se expande en consecuencia, y viceversa. Este método se adapta mejor a las diferentes condiciones del mercado.
Añadir indicadores de confirmaciónIntroducción de indicadores técnicos adicionales para confirmar la efectividad de las brechas, como el aumento de volumen de operaciones, el indicador de movimiento o la dirección de las medias móviles. Esto reduce el riesgo de falsas brechas y mejora la calidad de las señales de negociación.
Optimizar el tiempo de ingresoLa estrategia actual consiste en establecer órdenes de límite inmediatamente después de que el precio se cierre en el rango de ruptura. Se puede considerar la posibilidad de esperar una confirmación adicional, como volver a probar el nivel de ruptura o un patrón de precio específico, para mejorar la precisión de la hora de entrada.
Añadir un filtro de entorno de mercadoIntroducción de mecanismos para evaluar el entorno general del mercado, como la intensidad de la tendencia, el nivel de volatilidad o las fases específicas del mercado. En condiciones adversas, se puede optar por no negociar o ajustar los parámetros para adaptarse a las características del mercado actual.
Mejorar la gestión de los fondosImplementar estrategias de gestión de fondos más complejas, como el modelo de riesgo porcentual basado en el tamaño de la cuenta o el ajuste del tamaño de la posición basado en la volatilidad. Esto garantizará que las aberturas de riesgo sean uniformes independientemente del tamaño de la cuenta.
Extensión a otros períodos de tiempo: Explorar la aplicación de una lógica de ruptura de barras similar en otros períodos de tiempo clave, como la apertura del mercado de mediodía, antes y después de la publicación de datos económicos importantes o antes del cierre del mercado. Esto puede proporcionar oportunidades de negociación adicionales, el riesgo de dispersión de la estrategia.
La estrategia de negociación de breakouts en el límite de la franja de apertura es un método de negociación cuantitativo que se centra en los inicios de la apertura del mercado, para capturar la dinámica del mercado mediante la identificación de los rangos de precios de los primeros 15 minutos y el breakout de la operación. Su uso de órdenes de límite y configuraciones de retorno de riesgo fijas ofrece a los operadores una forma disciplinada y fácil de implementar.
Las principales ventajas de esta estrategia residen en su simplicidad, su grado de automatización y el uso efectivo de la volatilidad de la apertura. Sin embargo, también se enfrenta a desafíos como el riesgo de falsas brechas, la limitación de parámetros fijos y la dependencia de un solo período de tiempo.
La estrategia puede ser significativamente mejorada mediante la implementación de un stop loss dinámico, la adición de indicadores de confirmación, la optimización de los tiempos de entrada, la introducción de filtros de entornos de mercado y la mejora de la gestión de fondos. Estas optimizaciones ayudarán a mejorar la solidez de la estrategia, lo que la hará más adaptable a las diferentes condiciones del mercado.
Esta estrategia ofrece un buen punto de partida para los comerciantes cuantitativos, que pueden personalizar y mejorar aún más según las preferencias de riesgo personales y las características del mercado. Con una constante retroalimentación y optimización, esta estrategia de ruptura de la franja abierta puede ser una herramienta efectiva en la cartera de operaciones.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-01-21 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gghezzar5
//@version=6
//initialize your code as a strategy or indicator, if you want to take entries you need to use a strategy
//NOTE: if your trades dont show up on the chart sometimes its cuz your initial capital is too low
//hovering over a label shows a description of what it does and the required inputs but lmk if youre still confused on anything
strategy("tiktok strat", overlay=true, initial_capital=1000000)
//get times
currenthour=hour(time, "America/New_York")
currentminute=minute(time, "America/New_York")
//quantity increases in proportion to my profit to simulate reinvesting (not using it)
qty=int(((strategy.netprofit+100000)/close)/2)
//var command initializes the variables, float identifier is like int but it can hold decimals as well
var float m15high=0
var float m15low=0
var float limit=0
//boolean true/false variables (entry conditions)
long=false
short=false
//since we're on the 5 minute timeframe, to identify the range of the 15 minute 9:30-9:45 candle we have to get the highest and lowest value of the past three 5 minute candles
//btw
if currenthour==9 and currentminute==45
//4th bar starts at 9:45, finalizing the 15 minute candle
//high[1]=the previous high of the 9:40-9:45 bar, high[2]=the high before that, etc
m15high:=math.max(high[3], high[2], high[1])
m15low:=math.min(low[3],low[2],low[1])
//NOTE: the := operator is super important and easy to use: it allows you to change the value of a global variable while in local scope
//For example if I were to use = instead of :=, m15high would return 0 at 9:50 since the local scope of the if statement only covers 9:45 (try it yourself in strategy tester)
//And if we were to set currentminute>=45 to extend the scope, the relative highs would also shift with the following bars
//ALWAYS use the := operator whenevere youre changing the value of a variable because if = works then := will work but if := works = doesnt always work.
//returns true once a bar closes above the high or below the low of the 15 minute candle. if so, entry condition is set to true and the limit is set at the high or low, which i'll explain next
if close>m15high
limit:=m15high
long:=true
if close<m15low
limit:=m15low
short:=true
tp=100
sl=50
//these are only for the plots
entry_price=strategy.opentrades.entry_price(0)
takeprofit=entry_price+tp
stoploss=entry_price-sl
takeprofits=entry_price-tp
stoplosss=entry_price+sl
//entries: once the long condition becomes true, we enter. But since we placed a limit order we dont enter immediately. When we break out of the range
//a limit is placed where we broke out and only triggers if the price then comes back down (or up) and hits that level again. (in this case it usually happens right away anyway)
if long
strategy.entry('long', strategy.long, 1, limit=limit)
strategy.exit('exitlong', 'long', stop=stoploss, limit=takeprofit)
if short
strategy.entry('short', strategy.short, 1, limit=limit)
strategy.exit('exitshort', 'short', stop=stoplosss, limit=takeprofits)