BACKTESTING NO EJECUTA E IG SI

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #236844 quote
    Ifont
    Participant
    New

    Buenas tardes,

    Llevo algunos meses creando un sistema automático y lo he lanzado con éxito para ejecutar órdenes a través de IG.  Me he dado cuenta que en IG se ejecutan las órdenes correctamente según tengo definido pero en cambio no se crean todas en el backtesting y no encuentro el motivo. Unas si se marcan y otras no.

    He resumido mucho la estrategia para que vean lo que sucede.

    Estrategia con EURUSD 10 minutos.

    En la captura pongo una flecha donde realmente se hizo la operación en corto , pasado día 28/08/24 a las 17h, pero en cambio, en la plataforma backtesting no se ejecuta y no lo entiendo. Todo cuadra y de hecho, se lanzó la orden a través de IG.

    // Definición de los parámetros del código
    DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
    // Anular todas las órdenes pendientes y cerrar todas las posiciones a la hora "FLATAFTER"
    DEFPARAM FLATAFTER = 213000
    
    // Impide al sistema crear nuevas órdenes para entrar al mercado a aumentar el tamaño de la posición antes de una hora precisa
    noEntryBeforeTime = 060000
    timeEnterBefore = time >= noEntryBeforeTime
    
    // Impide al sistema lanzar nuevas órdenes para entrar al mercado o aumentar el tamaño de la posición después de una hora precisa
    noEntryAfterTime = 210000
    timeEnterAfter = time < noEntryAfterTime
    
    // Impide al sistema operar en días precisos de la semana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    indicator97 = 0.006
    c98 = (indicator97 <= 0.0050)
    c99 = (indicator97 > 0.0050)
    
    
    
    // Condiciones de entrada de posiciones cortas
    
    indicator30 = Stochastic[14,3](close) 
    c31 = (indicator30 >80)
    indicator31= highest[5](HIGH)
    c32 = (close<indicator31)
    c33 = close<Open
    c43 = lowest[10](low)<close*0.999
    c46 = (high[19]>close) OR (high[20]>close)  OR (high[21]>close)
    
    c42 = low<=(TRADEPRICE(1)*0.9991)
    
    
    IF c31 AND c32 AND c33 AND c43 AND c46 AND c99 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    
    SELLSHORT 3 CONTRACT AT MARKET
    
    ENDIF
    
    // Condiciones de salida de posiciones cortas
    
    IF c99 AND c42 THEN
    EXITSHORT AT MARKET
    
    ENDIF
    
    
    // Stops y targets
    
    SET STOP pLOSS 10
    
    
    //trailing stop function
    
    trailingstart = 3 //trailing will start @trailinstart points profit
    trailingstep = 3 //trailing step to move the "stoploss"
     
    //reset the stoploss value
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
    
    
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND High -tradeprice(1)>=trailingstart*pipsize THEN
    newSL = High *0.999
    ENDIF
    //next moves
    IF newSL>0 AND High -newSL>=trailingstep*pipsize THEN
    newSL = High *0.999
    ENDIF
    ENDIF
     
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-low >=trailingstart*pipsize THEN
    newSL = Low*1.001
    ENDIF
    //next moves
    IF newSL>0 AND newSL-low >=trailingstep*pipsize THEN
    newSL = Low*1.001
    ENDIF
    ENDIF
     
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    //************************************************************************
     
    

     

    Gracias por vuestro soporte.

     

    Albert.

    Captura-no-ejecuta-orden.png Captura-no-ejecuta-orden.png
    #236920 quote
    Ifont
    Participant
    New

    Añado otro recorte donde tampoco se ejecuta la order en el backtesting y en cambio sí lanza la orden de entrada en corto en IG tal y como tengo programado.

    Día 29/8 a las 18:10h

    A ver si se puede averiguar porque el programa no muestra la órden.

    Gracias

    Albert.

    Captura-18_10.png Captura-18_10.png
    #236964 quote
    Ifont
    Participant
    New

    Buenas tardes,

    Después de muchas pruebas, veo que si cambio la fecha de simulación y empiezo la simulación unas horas antes de que se cumplan las condiciones, si que aparece la operación en el backtesting.  Es como si tuviese un limite de operaciones por día o algo similar y por eso no aparecen todas las entradas, ¿es posible?

    No encuentro ningún sentido a este error.

    A ver si Roberto tiene alguna explicación.

    Gracias.

    Albert

    #236984 quote
    Iván González
    Moderator
    Master

    Hola,
    Puedes probar con la instrucción DEFPARAM PRELOADBARS = 200 para que cargue barras antes del backtesting.

    #237014 quote
    Ifont
    Participant
    New

    Gracias pero me parece que ese no es el problema.

    Pienso que el backtesting solo ejecuta un porcentaje de entradas, no todas las posibles. Si hago un backtesting a 6 meses vista , no hace esa operacion, en cambio si empiezo unas horas antes del dia de la ejecución, sí que aparece.

    Es rarísimo.

    Gracias,

    Albert

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

BACKTESTING NO EJECUTA E IG SI


ProOrder: Trading Automático y Backtesting

New Reply
Author
author-avatar
Ifont @ifont Participant
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by Ifont
1 year, 6 months ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 08/29/2024
Status: Active
Attachments: 2 files
Logo Logo
Loading...