Aucune prise de position sur backtests

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #182796 quote
    maxlys
    Participant
    Senior

    Bonjour a tous,

     

    Ci dessous un programme que j’essaye de créer suivant la stratégie suivante ( que j’aimerais retravailler suivant différents paramètres mais a la main c’est long 😉 ). Pourriez vous y jeter un oeil et le controler, car j’ai des doutes sur la syntaxe et de plus ça me ressort aucune pris de position. (pourtant il devrai y en avoir) Merci pour votre aide

    Les conditions de prise de position à l’achat ( en DAILY)

    • Que le RSI 4 periodes soit en dessous de 28
    • Que le prix soit au dessus de MM100
    • Que le prix soit au dessus de MM300
    • Que la MM300 soit croissante sur les 10 derniers jours minimum
    • Prise de position juste avant fermeture de 17h30 (pour l’europe) si toutes les conditions sont OK ( j’ai mis // devant close pour éviter que ce soit en cloture de bougie)
    • Jours possibles de prise de positions Lundi, Mardi,Mercredi,jeudi,vendredi

     

    Sortie de position

    • RSI est au dessus de 80

    Stop

    • a 6%

     

    Le code :

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
    DEFPARAM FLATBEFORE = 093000
    // Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
    DEFPARAM FLATAFTER = 171500
    
    
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Conditions pour ouvrir une position acheteuse
    indicator1 = RSI[4]//(close)
    c1 = (indicator1 < 28)
    indicator2 = Average[100]//(close)
    c2 = (close > indicator2)
    indicator3 = Average[300]//(close)
    c3 = (close > indicator3)
    
    ma = average[300]
    c4 = summation[10](ma>ma[1]) = 10
    
    IF (c1 AND c2 AND c3 AND c4) AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // Stops et objectifs
    
    SET TARGET pPROFIT RSI[4]>80
    SET STOP %LOSS 6
    #182813 quote
    JC_Bywan
    Moderator
    Master

    Bonjour,

    Pas de prise de position est insuffisant pour déduire qu’il y a un problème, ça peut être que les conditions ne sont pas rencontrées sans qu’il y ait de bug… Il faut partir d’un exemple de position qui aurait dû être prise mais ne l’a pas été, pour qu’autrui reproduise le problème, et fournir les détails: quel actif avec quel broker dans quel timeframe sur quelle bougie?

    La commande “graph” (et tant qu’on y est mentionnons “graphonprice” si on veut visualiser dans la fenêtre du prix plutôt qu’en fenêtre séparée) permet de débugguer afin de visualiser toutes les conditions individuellement:

    GRAPH

    GRAPHONPRICE

    De là l’utilisateur peut voir si une des conditions c1,c2,c3,c4, not daysforbiddenentry reste à faux de façon inattendue, empêchant la prise de positions (et potentiellement en déduire les modifications éventuelles à apporter au code, ou moins fréquemment mais à ne pas exclure quand on a fait le tour de tout le reste, s’il y a un éventuel souci plateforme)

    #182821 quote
    maxlys
    Participant
    Senior

    Bonjour

    Merci pour votre retour.

     

    Test en UT jour, sur CFD CAC 40 chez IG (France 40)

    Voir IMAGE 1, sur laquelle j’ai identifié 2 exemples de positions valables entrée fleche verte et sortie fleche rouge

     

    Sur Image 2, synthese d’un test sur plus de 10 ans : pas de position

     

    Ci dessous le code modifié en ajoutant la fonction graph. ( si c’est bien comme cela qu’il faut procéder)

    Là je ressort une droite rouge avec 2 pics ( image 3 )

     

    pour la sortie de position quand RSI > 80 j’ai aussi repris le code que vous m’avez indiqué dans un precedent post

     

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
     
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
    DEFPARAM FLATBEFORE = 093000
    // Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
    DEFPARAM FLATAFTER = 171500
     
     
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
     
    // Conditions pour ouvrir une position acheteuse
    indicator1 = RSI[4]//(close)
    c1 = (indicator1 < 28)
    indicator2 = Average[100]//(close)
    c2 = (close > indicator2)
    indicator3 = Average[300]//(close)
    c3 = (close > indicator3)
     
    ma = average[300]
    c4 = summation[10](ma>ma[1]) = 10
     
    IF (c1 AND c2 AND c3 AND c4) AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
     
    // Stops et objectifs
     
    //SET TARGET pPROFIT RSI[4]>80
    if longonmarket and rsi[4](close)>80 then
    sell at market
    endif
    
    SET STOP %LOSS 6
    
    GRAPH c1 and c2 and c3 and c4  and daysForbiddenEntry coloured(255,0,0) AS "RSI 4"

     

     

    Ensuite j’ai ajouté en fin de code les instructions graphonprice ci dessous, mais aucune changement / affichage

     

    graphonprice c1 coloured(200,200,0) as "C1"
    graphonprice c2 coloured(0,200,0) as "C2"
    graphonprice c3 coloured(0,200,200) as "C3"
    graphonprice c4 coloured(0,255,0) as "C4"
    graphonprice daysForbiddenEntry coloured(255,0,0) as "D"

     

    J’ai testé sans mettre les horaires de trade dans le code et là ça prend des positions qui se rapproche des exemples ( flèche bleue et croix orange = résultat du backtest)

    Voir IMAGE 4

     

    Merci pour votre aide

    IMAGE-1.png IMAGE-1.png image2.png image2.png image3.png image3.png image4.png image4.png
    #182826 quote
    fifi743
    Participant
    Master

    bonsoir,

    tu enleve les deux flat en haut.

    et la condition C4

    c4 = summation[10](ma>ma[1])

    Capture-decran-4531.png Capture-decran-4531.png
Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

Aucune prise de position sur backtests


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
maxlys @maxlys Participant
Summary

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

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 12/03/2021
Status: Active
Attachments: 5 files
Logo Logo
Loading...