Comprar en el máximo del primer minuto
Forums › ProRealTime foro Español › Soporte ProOrder › Comprar en el máximo del primer minuto
- This topic has 10 replies, 3 voices, and was last updated 8 months ago by robertogozzi.
-
-
02/13/2024 at 6:33 PM #228098
Hola a todos,
Es mi primer mensaje en el foro, disculpas si la pregunta es muy obvia:
Me gustaría programar un trading automático que haga lo siguiente:
- Calcule el máximo del primer minuto de la sesión en USA (15:30 horario España – 9:30 horario USA).
- Compre una cantidad de acciones determinada por un dinero (en el caso que pongo 1000$) mediante una orden STOP LIMIT, donde STOP será el máximo de la vela del primer minuto y LIMIT será el 0’3% por encima
- Coloque automáticamente un StopLoss al 1% por abajo y un TakeProfit al 1% por arriba.
Lo quier hacer cuando se produzca un gap bajista, aprovechar esa primera tendencia del mercado a corregir e intentar tapar el gap.
Esto es lo que he hecho yo, pero no me hace caso:
Compra en el máximo del primer minuto de la sesión123456789101112// Definición de los parámetros del códigoDEFPARAM CumulateOrders = False // Acumulación de posiciones desactivadaIf time = 093000 THENIF NOT ONMARKET AND CLOSE<=high*1.003 THENBUY 1000 CASH AT high STOPENDIF// Stops y targetsSET STOP %LOSS 1SET TARGET %PROFIT 1ENDIF¿Alguien me puede ayudar? Gracias de antemano
02/13/2024 at 6:44 PM #228100La hora debe ser CET (o UTC+1), no US EST, es decir, 153000, no 093000.
El primer minuto se devuelve usando OPENTIME, ya que TIME es cuando comienza la vela 093000.
¿El GAP tiene que ocurrir también en el primer minuto?1 user thanked author for this post.
02/13/2024 at 6:48 PM #228102Compra en el máximo del primer minuto de la sesión123456789101112// Definición de los parámetros del códigoDEFPARAM CumulateOrders = False // Acumulación de posiciones desactivadaIf OPENTIME = 153000 THENIF NOT ONMARKET AND CLOSE<=high*1.003 THENBUY 1000 CASH AT high STOPENDIF// Stops y targetsSET STOP %LOSS 1SET TARGET %PROFIT 1ENDIFHola Roberto (no sé como citarte para que lo veas),
Gracias por responder.
El Gap ocurre porque el día anterior cierra a un precio y hoy abre a un precio inferior (meto en una lista los valores que abren con gap, y el trading automático lo ejecutaría sobre todos los valores de esta lista).
Edito mi primer mensaje cambiando lo de TIME por OPENTIME
02/13/2024 at 9:52 PM #228113Hola
Podría ser algo así (definiendo el gaplimit)Ejemplo123456789DEFPARAM CumulateOrders = Falsegap = (open - close[1])/close[1]*100gaplimit = -0.35IF NOT ONMARKET AND gap < gaplimit and OPENTIME = 153000 THENBUY 1000 CASH AT high STOPENDIF// Stops y targetsSET STOP %LOSS 1SET TARGET %PROFIT 11 user thanked author for this post.
02/14/2024 at 2:05 AM #228117Hola Roberto e Iván
Me gustaría citaros sin incluir vuestro mensaje, para que podáis ver mi post, pero no lo consigo…
Con este código que pongo me compra entre 15:30h y 16:00h siempre que se encuentre un nuevo máximo.
123456789101112131415161718DEFPARAM CumulateOrders = FALSEONCE HH = higHIF OpenTime >= 153000 AND OpenTime <= 160000 THENIF OpenTime = 153000 THENHH = highENDIFIF NOT ONMARKET THENBUY 1000 CASH AT HH STOPENDIFSET STOP %LOSS 1SET TARGET %PROFIT 1ENDIFMe gustaría que comprara UNA ÚNICA VEZ, se superara el máximo de la sesión, o no.
Y por último, me gustaría que cuando comprara en lugar de ejecutar una orden STOP, fuera una orden STOP LIMIT.
Gracias
02/14/2024 at 10:36 AM #228149No te preocupes, no hace falta que me cites, solo somos 3 y de todos modos leo todos los posts, aunque no respondo a todos.
Puedes comprar LIMIT cuando el precio actual sea superior al precio de entrada, es decir, HH:
123456789101112131415DEFPARAM CumulateOrders = FALSEONCE HH = 0IF OnMarket THENHH = 0ENDIFIF OpenTime >= 153000 AND OpenTime <= 160000 THENIF OpenTime = 153000 THENHH = highENDIFIF NOT ONMARKET AND HH <> 0 AND close > HH THENBUY 1000 CASH AT HH LIMITENDIFSET STOP %LOSS 1SET TARGET %PROFIT 1ENDIF1 user thanked author for this post.
02/22/2024 at 12:35 AM #228535Hola,
He conseguido mejoras relevantes en mi código. Sólo me compra una única vez.
He notado lo siguiente, y mando fotos para explicarme mejor:
– Me compra en el máximo del primer minuto, si la vela siguiente supera ese máximo; poniendo SL y TP al 1% (foto adjunta 1: GB_compra1.jpg)
– No me compra en el máximo del primer minuto, si la vela siguiente no lo supera. Aunque sí lo superaría en unos minutos después (foto adjunta 2: GB_compra2.jpg)El comportamiento que tiene mi código en el primer caso es el correcto.
En el segundo caso, me gustaría que siguiera intentando comprar en los minutos sucesivos (al menos los 10 primeros minutos). Luego ya, con el arreón de apertura del mercado más apaciguado, podría ir mirando manualmente a qué valor entrar.
A continuación muestro el código que tengo, a ver si me podéis echar una mano a solucionar el segundo caso:
Compra en el máximo del primer minuto123456789101112131415161718DEFPARAM CumulateOrders = FALSEONCE HH = 0IF OpenTime >= 153000 AND OpenTime <= 160000 THENIF OpenTime = 153000 THENHH = highENDIFIF NOT ONMARKET AND HH<>0 THENBUY 1000 CASH AT HH STOPSET STOP %LOSS 1SET TARGET %PROFIT 1HH=0ENDIFENDIFMuchas gracias de antemano, un saludo,
02/28/2024 at 11:36 PM #228958Hola !!
Casi lo tengo !!
En ProBackTest me funciona sin problemas el siguiente código
Ahora, siempre compra en el máximo de la primera vela de minuto (da igual si la siguiente vela marca un nuevo máximo o no):
Compra en el máximo del primer minuto12345678910111213141516171819202122DEFPARAM CumulateOrders = FALSEONCE HH = 0IF OpenTime >= 153000 AND OpenTime <= 160000 THENIF OpenTime = 153000 THENHH = highENDIF// SI EL MÁXIMO DE LA VELA DEL MINUTO 1 SUPERA HH, HH VALE 0IF high>HH THENHH=0ENDIFIF NOT ONMARKET AND HH<>0 THENBUY 2500 CASH AT HH STOPSET STOP %LOSS 1SET TARGET %PROFIT 1ENDIFENDIFPero cuando voy a ProOrden AutoTrading (de momento en PaperTrading porque lo quiero probar bien antes), sólo me funciona si el segundo minuto no establece un nuevo máximo.
Y no entiendo muy bien por qué…. Ya conseguí que sólo comprara una vez reseteando HH a 0 y así no entra en el IF del mercado.
Sé que es una tontería lo que me falta, pero no consigo dar con ella.
¿Alguien me ayuda? Estaría muy agradecido 🙂
Un aludo,
02/29/2024 at 4:12 PM #229000Si entiendo correctamente, ¿quieres comprar como MÁXIMO el primer minuto de la sesión de USA?
¿Pero se puede comprar sólo en el segundo minuto o incluso después?1 user thanked author for this post.
02/29/2024 at 4:21 PM #229001Hola Roberto,
Quiero comprar a partir del minuto 15:31 – segunda vela (puede ser en 15:31h – segunda vela, 15:32h – tercera vela,… hasta 16:00h porque la volatilidad en USA ya baja bastante a partir de las 16:00h).
Y el precio al que quiero comprar es el máximo de la primera vela (lo recojo donde digo;
IF OpenTime = 153000 THENHH = highENDIFYa lo ideal sería comprar con orden STOP LIMIT, pero de momento no me corre prisa solucionar ese problema03/01/2024 at 1:19 PM #229029Tu escribiste “Pero cuando voy a ProOrden AutoTrading (de momento en PaperTrading porque lo quiero probar bien antes), sólo me funciona si el segundo minuto no establece un nuevo máximo“, pero en el código pones estas líneas para impedir la entrada cuando haya un nuevo Máximo.
Simplemente quítatelos:
123IF high>HH THENHH=0ENDIFEste código me funciona correctamente, sin embargo NO ingresa si se logra un nuevo máximo después de la barra inicial de las 15:30:
12345678910111213141516DEFPARAM CumulateOrders = FALSEONCE HH = 0IF OpenTime >= 153000 AND OpenTime <= 160000 THENIF OpenTime = 153000 THENHH = highENDIF// SI EL MÁXIMO DE LA VELA DEL MINUTO 1 SUPERA HH, HH VALE 0IF high>HH THENHH=0ENDIFIF NOT ONMARKET AND HH<>0 THENBUY 2500 CASH AT HH STOPSET STOP %LOSS 1SET TARGET %PROFIT 1ENDIFENDIF -
AuthorPosts
Find exclusive trading pro-tools on