indicateurs MTF pour ProRealTime disponible ! – programmation MTF pour ProBuilder

Viewing 15 posts - 1 through 15 (of 41 total)
  • Author
    Posts
  • #137084 quote
    Nicolas
    Keymaster
    Master

    Bonne nouvelle pour un grand nombre de traders et programmeurs ! La prise en charge tant attendue de l’utilisation d’indicateurs d’autres unités de temps (timeframe) dans le même indicateur (également appelés indicateurs MTF) est enfin disponible depuis peu en programmation (sous ProRealTime version 11).

    Je teste actuellement différentes combinaisons pour étudier tout ce qui est possible et jusqu’à présent, tout fonctionne ainsi que ce que nous pourrions avoir avec MTF pour les stratégies de trading automatique via ProOrder / ProBacktest.

    La méthode de programmation reste la même que celle déjà utilisée pour ProScreener ou ProOrder. C’est-à-dire que nous déclarons notre TIMEFRAME, puis nous codons ci-dessous de manière ordinaire. Vous pouvez donc combiner autant de timeframe que vous le souhaitez et faire tout ce dont vous avez rêvé jusqu’à présent (pour ceux qui rêvent de programmation bien sûr: lol:)

    Exemple simple:

    timeframe(1 hour,updateonclose)
    up = BollingerUp[20](close)
    dn = BollingerDown[20](close)
    
    timeframe(15 minutes)
    tenkan = TenkanSen[9,26,52]
    
    return up,dn, tenkan coloured(0,150,200) style(line,2)

     

    Dans cet exemple simple, nous appliquons une bande de Bollinger d’une heure (mise à jour une fois à chaque fermeture de barre d’une heure) et un TenkanSen de 15 minutes (mis à jour une fois à chaque fermeture de barre du timeframe 15-minutes).

    Comme vous pouvez le voir, cela laisse beaucoup de place à l’imagination pour programmer beaucoup de nouvelles choses ! Combiné aux tableaux de données (Array = nouvellement ajouté à PRT v11 aussi), on peut désormais dire qu’un certain nombre de limites ont été franchies en matière de programmation sous ProRealTime !

    Si vous avez des questions ou des questions, j’essaierai d’y répondre dans les plus brefs délais.

    Je posterai probablement d’autres exemples plus ou moins complexes au fil du temps ! 😉

    Note: ce sujet est le pendant de celui du forum anglophone ou vous pourriez aussi trouver d’autres exemples et y lire les discussions: Multi timeframe – MTF indicators for ProRealTime

    ALE thanked this post
    #137086 quote
    Nicolas
    Keymaster
    Master

    — réservé pour d’autres exemples —

    #153825 quote
    juju333
    Participant
    Average

    Super Merci Nicolas, ça devrait me permettre de faire automatiquement ce que je fais à la main tous les matins : reporter mes MM des UT supérieures en lignes horizontales sur mon graph daily.

    Je me permets la question ici, tu peux supprimer si tu estimes que je doive plutôt créer un sujet dédié, mais il me semble que cela met un bon cas d’usage pour le MTF.

    Que penses-tu de cette façon de faire pour l’exemple des MM Mensuelles sur mon graph daily ? je constate que si je veux qu’elles s’affichent toutes je dois mettre beaucoup d’unités sur mon graph Daily (ce qui peut se comprendre). N’y aurait-il pas un moyen du genre preloabar pour élargir ces unités uniquement dans le calcul de l’indicateur sans forcément charger l’affichage de mon graph Daily que j’aime bien garder à 50 ou 100 unités ?

     

    // affichage de toutes les MM des UT supérieures en lignes sur le graph Daily
    defparam drawonlastbaronly=true
    
    timeframe(1 month)
    MM7M = Average[7](Close)
    MM20M = Average[20](Close)
    MM50M = Average[50](Close)
    MM100M = Average[100](Close)
    MM200M = Average[200](Close)
    
    timeframe(default)
    DRAWHLINE (MM7M) coloured(93, 173, 226)
    DRAWHLINE (MM20M) coloured(93, 173, 226)
    DRAWHLINE (MM50M) coloured(93, 173, 226)
    DRAWHLINE (MM100M) coloured(93, 173, 226)
    DRAWHLINE (MM200M) coloured(93, 173, 226)
    
    return
    #153887 quote
    juju333
    Participant
    Average

    Aure petite question sur ces timeframes standards, existe-t-il quelque chose pour du trimestre ? j’ai essayé quarter sans succès. Merci !

    #153917 quote
    Nicolas
    Keymaster
    Master

    Pour avoir un trimestre, tu peux essayer avec :

    timeframe(3 months)
    juju333 and Bodaris thanked this post
    #153928 quote
    DanC78
    Participant
    Average

    Bonjour Nicolas,

    Je viens de voir ton message, merci pour cette excellente nouvelle, j’en rêvais !

    Maintenant, au travail 😉

    Bonne journée.

    #154002 quote
    juju333
    Participant
    Average

    Pour avoir un trimestre, tu peux essayer avec :

    Yes ça marche !

    #156870 quote
    Joris
    Participant
    Junior

    Bonjour Nicolas,

     

    Comment fait t’on pour sortir de la timeframe ?

    Je m’explique:

    Dans mon code, l’indicateur travaille sur l’UT du graphique sur lequel il est et va chercher une info sur une autre timeframe. Je souhaite continué mon codage en revenant sur la timeframe du graphique de mon indicateur

    Je sais pas si je suis clair ?

     

    Merci

    #156878 quote
    Nicolas
    Keymaster
    Master

    Le timeframe du graphique sur lequel l’indicateur est posé est le “default”, soit:

    timeframe(default)
    #156883 quote
    Joris
    Participant
    Junior

    Merci pour votre réactivité

    #156986 quote
    bobR
    Participant
    New

    Bonjour et bravo pour cette fonctionnalité active en affichage,

    Cependant, que devient l’indicateur Dclose par exemple?

    Des indicateurs personnels qui fonctionnaient depuis des années ne fonctionnent plus.

    Mon code me retourne la bonne variable qu’au démarrage de mon indicateur, après ce sont des valeurs “exotiques”.

    Et même en appliquant les timeframe daily et ut inférieures dans mon code avec ou sans updatonclose, rien ne change!?

    Merci pour votre aide et/ou débuggage.

    #157295 quote
    bobR
    Participant
    New

    Bonjour,

    je parlai bien sur de la variable Dclose…qui s’affiche donc de manière cahotique.

    Pour l’instant j’ai résolu cela en appelant la close en timeframe daily.

    #167652 quote
    ginko
    Participant
    Average

    Bonjour.

    J’ai essayé de coder un SAR 4 heures sur un graphique horaire, cela n’a pas l’air de fonctionner correctement.
    PS : Si j’affiche dans le même timeframe H4 tout va bien, si j’affiche en H1, le SAR 4 heures reste constant.

    timeframe (240 minutes)
    SarH4=SAR[0.02,0.02,0.2]
    timeframe (default)
    SarDft=SAR[0.02,0.02,0.2]
    
    return SarH4 "SarH4", SarDft as "SarDft"
    

    Est-ce un bug ou une erreur de codage ?

    #167676 quote
    Nicolas
    Keymaster
    Master

    En effet, il y a bien un problème il devrait se recalculer en temps réel sans “updateonclose” et il reste constant. Merci de lancer un tikcet support via la plateforme et d’y inclure un lien vers ton message: https://www.prorealcode.com/topic/indicateurs-mtf-pour-prorealtime-disponible/#post-167652

    J’utilise le code suivant :

    timeframe (4 hours)
    SarH4=SAR[0.02,0.02,0.2]
    timeframe (default)
    SarDft=SAR[0.02,0.02,0.2]
    return SarH4 as "SarH4", SarDft as "SarDft"

    Par contre, tout fonctionne avec le “updateonclose”:

    timeframe (4 hours, updateonclose)
    SarH4=SAR[0.02,0.02,0.2]
    timeframe (default)
    SarDft=SAR[0.02,0.02,0.2]
    return SarH4 as "SarH4", SarDft as "SarDft"
    ginko thanked this post
    #167695 quote
    ginko
    Participant
    Average

    Merci Nicolas, c’est fait.

    J’ai trouvé le SAR from scratch sur le forum :

    timeframe (240 minutes)
    
    // SAR - Parabolic SAR
     
    once increment = 0.02
    once initial = 0.02
    once limite = 0.2
     
    IF BARINDEX < 2 THEN
    parabolic = LOW
    islong = 1
    af = limite
    hp = HIGH
    lp = LOW
    ELSE
    IF islong THEN
    parabolic = parabolic + af * (hp - parabolic)
    parabolic = MIN(parabolic, LOW[1])
    parabolic = MIN(parabolic, LOW[2])
    ELSE
    parabolic=parabolic + af * (lp - parabolic)
    parabolic=MAX(parabolic, HIGH[1])
    parabolic=MAX(parabolic, HIGH[2])
    ENDIF
         
    reverse = 0
         
    IF islong THEN 
    IF LOW < parabolic THEN
    islong = 0
    reverse = 1
    parabolic = hp
    lp = LOW
    af = initial
    ENDIF
    ELSE
    IF HIGH > parabolic THEN
    islong = 1
    reverse =1
    parabolic = lp
    hp = HIGH
    af = initial
    ENDIF
    ENDIF
         
    IF NOT reverse THEN
    IF islong THEN
    IF HIGH > hp THEN
    hp = HIGH
    af = af + increment
    af = MIN (af,limite)
    ENDIF 
     ELSE
    IF LOW < lp THEN
    lp = LOW
    af = af + increment
    af = MIN (af,limite) 
    ENDIF
    ENDIF 
    ENDIF
         
    ENDIF
    
    timeframe (240 minutes, updateonclose)
    SarH4 = SAR[0.02,0.02,0.2]
    
    timeframe (default)
    
    RETURN parabolic as "SARH4d", SarH4 as "Sar H4 onclose"

    Ca a l’air de fonctionner.

    En fait je voudrais calculer le point futur auquel le SAR H4 va se retourner (le point de retournement).

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

indicateurs MTF pour ProRealTime disponible ! – programmation MTF pour ProBuilder


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Nicolas @nicolas Keymaster
Summary

This topic contains 40 replies,
has 11 voices, and was last updated by Marlaynicolas
1 year, 5 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 06/25/2020
Status: Active
Attachments: 17 files
Logo Logo
Loading...