ESTRATEGIA SIN LA ORDEN “QUIT”

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #183561 quote
    Albert0769
    Participant
    Average

    Buenas tardes a todos:

     

    He desarrollado esta sencilla estrategia, que si la probáis con el DOW JONES da bastantes buenos resultados positivos.

    A ver si me podéis ayudar a mejorarla un poco, programando correctamente la salida de un “trade” sin utilizar la orden QUIT, sino que el sistema cierre (y no pare la estrategia) automáticamente todas las operaciones, cuando el beneficio de un “trade” sea superior a 200 puntos.

    Aquí os dejo el código para que lo probéis y lo podáis mejorar.

     

    GRACIAS

    DEFPARAM PRELOADBARS = 10000
    DEFPARAM CUMULATEORDERS = FALSE
    
    Period = 71
    inner = 2*weightedaverage[round(Period/2)](CLOSE)-weightedaverage[Period](CLOSE)
     
    MMH = weightedaverage[round(sqrt(Period))](inner)
    
    V = 431
    IF CLOSE[0] = CLOSE[V] AND MMH[0] > MMH[V]  THEN
    BUY AT MARKET
    ENDIF
    
    IF CLOSE[0] = CLOSE[V] AND MMH[0] < MMH[V]  THEN
    SELLSHORT AT MARKET
    ENDIF
    
    /////////////////////////////////////////////////////////
    
    TempProfit = PositionPerf * PositionPrice / PipSize * Pipvalue
    PROFI = StrategyProfit + TempProfit
    
    IF PROFI >= 200  THEN
    SET TARGET pPROFIT 200
    ENDIF
    
    //IF PROFI <= -200  THEN
    //QUIT
    //ENDIF
    
    /////////////////////
    
    //// Stops y objetivos:
    
    SET STOP pLOSS 200
    ////SET TARGET pPROFIT 200
    
    #183562 quote
    robertogozzi
    Moderator
    Master

    Esto funcionará:

    DEFPARAM PRELOADBARS = 10000
    DEFPARAM CUMULATEORDERS = FALSE
     
    Period = 71
    inner = 2*weightedaverage[round(Period/2)](CLOSE)-weightedaverage[Period](CLOSE)
     
    MMH = weightedaverage[round(sqrt(Period))](inner)
     
    V = 431
    IF CLOSE[0] = CLOSE[V] AND MMH[0] > MMH[V]  THEN
       BUY AT MARKET
    ENDIF
     
    IF CLOSE[0] = CLOSE[V] AND MMH[0] < MMH[V]  THEN
       SELLSHORT AT MARKET
    ENDIF
     
    /////////////////////////////////////////////////////////
     
    //TempProfit = PositionPerf * PositionPrice / PipSize * Pipvalue
    //PROFI = StrategyProfit + TempProfit
     
    //IF PROFI >= 200  THEN
    SET TARGET pPROFIT 200
    //ENDIF
     
    //IF PROFI <= -200  THEN
    //QUIT
    //ENDIF
     
    /////////////////////
     
    //// Stops y objetivos:
     
    SET STOP pLOSS 200
    ////SET TARGET pPROFIT 200

    Sin embargo, las líneas 10 y 14 parecen tener condiciones muy estrictas, ya que comprobar que el CLOSE actual es igual a algunos períodos atrás es extremadamente raro.

    #183609 quote
    Albert0769
    Participant
    Average

    Buenos días Roberto:

     

    Gracias por responder tan rápido. Si pruebas esta estrategia con el DOW JONES en el “time frame” 1 min. Verás que cuando haces un Backtest con 100.000 barras (3 meses más o menos), el grafico de liquidez es siempre ascendente, con una ganancia global del 60% aprox.

    A mí lo que me gustaría conseguir es, que dentro de la misma estrategia, que puede durar 3 meses o más perfectamente, las operaciones que se vayan ejecutando tengan una ganancia/pérdida total de 200 puntos (sumando los diferentes trades que se puedan abrir en la misma operación).

    Utilizando solo el “SET TARGET PPROFIT 200”, por ejemplo, solo consigues un beneficio de 200 puntos sobre el ultimo “Trade”, pero si en el “trade” anterior has tenido una pérdida de 90 puntos, por ejemplo, la ganancia de esa operación en concreto solo será de 110 puntos.

    Utilizando una combinación correcta del “Strategyprofit”, creo que se podría conseguir que la suma total de esa operación fuera de 200 puntos en total y sin tener que cerrar la estrategia con la orden QUIT. Es decir que permaneciera en espera hasta la próxima operación, en que volvieran a coincidir los dos “CLOSE” e iniciáramos otra nueva operación de 200 puntos totales de ganancias o pérdidas.

    Yo no tengo tantos conocimientos de programación, pero creo que utilizando órdenes tipo “ONCE” u ordenes bucle tipo “FOR” se puede llegar a conseguir esta idea que estoy proponiendo para todo el Foro.

     

    Gracias por responder y Un Saludo,

    ALBERT

    #183614 quote
    robertogozzi
    Moderator
    Master

    ¿Quiere poner fin a la estrategia cuando alcance una ganancia total de 200 puntos? Si es así, ¿tiene que salir con QUIT o cómo desea reiniciarlo?

    #183621 quote
    Albert0769
    Participant
    Average

    Buenos días Roberto:

    Esa era mi consulta, si el sistema se podía ir reiniciando cada 200 puntos sin necesidad de tener que detenerlo por completo con la instrucción “QUIT”.

    Crees que puede haber alguna manera de poder conseguirlo, utilizando instrucciones más complejas?????

     

    Gracias de nuevo y Un Saludo,

    ALBERT

    #183622 quote
    robertogozzi
    Moderator
    Master

    Cuando alcances 200 puntos en total, querrás detenerlo. Está bien, se puede hacer. Para que se reanude, puede esperar N barras, o N días, o N señales de entrada (sin entrar), o después de una gran caída del precio o una gran subida. Solo tiene que decidir qué solución le conviene más.

    #183626 quote
    TempusFugit
    Participant
    Veteran

    Hola Albert,

    interesante idea para un sistema. Lo he probado en 1M de velas y como puedes ver en la imagen adjunta el resultado no es tan bueno antes de estos últimos meses, precaución porque puede haber algo de sobreoptimización para esos meses

    Buena caza!

    1.jpg 1.jpg
    #183635 quote
    Albert0769
    Participant
    Average

    Disculpa Tempus, con la plataforma de que broker has probado el sistema???.

    Ya me dirás.

     

    Un Saludo,

    ALBERT

    #183661 quote
    TempusFugit
    Participant
    Veteran

    Yo trabajo con IG, la plataforma es PRT claro, sino no estaría en esta web;)

    #184469 quote
    Albert0769
    Participant
    Average

    Buenas noches Tempus:

     

    Gracias por tus respuestas y colaboración. Yo también estoy con IG, y te quería preguntar como haces para poder hacer Backtest de 1 Millón de barras en el time frame 1 minuto, yo he intentando todas las combinaciones posibles y solo consigo cargar 100.000  barras en el time frame 1 minuto.

    ¿¿¿¿¿¿Quizás es que utilizas otra versión o alguna configuración especial??????

    Si por favor me puedes explicar cómo haces para cargar 1 Millón de barras, me harías un gran favor, para poder probar mis estrategias con periodos más largos, que siempre puedes tener mejor visión de las estrategias.

     

    Muchas Gracias de antemano por tu ayuda.

     

    Un Saludo,

    ALBERT

    #184532 quote
    TempusFugit
    Participant
    Veteran

    Hola Albert,

    Lo de poder ver 1 millon de velas creo que es por tener la cuenta premium, puedes ver si la tienes en la esquina izquierda de la barra de menús como aparece en la imagen adjunta. Para tener ese tipo de cuenta creo lo solicité a PRT por correo pero fue hace ya varios años y no estoy seguro

    https://trading.prorealtime.com/en/brokerage/cfd-forex-trading.

    En este enlace (se pueden poner enlaces externos??) creo que podías solicitar una cuenta premium directamente con IG, o una “IG account sponsored by PRT” como parece que la llaman también.

    Si ya tienes una cuenta abierta con IG y quieres convertirla a Premium yo preguntaría tanto a IG como a PRT por ello, aunque creo que fue a PRT a quién se lo solicité  no lo recuerdo seguro.

    Buena suerte y espero que te haya ayudado algo

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

ESTRATEGIA SIN LA ORDEN “QUIT”


ProOrder: Trading Automático y Backtesting

New Reply
Author
author-avatar
Albert0769 @albert0769 Participant
Summary

This topic contains 10 replies,
has 3 voices, and was last updated by TempusFugit
4 years, 2 months ago.

Topic Details
Forum: ProOrder: Trading Automático y Backtesting
Language: Spanish
Started: 12/18/2021
Status: Active
Attachments: 2 files
Logo Logo
Loading...