NO OPERAR entre fechas y horas
Forums › ProRealTime foro Español › Soporte ProOrder › NO OPERAR entre fechas y horas
- This topic has 6 replies, 3 voices, and was last updated 8 years ago by RICHARDYUSTE.
-
-
05/26/2016 at 8:58 AM #8074
Hola
Me gustaría que mi sistema no operara entre fechas y horas concretas. Las fechas en las que no quiero operar son por ejemplo DESDE 19 de agosto del 2015 a las 9:00 am HASTA 01 de Septiembre del 2015 a las 7:00 am.
¿Se puede escribir un código que diga que en ese periodo no ha operado? Hablamos en pasado para el backtesting, futuras fechas lo pararía manualmente.
MUCHAS GRACIAS,
Ver imagen adjunta por favor
05/26/2016 at 9:18 AM #8083¡Buenos dias! Creo que éste es el sitio correcto para la respuesta.
1234567891011121314151617181920212223DEFPARAM CUMULATEORDERS = FALSE// REM NO OPERAR A PARTIR DEL 19 DE AGOSTOIF month=8 AND DAY >= 19 AND TIME >090000 THENtrading = 0ENDIF// REM OPERAR DE NUEVO EN SEPTIEMBREIF MONTH = 9 AND DAY >= 1 AND TIME >= 070000 THENtrading = 1ENDIFREM EJEMPLO PARA TESTREM ###############IF trading = 1 thenIF CLOSE>CLOSE[1] THENBUY 1 CONTRACT AT MARKETENDIFendifSET STOP PLOSS 30SET TARGET PROFIT 50REM ###############05/26/2016 at 10:47 AM #8096Hola! muchísimas gracias por tu ayuda.
A la fecha tengo que ponerle el año 2015 porque hago test de 10 años atrás.
123456789// REM NO OPERAR A PARTIR DEL 19 DE AGOSTOIF month=8 AND DAY >= 19 AND TIME >090000 AND YEAR > 2015 THENtrading = 0ENDIF// REM OPERAR DE NUEVO EN SEPTIEMBREIF MONTH = 9 AND DAY >= 1 AND TIME >= 070000 AND YEAR > 2015 THENtrading = 1ENDIFEs algo asi?
El segundo punto es que no me permite quitarle profit y stop porque me da error, mi sistema no utiliza stop y profit. La idea es que si hay posiciones abiertas y llega la fecha automaticamente cierre todas. Puede ser..?
Y la última cosa es que compro 5 contratos.
12345678910REM EJEMPLO PARA TESTREM ###############IF trading = 1 thenIF CLOSE>CLOSE[1] THENBUY 5 CONTRACT AT MARKET ??ENDIFendifSET STOP PLOSS ??SET TARGET PROFIT ??REM ###############De nuevo GRACIAS!
05/26/2016 at 2:24 PM #8136Casi, si pones Year > 2015 , dejará de operar en 2015, 2016… Si únicamente quieres que deje de operar en 2015, cambia el signo > por = , quedaría así:
1Year = 2015Para que cierre las posiciones en la fecha haz lo siguiente:
1234IF trading=0 AND OnMarket thenSell at marketExitshort at marketEndifNo te preocupes por el numero de contratos esas ordenes cierran las posiciones con el numero de contratos correcto.
saludos
05/26/2016 at 2:32 PM #813806/04/2016 at 7:57 PM #8794Hola
Muchas Gracias pero no me funciona correctamente… No me reconoce las fechas
Para aclarar mi objetivo os paso una captura con los periodos que quiero eliminar del backtesting. Aunque tenga que parar el robot manualmente, solo quiero que me haga bien el backtesting para verificar resultados anteriores. Hay algun comando tipo: No calcular entre X y Y, o Eliminar test desde X hasta Y
06/07/2016 at 10:10 PM #9005Prueba con este código:
INICIO=(DATE<20150819)
HORAINICIO=(TIME<090000)FINAL=(DATE>20150901)
HORAFINAL=(TIME>070000)
CONDICION1= (INICIO AND HORAINICIO) OR (FINAL AND HORAFINAL)
IF NOT LONGONMARKET AND CONDICION1 THEN
BUY 5 SHARES AT MARKET
ENDIF
VENTA=(DATE>=0150818 AND DATE<20150820)
HORAVENTA=(TIME>=085900 AND TIME<=090100)
CONDICION2=VENTA AND HORAVENTA
IF LONGONMARKET AND CONDICION2 THEN
SELL AT MARKET
ENDIF
DATE puede sere sustituido por YEAR, MONTH, DAY
También admite HOUR, MINUTEDebes tener en cuenta que el mercado esté abierto a esas horas que indicas sino no se realizarán tales acciones.
-
AuthorPosts
Find exclusive trading pro-tools on