Hola a todos,
Me estreno en el foro compartiendo esta estrategia que comentó Sergi Sánchez en el canal de Youtube “El psicólogo del trading”:
SISTEMA ORB
Basado en el sistema First Hour Breakout System del libro “New Trading Systems and Methods” de Kaufman.
En el libro cita como fuente; Malcom McNutt: “First-Hour Breakout System”, Technical Analysis of Stocks & Commodities (febrero 1989)
EXPLICACIÓN EN LENGUAJE SIMPLE (para @NQ.DNQ.D en horario regular / RTH)
Este sistema mira el MISMO mercado (@NQ.D) pero en 3 “velocidades” distintas:
-
Velas de 10 minutos → aquí se toman las decisiones y se envían las órdenes.
-
Velas de 60 minutos → se usan para sacar los niveles “importantes” del día.
-
Velas diarias → se usan para calcular lo que se mueve “normalmente” en un día.
La idea general es muy sencilla:
- Usa el máximo y el mínimo de la PRIMERA HORA de la sesión regular como “líneas guía”.
- Entra si el precio ROMPE por arriba o por abajo esas líneas.
- Sale (cierra) cuando el movimiento a favor alcanza aproximadamente “un día normal”
de recorrido (promedio de rango diario).
PASO 1 Calcular el rango diario promedio (avedayrange)
Cada día, el rango diario es:
Rango del día = Máximo del día - Mínimo del día
Luego se hace la media de los últimos “length” días (por defecto 10).
Ese valor (avedayrange) representa: “lo que suele moverse el mercado en un día”.
PASO 2 Al empezar la sesión regular, guardar la primera vela de 60 minutos
Cuando comienza la sesión regular (o cuando cambia el día):
- Guarda la FECHA de hoy.
- Guarda el MÁXIMO de la primera vela de 60 min de hoy (Sess1FirstBarHigh).
- Guarda el MÍNIMO de la primera vela de 60 min de hoy (Sess1FirstBarLow).
Piensa en esto como:
“Para hoy, mis niveles clave son el máximo y el mínimo de la primera hora.”
PASO 3 Durante el resto de la sesión regular, preparar las entradas
Mientras siga siendo “hoy” y todavía estemos dentro del horario regular:
A) POSIBLE ENTRADA EN LARGO (Buy)
Si el cierre de la vela anterior de 10 min está por debajo del máximo de la primera hora,
entonces coloca una orden:
- Comprar (Buy) en STOP en el nivel: Sess1FirstBarHigh
Traducción:
“Solo compro si el precio SUBE y toca/rompe el máximo de la primera hora.”
B) POSIBLE ENTRADA EN CORTO (Sell Short)
Si el cierre de la vela anterior de 10 min está por encima del mínimo de la primera hora,
entonces coloca una orden:
- Vender en corto (Sell Short) en STOP en el nivel: Sess1FirstBarLow
Traducción:
“Solo me pongo corto si el precio BAJA y toca/rompe el mínimo de la primera hora.”
NOTAS IMPORTANTES PARA NOVATOS:
- “Next Bar” significa: la orden se intenta ejecutar en la SIGUIENTE vela de 10 minutos.
- Una orden “STOP” NO se ejecuta inmediatamente: solo se activa si el precio llega al nivel.
- El sistema puede tener preparadas las dos órdenes (largo y corto) si se cumplen condiciones; luego, el mercado decidirá cuál se activa primero (si es que se activa alguna).
PASO 4 Salidas (cierres) a mercado cuando se alcanza un movimiento “tipo día”
Aquí se cierra la posición “a mercado” (al precio disponible) en la siguiente vela de 10 min:
A) Cierre de un CORTO (Buy To Cover)
Si el precio baja lo suficiente como para que:
low <= (máximo primera hora - rango diario promedio)
entonces:
Buy To Cover Next Bar at Market
Traducción:
“Si desde la zona del máximo de la primera hora el precio ya ha caído un recorrido
parecido al de un día normal, cierro el corto.”
B) Cierre de un LARGO (Sell)
Si el precio sube lo suficiente como para que:
high >= (mínimo primera hora + rango diario promedio)
entonces:
Sell Next Bar at Market
Traducción:
“Si desde la zona del mínimo de la primera hora el precio ya ha subido un recorrido
parecido al de un día normal, cierro el largo.”
RESUMEN RÁPIDO
--------------------------------------------------------------------------------
- Niveles del día: máximo y mínimo de la primera HORA (vela 60 min).
- Entradas: ruptura de esos niveles (en velas de 10 min) con órdenes STOP.
- Salidas: cerrar a mercado cuando el movimiento a favor ≈ 1 rango diario promedio.
Código EasyLanguage del sistema
vars:
Sess1FirstBarDAte(9, data2),
Sess1FirstBarHigh(0, data2),
Sess1FirstBarLow(0, data2),
avedayrange(0,data3);
input: length(10);
avedayrange = average(high of data3 - low of data3, length);
if (time of data2 = Sessionstarttime(0,1) of data2)
or
(date of data2 > date[1] of data2) then
begin
Sess1FirstBarDate = date of data2;
Sess1FirstBarHigh = high of data2;
Sess1FirstBarLow = low of data2;
end;
If (Sess1FirstBarDate = Date of data2)
and
(time of data2 < sessionendtime(0,1) of data2) then
begin
if close[1] < Sess1FirstBarHigh then
Buy Next Bar at Sess1FirstBarHigh stop;
if close[1] > Sess1FirstBarLow then
Sell Short Next Bar at Sess1FirstBarLow stop;
end;
if low <= Sess1FirstBarHigh - avedayrange then
Buy to Cover Next Bar at market;
if high >= Sess1FirstBarLow + avedayrange then
Sell Next Bar at market;
Sergi hace un backtest bastante detallado y la curva resultante es bastante buena, la verdad, a pesar de que el factor de beneficio es bastante mediocre (1,15) y el drawdown es bastante alto (diría que ¿inasumible? del 17%). También comenta que filtrándolo tendría un potencial muy bueno.
Ahí es cuando pensé que sería interesante que Nacho le echara un vistazo porque con la IA de Techain se podrían mejorar mucho esas estadísticas.
Si la estrategia pasa el “examen” con buena nota, ¿no sería interesante, Nacho, que hicieras un vídeo donde nos enseñaras cómo mejorar esas métricas armando el automatismo complementándolo, no sólo con nuevos filtros, sino también con IA?
Hay dejo mi propuesta y disculpas por extenderme tanto.