Cuántos TIMEFRAME en PROORDER

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • #192469 quote
    deletedaccount22102025
    Participant
    New

    Hola a todos, quería saber cuántos TIMEFRAME se pueden usar en una estrategia de Proorder. Estoy intentando hacer que funcione una con 3 TIMEFRAME diferentes, respetando los múltiplos de los períodos, y no hay manera de que tenga en cuenta las condiciones especificadas en los diferentes TIMEFRAME. Gracias

    #192471 quote
    robertogozzi
    Moderator
    Master

    Aquí hay un ejemplo:

    // Multiple TFs (example)
    //
    Timeframe(Daily,UpdateOnClose)
    sma1 = average[5,0](close)
    Timeframe(4h,UpdateOnClose)
    sma2 = average[5,0](close)
    Timeframe(1h,UpdateOnClose)
    sma3 = average[5,0](close)
    Timeframe(30 minute,UpdateOnClose)
    sma4 = average[5,0](close)
    Timeframe(15 minute,UpdateOnClose)
    sma5 = average[5,0](close)
    Timeframe(5 minute,UpdateOnClose)
    sma6 = average[5,0](close)
    Timeframe(8h,UpdateOnClose)
    sma7 = average[5,0](close)
    Timeframe(1 minute,UpdateOnClose)
    sma8 = average[5,0](close)
    Timeframe(default,UpdateOnClose)
    sma9 = average[5,0](close)
    Timeframe(Daily,default)
    sma10 = average[5,0](close)
    Timeframe(Daily,UpdateOnClose)
    sma11 = average[5,0](close)
    Timeframe(5 minute,default)
    sma12 = average[5,0](close)
    //return sma1 as "sma1",sma2 as "sma2",sma3 as "sma3",sma4 as "sma4",sma5 as "sma5",sma6 as "sma6",sma7 as "sma7",sma8 as "sma8",sma9 as "sma9",sma10 as "sma10",sma11 as "sma11",sma12 as "sma12"
    buy at  -close limit
    //
    graphonprice sma1
    graphonprice sma2
    graphonprice sma3
    graphonprice sma4
    graphonprice sma5
    graphonprice sma6
    graphonprice sma7
    graphonprice sma8
    graphonprice sma9
    graphonprice sma10
    graphonprice sma11
    graphonprice sma12
    #192472 quote
    deletedaccount22102025
    Participant
    New

    Gracias Roberto por responder. Sé estructurar la estrategia, lo que ocurre es que no funciona. Te adjunto mi estrategia y comprobándolo en tiempo real se puede ver como aparecen operaciones ganadoras pero la estrategia no las refleja. Te adjunto el código.

    //CIRONET TRADING PRUEBA | proorder
    
    DEFPARAM CUMULATEORDERS = FALSE
    
    iTIMENASDAQ = TIME >= 154000 AND TIME <= 215000
    
    iP1 = 10
    iP2 = 15
    iP3 = 20
    iP4 = 25
    //////////////////////////////////////////////////////////
    TIMEFRAME (90 MINUTE, DEFAULT)
    
    iX90 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
    iKST90 = WILDERAVERAGE[9](iX90)
    
    iC90 = (iKST90 > iKST90[1])
    iV90 = (iKST90 < iKST90[1])
    //////////////////////////////////////////////////////////
    TIMEFRAME (25 MINUTE, DEFAULT)
    
    iX25 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
    iKST25 = WILDERAVERAGE[9](iX25)
    
    iC25 = (iKST25 > iKST25[1])
    iV25 = (iKST25 < iKST25[1])
    
    //////////////////////////////////////////////////////////
    TIMEFRAME (5 MINUTE, DEFAULT)
    
    iX5 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
    iKST5 = WILDERAVERAGE[9](iX5)
    
    iC5 = (iKST5 > iKST5[1])
    iV5 = (iKST5 < iKST5[1])
    
    //////////////////////////////////////////////////////////
    TIMEFRAME (DEFAULT)
    
    IF (iC90 AND iC25 AND iC5)  AND (iTIMENASDAQ) THEN
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    
    //IF LONGONMARKET AND (iSC) THEN
    //SELL AT MARKET
    //ENDIF
    
    IF (iV90 AND iV25 AND iV5) AND (iTIMENASDAQ) THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF
    
    //IF SHORTONMARKET AND (iSV) THEN
    //EXITSHORT AT MARKET
    //ENDIF
    
    
    
    SET STOP PLOSS 10
    SET TARGET PPROFIT 0.5
    #192474 quote
    robertogozzi
    Moderator
    Master

    Debería reportar un error, porque 90 minutos no es un múltiplo de 25. ¿No te reportaron?

    #192502 quote
    deletedaccount22102025
    Participant
    New

    No. pero es que como te decía Roberto. Utilizo esta estrategia con éxito diariamente en modo manual, pero el Proorder hace lo que le parece…no tiene nada que ver con lo que le aplico en el código.

    #192505 quote
    phoentzs
    Participant
    Master

    Si cambia “TF 25 minutos” a “TF 30 minutos” y lo ajusta, debería funcionar.

    thanked this post
    #192507 quote
    deletedaccount22102025
    Participant
    New

    Nada Roberto. Lo estoy probando en Nasdaq usando el TIMEFRAME DEFAULT con una temporalidad de 10 segundos. Y no tiene sentido lo que hace el Proorder. Llevo tiempo intentando que funcione y nada, al final me veré obligado a usar otra plataforma para el trading automático. He probado incluso usar un solo TIMEFRAME de 90m y el TIMEFRAME DEFAULT de 10 segundos con otros ajustes y nada. Lo podrías probar tú por favor?.

    //CIRONET TRADING PROJECT | proorder
    
    DEFPARAM CUMULATEORDERS = FALSE
    
    iTIMENASDAQ = TIME >= 154000 AND TIME <= 215000
    
    iP1 = 10
    iP2 = 15
    iP3 = 20
    iP4 = 25
    
    
    //////////////////////////////////////////////////////////
    TIMEFRAME (90 MINUTE, DEFAULT)
    
    iX90 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
    iKST90 = WILDERAVERAGE[9](iX90)
    
    iC90 = ((iKST90 > iKST90[1]) AND (OPEN > CLOSE) AND (iKST90 > 0))
    iV90 = ((iKST90 < iKST90[1]) AND (OPEN < CLOSE) AND (iKST90 < 0))
    
    //////////////////////////////////////////////////////////
    //TIMEFRAME (30 MINUTE, DEFAULT)
    //
    //iX25 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
    //iKST25 = WILDERAVERAGE[9](iX25)
    //
    //iC25 = ((iKST25 > iKST25[1]) AND (OPEN > CLOSE))
    //iV25 = ((iKST25 < iKST25[1]) AND (OPEN < CLOSE))
    
    //////////////////////////////////////////////////////////
    //TIMEFRAME (5 MINUTE, DEFAULT)
    //
    //iX5 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
    //iKST5 = WILDERAVERAGE[9](iX5)
    //
    //iC5 = ((iKST5 > iKST5[1]) AND (OPEN > CLOSE))
    //iV5 = ((iKST5 < iKST5[1]) AND (OPEN > CLOSE))
    
    //////////////////////////////////////////////////////////
    TIMEFRAME (DEFAULT)
    
    IF (iC90)  AND (iTIMENASDAQ) THEN
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    
    //IF LONGONMARKET AND (iSC) THEN
    //SELL AT MARKET
    //ENDIF
    
    IF (iV90) AND (iTIMENASDAQ) THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF
    
    //IF SHORTONMARKET AND (iSV) THEN
    //EXITSHORT AT MARKET
    //ENDIF
    
    
    
    SET STOP PLOSS 20
    SET TARGET PPROFIT 0.5
    #192508 quote
    phoentzs
    Participant
    Master

    Línea14:
    Timeframe(90minute, default)

    en
    Timeframe(90minute, updateonclose)

    cambiar.

    thanked this post
    #192510 quote
    deletedaccount22102025
    Participant
    New

    Nada. Tampoco. Lo habéis probado vosotros esto?. Porque no cumple. Los datos que devuelve la estrategia no tiene nada que ver.

    #192513 quote
    robertogozzi
    Moderator
    Master

    Dime una vela, hora y día, en la que hizo una operación incorrecta. También dime en qué herramienta lo usas.

    #192535 quote
    deletedaccount22102025
    Participant
    New

    Como te decía anteriormente ya es que ni usando sólo un TIMEFRAME. Usamos como prueba lo siguiente en NASDAQ y TIMEFRAME DEFAULT (10seg). No lo cumple por ejemplo las barras siguientes….desde el miércoles 27/04/2022 a las 17:30 hasta las 17:45 el mismo día.

    //CIRONET TRADING PROJECT | proorder
    
    DEFPARAM CUMULATEORDERS = FALSE
    
    iTIMENASDAQ = TIME >= 154000 AND TIME <= 215000
    
    iP1 = 10
    iP2 = 15
    iP3 = 20
    iP4 = 25
    
    
    //////////////////////////////////////////////////////////
    TIMEFRAME (90 MINUTE, DEFAULT)
    
    iX90 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
    iKST90 = WILDERAVERAGE[9](iX90)
    
    iC90 = ((iKST90 > iKST90[1]) AND (OPEN > CLOSE) AND (iKST90 > 0))
    iV90 = ((iKST90 < iKST90[1]) AND (OPEN < CLOSE) AND (iKST90 < 0))
    
    //////////////////////////////////////////////////////////
    //TIMEFRAME (30 MINUTE, DEFAULT)
    //
    //iX25 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
    //iKST25 = WILDERAVERAGE[9](iX25)
    //
    //iC25 = ((iKST25 > iKST25[1]) AND (OPEN > CLOSE))
    //iV25 = ((iKST25 < iKST25[1]) AND (OPEN < CLOSE))
    
    //////////////////////////////////////////////////////////
    //TIMEFRAME (5 MINUTE, DEFAULT)
    //
    //iX5 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
    //iKST5 = WILDERAVERAGE[9](iX5)
    //
    //iC5 = ((iKST5 > iKST5[1]) AND (OPEN > CLOSE))
    //iV5 = ((iKST5 < iKST5[1]) AND (OPEN > CLOSE))
    
    //////////////////////////////////////////////////////////
    TIMEFRAME (DEFAULT)
    
    IF (iC90)  AND (iTIMENASDAQ) THEN
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    
    //IF LONGONMARKET AND (iSC) THEN
    //SELL AT MARKET
    //ENDIF
    
    IF (iV90) AND (iTIMENASDAQ) THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF
    
    //IF SHORTONMARKET AND (iSV) THEN
    //EXITSHORT AT MARKET
    //ENDIF
    
    
    
    SET STOP PLOSS 20
    SET TARGET PPROFIT 0.5
    #192616 quote
    deletedaccount22102025
    Participant
    New

    Realizó alguien la prueba?. Gracias por adelantado.

    #192629 quote
    robertogozzi
    Moderator
    Master

    Lamentablemente hoy no puedo ver las barras del 27 de abril, porque son más de 200K.

    ¿Qué quiere decir con la frase “No lo cumple por ejemplo las barras siguientes“?  ¿Qué hay de malo con las barras?

    #192652 quote
    deletedaccount22102025
    Participant
    New

    Hola Roberto. Gracias por tu tiempo. Quiero decir con eso que los resultados que lanza la estrategia no tienen nada que ver con las condiciones a cumplir en la misma.

    #192682 quote
    robertogozzi
    Moderator
    Master

    En la foto adjunta se puede ver que los valores NARANJA son los de la vela que abrió (e inmediatamente cerró) una operación correctamente en la siguiente barra.
    Si vas a ver el valor de iKST90 en la barra anterior, verás que ahora es más bajo, así que ingresa CORTO.
    Agrega estas líneas al final del código para que puedas comprobarlo por ti mismo:

    graph iKST90 coloured(0,128,0,155)
    graph IV90   coloured(255,0,0,255)
    graph IC90   coloured(0,0,255,255)
    thanked this post
Viewing 15 posts - 1 through 15 (of 15 total)
  • You must be logged in to reply to this topic.

Cuántos TIMEFRAME en PROORDER


ProOrder: Trading Automático y Backtesting

New Reply
Summary

This topic contains 14 replies,
has 3 voices, and was last updated by robertogozzi
3 years, 10 months ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 04/30/2022
Status: Active
Attachments: No files
Logo Logo
Loading...