Quiero programar el siguiente sistema para hacer backtest pero al hacerlo no me arroja ningún dato. Soy novato en este lenguaje y no encuentro que estoy haciendo mal, os adjunto captura del código y también como es el sistema, muchas gracias. Es un sistema muy sencillo solo de largos en el SPY:
– Comprar el SPY SOLO los lunes SI el cierre es menor o igual a las 2 sesiones anteriores
– Vender (si tenemos posición) cuando alcance un precio que supere los máximos de la sesión anterior ( a modo de price target )
– Vender (si tenemos posición) en caso de que a los 10 días no se haya cumplido la condición de venta anterior, es decir que no haya conseguido superar los máximos del día anterior ( a modo de stop-loss).
Muchas gracias de nuevo
Publique el código la próxima vez, no una imagen del mismo. Gracias 🙂
No debes utilizar órdenes pendientes, ya sean LIMIT o STOP, cuando el precio de entrada es CLOSE. Utilice AT MARKET en su lugar.
Reemplace sus líneas de BUY y SELL con estas:
BUY 1 Contract AT MARKET
SELL AT MARKET
De acuerdo no lo sabía, y también he visto que debería haberlo publicado en el foro de proorder, que son los asuntos relacionados con estrategias. Voy a reformular la pregunta allí porque me sigue sin funcionar. Muchas gracias.
No vuelvas a preguntar, trasladaré tu solicitud al foro de PoOrder.
Esto funciona correctamente:
DEFPARAM CumulateOrders = False
c1 = (DayOfWeek = 1)
c2 = close <= close[2]
c3 = close > high[1]
IF c1 AND c2 THEN
BUY AT Market
ENDIF
IF OnMarket AND c3 THEN
SELL AT Market
ENDIF
ONCE BarsLimit = 10
IF OnMarket AND ((BarIndex - TradeIndex + 1) > BarsLimit) THEN
SELL AT Market
ENDIF
Es mejor utilizar DayOfWeek, en lugar de CurrentDayOfWeek.
Hola! Muchas gracias de antemano, pero, copiando el código que me pones tal cual para hacer el backtest, al ejecutarlo no me arroja ningún dato, como si algo fuera incorrecto y no pudiera hacerlo. ¿Puede tener algún error el código o algo?
Gracias de nuevo.
Funciona muy bien para mí. Lo probé en DAX, NASDAQ y otros, en 1 Minuto, 1 Hora y en el Diario.
Adjunte el archivo ITF de su código y una captura de pantalla del gráfico completo, incluidos los parámetros utilizados para el backtest.
Copié el código tal cual lo puso, y lo he probado haciendo backtest en varios activos (SPY, IWM, SP500, etc.) y en todos el informe está en blanco no arroja ningún dato, como si algo fallara. Tal que así:
Como trabajas en gráfico diario y las estrategias SIEMPRE se ejecutan al cierre de la vela, para asegurar que la posición esté abierta el lunes debes darle la orden de abrirla al cierre del VIERNES.
De esta forma el puesto quedará abierto el lunes.
c1 = (OpenDayOfWeek = 5)