ESTRATEGIA DE 3 BARRAS

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

    Hola a todos,

    llevo tiempo usando esta estrategia de forma manual y es muy rentable. Me gustaría trasladar esta estrategia a un sistema Proorder pero no logro hacerlo.

    Les adjunto un indicador que uso para esta estrategia de forma manual, aunque le falta otra opción para cerrar la operación (ya que tampoco sabía como hacerlo) y es que si la operación no cierra en la misma barra, que cierre en la próxima que cumpla las condiciones de cierre.

    //CIRONET TRADING 3B | indicator
    
    ////////////////////////////////////////////////////////////////////////////////// INDICATORS
    
    iMH = AVERAGE[3](HIGH)
    iML = AVERAGE[3](LOW)
    
    ////////////////////////////////////////////////////////////////////////////////// CONDITIONS
    
    C1 = ((iMH > iMH[1]) AND (iML > iML[1]))
    C2 = (LOW <= iML)
    C3 = (CLOSE > OPEN)
    
    V1 = ((iMH < iMH[1]) AND (iML < iML[1]))
    V2 = (HIGH >= iMH)
    V3 = (CLOSE < OPEN)
    
    ////////////////////////////////////////////////////////////////////////////////// LONG SIGNAL
    
    IF (C1 AND C2 AND C3) THEN
    DRAWARROWUP(BARINDEX,LOW-4) COLOURED(38,198,218)
    ENDIF
    
    ////////////////////////////////////////////////////////////// CLOSE LONG SIGNAL
    
    SC = (HIGH >= iMH)
    
    IF (C1 AND C2 AND C3) AND SC THEN
    DRAWTEXT("CLOSE",BARINDEX,HIGH+4) COLOURED(38,198,218)
    ENDIF
    
    ////////////////////////////////////////////////////////////////////////////////// SHORT SIGNAL
    
    IF (V1 AND V2 AND V3) THEN
    DRAWARROWDOWN(BARINDEX,HIGH+4) COLOURED(233,30,99)
    ENDIF
    
    ////////////////////////////////////////////////////////////// CLOSE LONG SIGNAL
    
    SV = (LOW <= iML)
    
    IF (V1 AND V2 AND V3) AND SV THEN
    DRAWTEXT("CLOSE",BARINDEX,LOW-4) COLOURED(233,30,99)
    ENDIF
    RETURN
    
    ESTRATEGIA-3-BARRAS.png ESTRATEGIA-3-BARRAS.png
    #188617 quote
    robertogozzi
    Moderator
    Master

    El indicador indica una FLECHA y CERRAR en la misma barra. ¿Cuándo debe entrar? ¿Cuándo debería salir?

    #188620 quote
    deletedaccount22102025
    Participant
    New

    Hola Roberto, gracias por responder.

    #CONDICIÓN DE COMPRA:

    • AMBAS MEDIAS ASCENDENTES
    • PRECIO TOQUE LA MEDIA INFERIOR

    #CONDICIÓN DE SALIDA COMPRA:

    • PRECIO TOQUE LA MEDIA SUPERIOR

    #CONDICIÓN DE VENTA:

    • AMBAS MEDIA DESCENDENTES
    • PRECIO TOQUE LA MEDIA SUPERIOR

    #CONDICIÓN DE SALIDA VENTA:

    • PRECIO TOQUE LA MEDIA INFERIOR
    #188702 quote
    robertogozzi
    Moderator
    Master

    Eso es todo, no hay necesidad del indicador, codifiqué los dos promedios directamente en la estrategia:

    iMH   = AVERAGE[3](HIGH)
    iML   = AVERAGE[3](LOW)
    L1    = iMH > iMH[1]
    S1    = iMH < iMH[1]
    L2    = low <=  iML
    S2    = high >= iMH
    CondL = L1 AND L2 AND Not LongOnMarket
    CondS = S1 AND S2 AND Not ShortOnMarket
    IF CondL THEN
       BUY 1 CONTRACT AT Market
    ELSIF CondS THEN
       SELLSHORT 1 CONTRACT AT Market
    ENDIF
    #188703 quote
    deletedaccount22102025
    Participant
    New

    Hola Roberto, gracias de nuevo por tu tiempo. Pensaba que ibas a aportar un código basado en los puntos anteriores para que se ejecute en la misma vela tal y como hace el indicador, aplicando algo de TIMEFRAME o lo que sea, ya que como sabemos en PRT no se ejecuta la estrategia hasta que se cierra la vela actual.

    Yo lo que necesito es que se ejecute en la misma vela (IGUAL QUE EL INDICADOR) , con mis conocimientos de matemáticas y PRT no logro llega a ello.

    Gracias de todos modos

    #188737 quote
    robertogozzi
    Moderator
    Master

    Bien, entonces tienes que usar esta versión del indicador:

    //CIRONET TRADING 3B | indicator
     
    ////////////////////////////////////////////////////////////////////////////////// INDICATORS
     
    iMH = AVERAGE[3](HIGH)
    iML = AVERAGE[3](LOW)
     
    ////////////////////////////////////////////////////////////////////////////////// CONDITIONS
     
    C1 = ((iMH > iMH[1]) AND (iML > iML[1]))
    C2 = (LOW <= iML)
    C3 = (CLOSE > OPEN)
     
    V1 = ((iMH < iMH[1]) AND (iML < iML[1]))
    V2 = (HIGH >= iMH)
    V3 = (CLOSE < OPEN)
     
    ////////////////////////////////////////////////////////////////////////////////// LONG SIGNAL
    Signal = 0
    IF (C1 AND C2 AND C3) THEN
    DRAWARROWUP(BARINDEX,LOW-4) COLOURED(38,198,218)
    Signal = 1
    ENDIF
     
    ////////////////////////////////////////////////////////////// CLOSE LONG SIGNAL
     
    SC = (HIGH >= iMH)
     
    IF (C1 AND C2 AND C3) AND SC THEN
    DRAWTEXT("CLOSE",BARINDEX,HIGH+4) COLOURED(38,198,218)
    ENDIF
     
    ////////////////////////////////////////////////////////////////////////////////// SHORT SIGNAL
     
    IF (V1 AND V2 AND V3) THEN
    DRAWARROWDOWN(BARINDEX,HIGH+4) COLOURED(233,30,99)
    Signal = -1
    ENDIF
     
    ////////////////////////////////////////////////////////////// CLOSE LONG SIGNAL
     
    SV = (LOW <= iML)
     
    IF (V1 AND V2 AND V3) AND SV THEN
    DRAWTEXT("CLOSE",BARINDEX,LOW-4) COLOURED(233,30,99)
    ENDIF
    RETURN Signal AS "Signal"

    Entonces tienes que usar esta estrategia que lo invoca:

    mySignal = CALL "CIRONET TRADING 3B"
    CondL = (mySignal = 1)  AND Not LongOnMarket
    CondS = (mySignal = -1) AND Not ShortOnMarket
    IF CondL THEN
       BUY 1 CONTRACT AT Market
    ELSIF CondS THEN
       SELLSHORT 1 CONTRACT AT Market
    ENDIF
    CIRONET-TRADING-3B.itf
    #188952 quote
    deletedaccount22102025
    Participant
    New

    Hola Roberto de nuevo, te agradezco mucho tu interés y tu tiempo.

    Eso que indicas lo sé hacer. Lo que no sé es cómo utilizando Multitimeframe u otra herramienta,se puede hacer que se ejecute la orden en la misma barra, ya que como sabemos en PRT no se puede hacer eso puesto que las órdenes se ejecutan a vela cerrada. No sé si me explico correctamente para transmitirte lo que quiero hacer.

    Muchas gracias de nuevo Roberto.

    #188954 quote
    robertogozzi
    Moderator
    Master

    Debe utilizar el soporte MTF (Multiple Time Frame), que le permite utilizar, además del marco de tiempo elegido para las condiciones, otro marco de tiempo más pequeño.

    Si busca la palabra MTF en este foro, encontrará artículos, información y ejemplos al respecto.

    Este es un ejemplo que usa el marco de tiempo de 1 hora para el indicador y un marco de tiempo más corto, el cual tienes que elegir y debe ser el que está en el gráfico, puedes usar 10 segundos, o 1 minuto o 5 minutos:

    Timeframe(1h,default)
    mySignal = CALL "CIRONET TRADING 3B"
    //
    Timeframe(default)
    CondL = (mySignal = 1)  AND Not LongOnMarket
    CondS = (mySignal = -1) AND Not ShortOnMarket
    IF CondL THEN
       BUY 1 CONTRACT AT Market
    ELSIF CondS THEN
       SELLSHORT 1 CONTRACT AT Market
    ENDIF
    #188961 quote
    deletedaccount22102025
    Participant
    New

    Muchas gracias por el aporte Roberto.

    Un saludo

    #189339 quote
    deletedaccount22102025
    Participant
    New

    Hola Roberto de nuevo.

    Siento las molestias pero le he dado mil vueltas y no logro que se cumpla lo que fija el indicador en un sistema ProOrder. Estoy intentando que se cumpla en un marco de tiempo de 1 hora.  He hecho la prueba haciendo un Screener con el mismo indicador y funciona pero usando instrucciones MTF en PorOrder nada.

    Gracias

    #189341 quote
    robertogozzi
    Moderator
    Master

    Publica el screener.

    thanked this post
    #189345 quote
    deletedaccount22102025
    Participant
    New

    //CIRONET 3B | screener

    iMH = AVERAGE[3](HIGH)
    iML = AVERAGE[3](LOW)

    iC = (((iMH > iMH[1]) AND (iML > iML[1])) AND (CLOSE CROSSES UNDER iML))
    iV = (((iMH < iMH[1]) AND (iML < iML[1])) AND (CLOSE CROSSES OVER iMH))

    SCREENER [iC OR iV] (VARIATION AS “% Prev bar”)

    #189346 quote
    deletedaccount22102025
    Participant
    New
    //CIRONET 3B | screener
    
    
    iMH = AVERAGE[3](HIGH)
    iML = AVERAGE[3](LOW)
    
    iC = (((iMH > iMH[1]) AND (iML > iML[1])) AND (CLOSE CROSSES UNDER iML))
    iV = (((iMH < iMH[1]) AND (iML < iML[1])) AND (CLOSE CROSSES OVER iMH))
    
    SCREENER [iC OR iV] (VARIATION AS "% Prev bar")
    
    #189350 quote
    robertogozzi
    Moderator
    Master

    Entonces no uses el indicador:

    Timeframe(1h,default)
    //mySignal = CALL "CIRONET TRADING 3B"
    //
    //CIRONET 3B | screener
    iMH = AVERAGE[3](HIGH)
    iML = AVERAGE[3](LOW)
    iC = (((iMH > iMH[1]) AND (iML > iML[1])) AND (CLOSE CROSSES UNDER iML))
    iV = (((iMH < iMH[1]) AND (iML < iML[1])) AND (CLOSE CROSSES OVER iMH))
    //SCREENER [iC OR iV] (VARIATION AS "% Prev bar")
    //
    Timeframe(default)
    CondL = iC AND Not LongOnMarket
    CondS = iV AND Not ShortOnMarket
    IF CondL THEN
       BUY 1 CONTRACT AT Market
    ELSIF CondS THEN
       SELLSHORT 1 CONTRACT AT Market
    ENDIF
    #189356 quote
    deletedaccount22102025
    Participant
    New

    Gracias Roberto. Podrías comprobar lo siguiente?…..algo falla porque tampoco me cumple lo que le indico.

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

ESTRATEGIA DE 3 BARRAS


ProOrder: Trading Automático y Backtesting

New Reply
Summary

This topic contains 20 replies,
has 2 voices, and was last updated by deletedaccount22102025
4 years ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 02/20/2022
Status: Active
Attachments: 2 files
Logo Logo
Loading...