Problème compréhension stratégies de trading en Multi Time Frame

Viewing 15 posts - 1 through 15 (of 34 total)
  • Author
    Posts
  • #137870 quote
    imencity
    Participant
    Senior

    Bonjour,

    J’ai voulu tester le multit-timeframe sur faisons exotique, le DAX cash 1€ à 15 min.

    J’ai le sempiternelle message d’erreur indiquant quand je place un TIMEFRAME (5 minutes), même si c’est 1 min.
    Par contre si je le mets en 30 min aucun problème…

    J’ai téléphoné à IG mais la personne m’a semblé un peu perdu… elle me demandait de changer les unités de volume arf…

    J’ai testé la stratégie suivante dispo ici: https://www.prorealcode.com/blog/learning/approach-multi-timeframe-trading-prorealtime/

    defparam cumulateorders=false
    
    //5 minute TF (get the trend of the 5 minute chart)
    timeframe(5 minutes,updateonclose)
    MA20 = average[20]
    bulltrend = summation[3](MA20>MA20[1])=3
    
    //"default" timeframe (the timeframe you will launch the strategy on)
    timeframe(default)
    sto = Stochastic[14,3](close)
    avgsto = average[3](sto)
    buyc = sto crosses over avgsto and sto<20
    if buyc and bulltrend then
    buy at market
    endif
    
    set target pprofit 3
    set stop ploss 15

    Et j’ai le même message d’erreur “Toutes les unités de temps appelés dans le code…”

    J’ai testé sur mon compte démo IG et sur le compte live.

    Avez-vous une idée svp ?
    Merci par avance.

    #137873 quote
    Nicolas
    Keymaster
    Master

    Le timeframe “default” doit être le plus petit utilisé et celui sur lequel on lance la stratégie, hors si tu lances celle-ci sur un timeframe 15 minutes et tu cherches à avoir des données 5-minutes à l’intérieur du code, ça ne fonctionne pas.

    C’est pourtant bien ce qu’indique le message d’erreur pourtant ? 🙂

    Donc le cas présent, si je comprends bien ce que tu cherches à faire c’est utiliser le code qui se trouve sous l’instruction timeframe(default) en données 15-minutes ? Si oui, alors il faut remplacer “default” par “15 minutes” et lancer la stratégie dans l’UT la plus petite de ton code, soit le 5-minutes.

    Voir : Première approche sur le multi timeframe avec ProRealTime

    #137876 quote
    imencity
    Participant
    Senior

    Donc si je comprends bien, il est impossible:

    D’être en mode par défaut à 15 min,
    De lancer le script en 15 min,
    et de regarder en 5 min ce qui se passe afin de vendre avant la mise en place de la bougie 15 min suivante en cas de perte par ex.

    HUM…..
    Je commande à comprendre en écrivant.
    Je dois me placer par ex en TIMFRAME 5 MIN. Lancer tout mon code par défaut en TIMEFRAME 15 min, et là ou j’en ai besoin, passer en mode 5 MIN.
    Et si j’avais des besoins en TIMEFRAME 1 MIN, de vrais par défaut être en 1 MIN, lancer tout le code en 15 MIN, puis là ou j’ai besoin conserver des multiples.

    ai-je bon ? Car j’avais déjà vu la page première approche mais comme je suis débutant c’est un peu abscons pour moi j’avoue.

    Merci par avance.

    #137880 quote
    Nicolas
    Keymaster
    Master

    Non pas bon du tout 🙂

    Le timeframe “default” c’est à la fois le plus petit et aussi celui sur lequel on lancera la stratégie, donc tout ce qui se trouvera coder en dessus utilisera ce timeframe.

    Parce qu’on a besoin de toujours lancer la stratégie sur l’UT la plus petit utilisé dans le code, au lieu de déclarer TIMEFRAME(5 minutes) on peut aussi écrire TIMEFRAME(default), si l’UT 5-minutes est la plus petite utilisée.

    Dans l’exemple de code que tu as donné, tu pourras lancer la stratégie sur toutes les UT inférieures ou égale au 5-minutes, mais le code situé sous l’instruction TIMEFRAME(default) sera lu et évalué dans le timeframe “default” soit celui utilisé pour lancer la stratégie.

    #137884 quote
    imencity
    Participant
    Senior

    Encore hum… 😉

    ici:

    Première approche sur le multi timeframe avec ProRealTime

    il est question d’un TF par défaut (lancement de la stratégie) à 1 min. Et dans le code on passe à 5 min pour avoir une idée de tendance.

    moi je test un script lancé en 15 min. Je le code sur ce temps pas défaut mais j’ai besoin de tester une partie en mode 1 min (par ex) pour couper les fuites. En effet si une perte est détecter je dois attendre l’ouverture de la bougie 15 min suivante pour vendre. Alors que si je passe en mode 1 min je peux agir beaucoup plus tôt.

    je voudrais tester cela. Et ce que tu dis:

    Parce qu’on a besoin de toujours lancer la stratégie sur l’UT la plus petit utilisé dans le code

    Confirme ce que je pense. Je dois lancer ma stratégie et 1 min (par ex) mais mettre tout le code en TF 15 min.

    et la petite partie qui m’intéresse je la passe en TF 1 min, voir 5 du coup car c’est des multiples.

    je crois que j’approche non ?

    #137904 quote
    Nicolas
    Keymaster
    Master

    moi je test un script lancé en 15 min. Je le code sur ce temps pas défaut mais j’ai besoin de tester une partie en mode 1 min (par ex) pour couper les fuites. En effet si une perte est détecter je dois attendre l’ouverture de la bougie 15 min suivante pour vendre. Alors que si je passe en mode 1 min je peux agir beaucoup plus tôt.

    C’est bien comme cela qu’il faut procéder. Donc cette approche, tu peux coder comme ceci :

    timeframe(15 minutes, updateonclose)
    // LA STRATEGIE QUI DETERMINE TES ENTRES/SORTIES
    
    timeframe(1 minute) //ou default car tu lanceras le robot en 1 minute 
    // GESTION DE TES ORDRES
    #137912 quote
    imencity
    Participant
    Senior

    Merci pour les explications 😊

    #138025 quote
    imencity
    Participant
    Senior

    Je reviens car quelque chose m’échappe toujours.

    J’ai pris un code juste pour test, on se moque des résultats ce n’est pas l’objet.
    Le code comporte 2 timeframe: un en 15 min et l’autre en 5 min.

    Je fais 2 tests, un en mode 1 min et l’autre en mode 5 min.

    Comme le script est identique et gère ses TF, les résultats devraient être identique… et bien pas du tout !
    Fichtre…

    defparam cumulateorders=false
    
    //5 minute TF (get the trend of the 5 minute chart)
    timeframe(15 minutes,updateonclose)
    MA20 = average[20]
    bulltrend = summation[3](MA20>MA20[1])=3
    
    //"default" timeframe (the timeframe you will launch the strategy on)
    timeframe(5 minutes,updateonclose)
    sto = Stochastic[14,3](close)
    avgsto = average[3](sto)
    buyc = sto crosses over avgsto and sto<20
    if buyc and bulltrend then
    buy at market
    endif
    
    set target pprofit 3
    set stop ploss 15

    CFD DAX 1€ (test sur 1 et 5 min).

    Pourquoi les résultats sont-il différent ?

    timeframe.jpg timeframe.jpg
    #138061 quote
    Nicolas
    Keymaster
    Master

    Si tu compares les courbes de gains en partant de la même date de début, tu verras que les résultats sont complètements identiques.

    10.000 chandeliers en 5 minutes, c’est plus de temps que 10.000 en 1-minute, n’est ce pas ? 🙂

    #138064 quote
    imencity
    Participant
    Senior

    Ah heu… :confuse

    C’est tellement évident, désolé. Et merci de ta réponse qui m’a éclairé.

    #138306 quote
    imencity
    Participant
    Senior

    Hello,

    Me revoici sur ce sujet avec des preuves à l’appuie d’un problème.
    Voici un ex de script très simple:

    defparam cumulateorders=false
    timeframe(15 minutes,updateonclose)
    
    TimeTrade = TIME > 090000 AND TIME < 171500
    indicator1 = Average[7](close)
    indicator2 = Average[15](close)
    ONCE nblot = 1.2
    
    CA1 = indicator1 CROSSES OVER indicator2
    
    if TimeTrade AND CA1 then
    BUY nblot SHARES AT MARKET
    endif
    
    CA2 = indicator1 CROSSES UNDER indicator2
    
    IF CA2 THEN
    SELL AT MARKET
    ENDIF
    
    // Modifier quantite en fonction des gains
    if strategyprofit <> strategyprofit[1] then
    if positionperf(1) >= 0 then //si dernière position perdante
    nblot = nblot + 0.2  //alors on incrémente la quantité de perte
    else //si elle est positive
    nblot = 1.2 //alors le compte est remis à zéro
    endif
    endif
    
    set stop ploss 15

    Je suis donc en TM 15 min quoi qu’il arrive… mais en fonction de la durée choisi je n’ai pas les mêmes résultats.

    J’ai donc pris un volume d’unité assez long, puis j’ai choisi de débuter au 3 février de cette année car si j’affiche en 1 min, 5 mon ou 15 min, tout est affiché.

    Vous pouvez voir sur les captures d’écrans que les résultats oscille de -30.61% à +1,94%…

    J’ai l’impression que le problème vient de la strategyprofit mais je ne comprends pas pourquoi.

    Une idée svp ?

    tm1min.jpg tm1min.jpg tm5min.jpg tm5min.jpg tm15min.jpg tm15min.jpg
    #138311 quote
    imencity
    Participant
    Senior

    Question BIS:

    Pourquoi des fois les drawdown et Runup ne s’affiche pas ?

    #138318 quote
    fifi743
    Participant
    Master

    bonjour,

    si tu graph ton indicator 1 et 2 et que tu compare timeframe m15 et M5.

    il devrait être identique ?

    #138319 quote
    fifi743
    Participant
    Master

    pour l’ affichage tu ferme et ouvre le rapport

    #138337 quote
    imencity
    Participant
    Senior

    Y a tellement de résultat dans le graph qu’il est difficile d’avoir un avis objectif. Par contre j’ai fait des captures d’écrans des positions et c’est dans la fermeture de ces dernières que ça change, parfois de beaucoup. Et bien sûr dans le nombre de barre.

    Je ne comprends absolument pas pourquoi, mais au final si je désactive strategyprofit j’ai le même problème donc c’est pas ça.

    Merci pour la solution du second problème ou plutôt bug.

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

Problème compréhension stratégies de trading en Multi Time Frame


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
imencity @imencity Participant
Summary

This topic contains 33 replies,
has 3 voices, and was last updated by Nicolas
5 years, 8 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 07/01/2020
Status: Active
Attachments: 9 files
Logo Logo
Loading...