Backtest stratégie passive cumul achat le 1er de chaque mois

Forums ProRealTime forum Français Support ProOrder Backtest stratégie passive cumul achat le 1er de chaque mois

Tagged: , ,

Viewing 8 posts - 1 through 8 (of 8 total)
  • #83652

    Bonjour,

    Je voudrais faire un backtest d’une stratégie sur un tracker S&P500 qui consiste simplement à acheter €.1 000 tous les 1ers de chaque mois. C’est le seul critère d’achat. Je ne parviens pas à traduire cette notion de “timing” en code PRT.
    If today = 1er jour du mois then
    Buy 1000 cash at market.

    Merci d’avance pour votre aide précieuse.

     

    [Edit par modérateur: sujet déplacé du forum pro-builder (indicateurs, code se terminant par “return”, pas de mot-clé buy/sell possible) au forum pro-order (backtests et stratégies)]

    #83782

    Tout simplement avec l’instruction DAY:

    Bien sûr il est possible que le 1er du mois tombe un week-end, dans ce cas de figure, il faudrait adapter le code.

    #83786

    Merci beaucoup. Effectivement, ça marche presque mais certains mois, je n’ai pas d’ordre passé car le 1er jour du mois tombe un week-end.

    Il faudrait peut-être inclure la fonction dayofweek qui permet de tester si on est un jour de weeek end ?.

    Mais mon code ne fonctionne pas :

    DEFPARAM CumulateOrders = true

    IF DAY = 1 and (dayofweek = 1 or dayofweek = 2 or dayofweek = 3 or dayofweek = 4 or dayofweek = 5) THEN
    BUY 1000 CASH AT MARKET
    ELSIF DAY = 1 and (dayofweek <> 1 or dayofweek <> 2 or dayofweek <> 3 or dayofweek <> 4 or dayofweek <> 5) THEN
    BUY 1000 CASH (DES que POSSIBLE)

    ENDIF

    Auriez-vous une idée ?

    #83798

    Peut-être plus simple tester si un ordre a été passé le mois courant au début des 5 premiers jours du mois:

     

    #83800

    Excellent Merci Nicolas. Cela fonctionne déjà bien.

    Finalement, une bonne gestion passive d’accumulation mensuelle sur un tracker donne déjà un résultat assez intéressant.

    Ce qui serait encore mieux c’est de rester à l’écart pendant les phases de baisse (par exemple lorsque MM50(close) < MM200(close)) et d’accumuler pendant ce temps les €.1 000 d’épargne par mois dans un “compteur”. Au lieu de miser €.1 000 chaque mois, on pourrait désigner un compteur qui serait le “capital disponible” et qui s’incrémenterait de €.1 000 chaque mois pendant lesquels que la MM50 est en dessous de la MM200 et dès que MM50 repasse au dessus de la MM200, on investi le “paquet disponible”. Peut-on rendre les €.1 000 fixes dans “buy 1000 cash at market” par un montant variable qui serait le capital disponible ?

    DEFPARAM CumulateOrders = true // Cumul des positions désactivé

    // Conditions pour ouvrir une position acheteuse
    C1 = average[50](close) > average[200](close)
    if active <> openmonth and day < 5 and C1 then
    buy Capital cash at market
    active = openmonth

    endif

    Merci encore.

    #83802

    une bonne gestion passive d’accumulation mensuelle sur un tracker donne déjà un résultat assez intéressant.

    Bien sûr que oui 🙂 et même sans accumulation.

    Merci d’utiliser le bouton adéquate pour poster du code dans le forum.

    Pour le calcul à investir, je pense que tu devrais y arriver mieux que moi ! Ou alors, il faudrait pousser un peu plus l’explication, car j’ai un peu de mal à te suivre…

    #83809

    C’est pas facile à expliquer par mail…En fait, imaginons qu’on puisse mettre €.1 000 d’épargne sur le tracker CAC 40 tous les mois. Je voulais backtester s’il valait mieux mettre ces €.1 000 tous les mois de manière automatique les yeux fermé (même en cas de forte correction pendant le krack de 2008 /2009 et donc moyenner à la baisse sa position) ou s’il valait mieux attendre, laisser passer la baisse (rester à l’écart tant que MM50 <MM200 par exemple), épargner tous les mois les €.1 000 sans les placer sur le tracker et attendre que MM50 repasse au dessus de MM20 pour placer d’un seul coup l’épargne accumulée pendant toute la phase baissière (soit €.1 000 mensuels x le nombre de mois de baisse depuis que MM50 est passée sous MM200). Sauf que je ne sais pas comment faire un compteur qui compte le nombre de mois de baisse entre le moment où MM50 a croisé à la baisse MM200 et le moment où MM50 est repassé au dessus de MM200…

    #85380

    Salut,

    Moi j’avais fait ça pour tester une stratégie d’accumulation sur le BX4. On achète 1000€ chaque mois où le cours est supérieur à la MM 60 avec un maximum de 33 positions prises. Target profit 20%.

    J’aurais voulu tester aussi en achetant le lundi pour vendre le vendredi mais pour le moment j’ai pas réussi. Si quelqu’un a une idée…

     

Viewing 8 posts - 1 through 8 (of 8 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login