En qué instante se valoran las condiciones??

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #45665 quote
    SergioMalaga
    Participant
    Junior

    Buenas noches a todos.

    Es mi primer mensaje después de casi un año ya, probando y probando en backtest. Por fin, anoche puse mi primer código automático para real y ha sido un poco decepcionante porque se ha abierto una posición que jamás hubiese entrado en backtest. De hecho, no ha entrado en Backtest pero sí en tiempo real. Entonces….

    Mi pregunta es….. Yo, en backtest, pensaba que a cada cierre de vela, justo en ese instante y antes de que se abra una nueva vela, se pasaba el código una vez y entonces ejecutaba lo que fuera si hay algo que ejecutar. Pero, un código tan sencillo me ha dado una orden incorrecta. La pregunta es… si no es al cierre, ¿en qué momento exacto se hace lectura del código?

    El código es simple… Imaginad que vende si RSI<50. Y ProReal me ha abierto la venta en una vela con RSI=54… .Error. Por tanto, y pregunto otra vez….. es posible que el desarrollo de la vela, si el RSI se pone por debajo de 50 en un momento concreto, se ejecute la venta? Aunque no se haya cerrado la vela?

    La verdad es que mi primera operación en real no debería haberse abierto y encima ha sido perdedora.

    Gracias por vuestra ayuda.

    #45677 quote
    Leonida1984
    Participant
    Average

    I don’t speak Spanish. I speak Italian and a little of English. However, if you share your code I think who I can help you. There might be a mistake.

    Have a good day!

    #45690 quote
    Nicolas
    Keymaster
    Master

    @Leonida1984

    Thanks a lot for your help, but since Sergio has posted into the Spanish forums, let us all speak Spanish, please. It helps keep me everything clear for everyone, thanks again 🙂


    @SergioMalaga

    Como ya sabes, los códigos sólo se leen una vez en la barra Close, así que si tu condición es RSI> 50, el RSI podría estar ya en 70. Pero esto es lo mismo en backtest o en tiempo real, por lo que para entender lo que podría ¿Podría compartir con nosotros su código? ¡Sería más fácil ayudar!

    #45719 quote
    Leonida1984
    Participant
    Average

    Me disculpo, voy a usar el traductor la próxima vez

    #45733 quote
    SergioMalaga
    Participant
    Junior
    Gracias a los dos. Nicola, lo gracioso es que mi condición era RSI<50 y la vela al cierre tiene RSI=70. De todas formas, repito que es un ejemplo lo del RSI. A continuación pongo el código y realmente el problema creo que fue en el “azul<0”. Al cierre de la vela, el azul estaba en 220.. no debió venderse. Pongo código para más facilidad… Gracias de nuevo por vuestra ayuda.
    Defparam CumulateOrders=false
    Defparam FLATAFTER = 210000
    Defparam FLATBEFORE = 080000
    
    ignored, ignored, azul, ignored, ignored = CALL "Blai5 Koncorde v.10"
    ignored, ignored, ignored, ignored, ignored, ignored ,sv, IGNORED = CALL "Blai5 VIGIA 10"
    ATR = AverageTrueRange[14](close)
    exp50 = ExponentialAverage[50](AverageTrueRange[14](close))
    
    trailingstart = 20
    trailingstep =1
    stoppuntos = 40
    puntosprofit = 100
    
    xClose = (Open+High+Low+Close)/4
    if(barindex>2) then
    xOpen = (xOpen[1] + xClose[1])/2
    endif
    
    //////////////////////////////    LARGOS    ////////////////////////////////
    c1 = xClose>xOpen AND xClose[1]<xOpen[1]// AND xClose[2]<xOpen[2]//la vela cambia de color
    VigiaSube = SV>SV[2] AND sv>sv[1]
    TendenciaAlza = Supertrend[3,10]<xclose
    EstocasticoNOSobrecomprado = Stochastic[14,3](close)<60
    SusCondicionesCompra= c1 AND TendenciaAlza and azul>0 AND VigiaSube AND atr>exp50 AND EstocasticoNOSobrecomprado
    
    IF NOT LongOnMarket AND SusCondicionesCompra THEN
    NEWSL=0
    BUY 1 CONTRACT AT MARKET
    SET TARGET PPROFIT puntosprofit
    ENDIF
    
    ////////////////////////////////    CORTOS    ////////////////////////////////
    c2 = xClose<xOpen AND xClose[1]>xOpen[1]
    VigiaBaja = Sv<sv[1] AND SV[1]<SV[2]
    TendenciaBajista = Supertrend[3,10]>xclose
    EstocasticoNOSobreVendido = Stochastic[14,3](close)>40
    SusCondicionesVenta= c2 AND TendenciaBajista and azul<0 AND VigiaBaja AND atr>exp50 AND EstocasticoNOSobreVendido
    
    IF NOT ShortOnMarket AND NOT LongOnMarket AND SusCondicionesVenta THEN
    NEWSL=0
    SELLSHORT 1 CONTRACT AT MARKET
    SET TARGET PPROFIT puntosprofit
    ENDIF
    
    //************************************************************************
    //reset the stoploss value
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
     
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
    newSL = tradeprice(1)+trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
    newSL = newSL+trailingstep*pipsize
    ENDIF
    IF tradeprice(1)-close>(stoppuntos*pipsize) then
    SELL AT MARKET
    ENDIF
    ENDIF
     
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
    newSL = tradeprice(1)-trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
    newSL = newSL-trailingstep*pipsize
    ENDIF
    IF OPEN-tradeprice(1)>(stoppuntos*pipsize) THEN
    EXITSHORT AT MARKET
    ENDIF
    ENDIF
     
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    
    
    Después inserto imagen de la operación con los indicadores.
    #45754 quote
    SergioMalaga
    Participant
    Junior
    Adjunto justo donde el sistema abrió la operación de venta. Claramente NO se cumple la condición de “Azul<0”.     Al cierre de la vela, el azul está en 143,85. Por qué abrió la posición?  No cumple una condición y están las condiciones anidadas en AND, por tanto en el momento que no se cumple lo del azul, las condiciones de venta son Falsas.
    Error.jpg Error.jpg
    #46089 quote
    Nicolas
    Keymaster
    Master
    No sé cuál es el código del indicador Koncorde, pero “azul” parece ser la primera variable devuelta, no la tercera, mira tu CALL en la línea 5.
    #46372 quote
    SergioMalaga
    Participant
    Junior
    Gracias por la respuesta Nicolas. La variable azul está correcta, lo que pasa es que da la casualidad que en la imagen aparece la primera porque es la que tiene el valor más alto de todas las variables, justo en ese momento, nada más. Todavía sigo esperando respuesta de IG, más de una semana ya. Saludos
    #76759 quote
    pp_playaflamenca
    Participant
    Junior
    Hola Sergio, hace mas de 1 año que escribiste tu pregunta y yo también soy  cliente de IG. Realmente cuando ejecuto los 3 o 4 sistemas automáticos que he diseñado yo mismo, tengo la sensación de que probacktest hace lo que le da la gana, en vez de lo que debería….me parece muy dudoso la conveniencia de usar estas herramientas que me parece andan un poco fueraa de control. Entoneces si estás ahí leyendo quisiera preguntarte si resolviste tu duda referente a la situación que comentas…..Cometió realmente proorden un error al ejecutar  en real?? (el error estaba quizás en el código?)…te dieron la gente de IG alguna explicación técnica que explicara la discordancia?.Muchas gracias compañero.
Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.

En qué instante se valoran las condiciones??


ProOrder: Trading Automático y Backtesting

New Reply
Author
Summary

This topic contains 8 replies,
has 4 voices, and was last updated by pp_playaflamenca
7 years, 7 months ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 09/06/2017
Status: Active
Attachments: 1 files
Logo Logo
Loading...