Assemblage indicateurs en Multiframe

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #156939 quote
    Vinz013
    Participant
    Junior

    Bonjour à tous,

    J’ai écris 4 indicateurs qui m’indique la tendance en fonction de la MM20 de Bollinger et de l’unité de temps, de la manière suivante:

    En M30: si 6 bougies (corps des bougies) au dessus de la MM20 = tendance haussière / si 6 bougies (corps des bougies) en dessous de la MM20 = tendance baissière

    En M5: si 1 bougie (corps de la bougie) au dessus de la MM20 = tendance haussière / si 1 bougie (corps de la bougie) en dessous de la MM20 = tendance baissière

    En H4: si 1 bougie (corps de la bougie) au dessus de la MM20 = tendance haussière / si 1 bougie (corps de la bougie) en dessous de la MM20 = tendance baissière

    En journalier: si 1 bougie (corps de la bougie) au dessus de la MM20 = tendance haussière / si 1 bougie (corps de la bougie) en dessous de la MM20 = tendance baissière

     

    J’ai représenté ces indicateurs sous forme d’histogrammes.

     

    Je voudrais rassembler les 4 histogrammes sur mon graphique de 30 minutes.

     

    Je n’arrive pas à comprendre comment gérer le multiframe pour obtenir mes 4 histogrammes en 30 minutes.

     

    En lien le code pour l’histogramme de 30 minutes.

    Signal_Divergences_M30.itf
    #156941 quote
    Vinz013
    Participant
    Junior

    //*************************************************
    //                Signal_Divergences_M30
    //
    //                Version 4
    //                08/01/2021
    //
    //
    //
    // 1              PAS OK
    // 2             compteurs Haussier/Baissier OK, CALL
    // 3             // sur CALL PASOK, Nom ind
    // 4             CALL en probacktest
    //*************************************************
    
     
    // --- settings
    
    GraphType = 30                                       // 5=5mn, 30=30mn,  4=4h,  24=Jour
    
    //Intervalle vertical
    InterVBar = 1
    //Coef Position de la ligne en bas
    CoefInterVBar5mn = 3
    CoefInterVBar30mn = 2
    CoefInterVBar4h = 1
    CoefInterVBarJour = 0
    
    //Nombre de Bougies a tester
    NbBougTest5mn = 1                         // 1
    NbBougTest30mn = 6                       // 6-8
    NbBougTest4h = 1                             // 1
    NbBougTestJour = 1                          // 1
    
    // --- Fin settings
    
    //Init compteurs
    ONCE TotalBougHaussier = 0
    ONCE TotalBougBaissier = 0
    
    //MM20
    MM20 = Average[20](Close)
    
    //Traitement du type de graph
    IF GraphType = 5 THEN
    NbBougTest = NbBougTest5mn
    ENDIF
    IF GraphType = 30 THEN
    NbBougTest = NbBougTest30mn
    ENDIF
    IF GraphType = 4 THEN
    NbBougTest = NbBougTest4h
    ENDIF
    IF GraphType = 24 THEN
    NbBougTest = NbBougTestJour
    ENDIF
    
    //Bougie en cours: dessus ou dessous
    IF (open> MM20 AND close > MM20) THEN
    //Haussier
    TotalBougHaussier = TotalBougHaussier + 1
    TotalBougBaissier = 0
    ELSE
    IF (open < MM20 AND close < MM20) THEN
    //Baissier
    TotalBougHaussier = 0
    TotalBougBaissier = TotalBougBaissier + 1
    ELSE
    //Ni Haussier Ni Baissier
    TotalBougHaussier = 0
    TotalBougBaissier = 0
    ENDIF
    ENDIF
    
    //Couleur Init
    //Ni Haussier Ni Baissier
    Rouge = 0
    Vert = 0
    Bleu = 255
    IF (TotalBougHaussier => NbBougTest) THEN
    //Haussier
    Rouge = 0
    Vert = 255
    Bleu = 0
    ELSE
    IF (TotalBougBaissier => NbBougTest) THEN
    //Baissier
    Rouge = 255
    Vert = 0
    Bleu = 0
    ENDIF
    ENDIF
    
    //Traitement du type de graph
    IF GraphType = 5 THEN
    R5mn = Rouge
    V5mn = Vert
    B5mn = Bleu
    drawtext("■",barindex,InterVBar*CoefInterVBar5mn,dialog,bold,20) coloured(R5mn,V5mn,B5mn)                        //5mn
    ENDIF
    IF GraphType = 30 THEN
    R30mn = Rouge
    V30mn = Vert
    B30mn = Bleu
    drawtext("■",barindex,InterVBar*CoefInterVBar30mn,dialog,bold,20) coloured(R30mn,V30mn,B30mn)               //30mn
    ENDIF
    IF GraphType = 4 THEN
    R4h = Rouge
    V4h = Vert
    B4h = Bleu
    drawtext("■",barindex,InterVBar*CoefInterVBar4h,dialog,bold,20) coloured(R4h,V4h,B4h)                                     //4h
    ENDIF
    IF GraphType = 24 THEN
    RJour = Rouge
    VJour = Vert
    BJour = Bleu
    drawtext("■",barindex,InterVBar*CoefInterVBarJour,dialog,bold,20) coloured(RJour,VJour,BJour)                         //Jour
    ENDIF
      
    RETURN TotalBougHaussier, TotalBougBaissier
    
    #157296 quote
    Nicolas
    Keymaster
    Master
    Je pense que tu te compliques pas mal la tâche avec 4 codes différents. PRT v11 gère le multi timeframe, donc dans un seul et même code, tu vas pouvoir récupérer les infos et les afficher. Cependant, il faut bien prendre note qu’en M30, on ne peut récupérer les infos de bougies M5, l’inverse est possible par contre. Plus d’informations sur le MTF sous ProBuilder: https://www.prorealcode.com/topic/indicateurs-mtf-pour-prorealtime-disponible/
    #157594 quote
    Vinz013
    Participant
    Junior
    Bonjour Nicolas, J’ai suivi tes conseils, merci. L’indicateur fonctionne en M5 et M30 mais j’ai un problème en H4 et Daily. Les histogrammes H4 et Daily ne changent pas de couleur, et je ne comprends pas pourquoi car les tests sont identiques… Je vois pas où est le problème… Merci pour ton aide.
    //*************************************************
    //                Signal_Tendences_M5
    //
    //                Version 5
    //                08/01/2021
    //
    //
    //
    // 1              PAS OK
    // 2             compteurs Haussier/Baissier OK, CALL
    // 3             // CALL, nom indi
    // 4             CALL en probacktest PAS OK abandonne
    // 5             Regroupement des Signaux
    //*************************************************
    
     
    // --- settings
    
    GraphType = 5                                       // 5=5mn, 30=30mn,  4=4h,  24=Jour
    
    //Intervalle vertical
    InterVBar = 0.15
    
    //Coef Position de la ligne en bas
    CoefInterVBarM5 = 3
    CoefInterVBarM30 = 2
    CoefInterVBarH4 = 1
    CoefInterVBarJ = 0
    
    //Nombre de Bougies a tester
    //NbBougTestM5 = 1                                // 1
    //NbBougTestM30 = 6                              // 6-8
    //NbBougTestH4 = 1                                 // 1
    //NbBougTestJ = 1                                    // 1
    
    // --- Fin settings
    
    
    //************************************************************************************************************************************** M30
    TIMEFRAME(30 minutes , updateonclose)
    
    //MM20
    MM20M30 = Average[20](Close)
    
    //Valeurs M30
    TotalBougHausM30 = TotalBougHausM30[1]
    TotalBougBaisM30 = TotalBougBaisM30[1]
    // 6-8
    NbBougTestM30 = 6
    
    //Bougie en cours: dessus ou dessous
    IF (open > MM20M30 AND close > MM20M30) THEN
    //Haussier
    TotalBougHausM30 = TotalBougHausM30 + 1
    TotalBougBaisM30 = 0
    ELSE
    TotalBougHausM30 = 0
    IF (open < MM20M30 AND close < MM20M30) THEN
    //Baissier
    TotalBougBaisM30 = TotalBougBaisM30 + 1
    ELSE
    //Ni Haussier Ni Baissier
    TotalBougBaisM30 = 0
    ENDIF
    ENDIF
    
    //Couleur Init
    //Ni Haussier Ni Baissier
    RougeM30 = 0
    VertM30 = 0
    BleuM30 = 255
    IF (TotalBougHausM30 => NbBougTestM30) THEN
    //Haussier
    RougeM30 = 0
    VertM30 = 255
    BleuM30 = 0
    ELSE
    IF (TotalBougBaisM30 => NbBougTestM30) THEN
    //Baissier
    RougeM30 = 255
    VertM30 = 0
    BleuM30 = 0
    ENDIF
    ENDIF
    
    //************************************************************************************************************************************** M30
    
    //************************************************************************************************************************************** H4
    TIMEFRAME(4 hours, updateonclose)
    
    //MM20
    MM20H4 = Average[20](Close)
    
    //Valeurs H4
    TotalBougHausH4 = TotalBougHausH4[1]
    TotalBougBaisH4 = TotalBougBaisH4[1]
    // 1
    NbBougTestH4 = 1
    
    //Bougie en cours: dessus ou dessous
    IF (open > MM20H4 AND close > MM20H4) THEN
    //Haussier
    TotalBougHausH4 = TotalBougHausH4 + 1
    TotalBougBaisH4 = 0
    ELSE
    TotalBougHausH4 = 0
    IF (open < MM20H4 AND close < MM20H4) THEN
    //Baissier
    TotalBougBaisH4 = TotalBougBaisH4 + 1
    ELSE
    //Ni Haussier Ni Baissier
    TotalBougBaisH4 = 0
    ENDIF
    ENDIF
    
    //Couleur Init
    //Ni Haussier Ni Baissier
    RougeH4 = 0
    VertH4 = 0
    BleuH4 = 255
    IF (TotalBougHausH4 => NbBougTestH4) THEN
    //Haussier
    RougeH4 = 0
    VertH4 = 255
    BleuH4 = 0
    ELSE
    IF (TotalBougBaisH4 => NbBougTestH4) THEN
    //Baissier
    RougeH4 = 255
    VertH4 = 0
    BleuH4 = 0
    ENDIF
    ENDIF
    
    //************************************************************************************************************************************** H4
    
    //************************************************************************************************************************************** Jour
    TIMEFRAME(1 day, updateonclose)
    
    //MM20
    MM20J = Average[20](Close)
    
    //Valeurs Jour
    TotalBougHausJ = TotalBougHausJ[1]
    TotalBougBaisJ = TotalBougBaisJ[1]
    //1
    NbBougTestJ = 1
    
    //Bougie en cours: dessus ou dessous
    IF (open > MM20J AND close > MM20J) THEN
    //Haussier
    TotalBougHausJ = TotalBougHausJ + 1
    TotalBougBaisJ = 0
    ELSE
    TotalBougHausJ = 0
    IF (open < MM20J AND close < MM20J) THEN
    //Baissier
    TotalBougBaisJ = TotalBougBaisJ + 1
    ELSE
    //Ni Haussier Ni Baissier
    TotalBougBaisJ = 0
    ENDIF
    ENDIF
    
    //Couleur Init
    //Ni Haussier Ni Baissier
    RougeJ = 0
    VertJ = 0
    BleuJ = 255
    IF (TotalBougHausJ => NbBougTestJ) THEN
    //Haussier
    RougeJ = 0
    VertJ = 255
    BleuJ = 0
    ELSE
    IF (TotalBougBaisJ => NbBougTestJ) THEN
    //Baissier
    RougeJ = 255
    VertJ = 0
    BleuJ = 0
    ENDIF
    ENDIF
    
    //************************************************************************************************************************************** JOUR
    
    //************************************************************************************************************************************** M5
    TIMEFRAME(default)
    
    //MM20
    MM20M5 = Average[20](Close)
    
    //Valeurs M5
    TotalBougHausM5 = TotalBougHausM5[1]
    TotalBougBaisM5 = TotalBougBaisM5[1]
    //1
    NbBougTestM5 = 1
    
    //Bougie en cours: dessus ou dessous
    IF (open > MM20M5 AND close > MM20M5) THEN
    //Haussier
    TotalBougHausM5 = TotalBougHausM5 + 1
    TotalBougBaisM5 = 0
    ELSE
    TotalBougHausM5 = 0
    IF (open < MM20M5 AND close < MM20M5) THEN
    //Baissier
    TotalBougBaisM5 = TotalBougBaisM5 + 1
    ELSE
    //Ni Haussier Ni Baissier
    TotalBougBaisM5 = 0
    ENDIF
    ENDIF
    
    //Couleur Init
    //Ni Haussier Ni Baissier
    RougeM5= 0
    VertM5 = 0
    BleuM5 = 255
    IF (TotalBougHausM5 => NbBougTestM5) THEN
    //Haussier
    RougeM5 = 0
    VertM5 = 255
    BleuM5 = 0
    ELSE
    IF (TotalBougBaisM5 => NbBougTestM5) THEN
    //Baissier
    RougeM5 = 255
    VertM5 = 0
    BleuM5 = 0
    ENDIF
    ENDIF
    
    //Trace Histo
    drawtext("■",barindex,InterVBar*CoefInterVBarM5,dialog,bold,20) coloured(RougeM5,VertM5,BleuM5)
    drawtext("■",barindex,InterVBar*CoefInterVBarM30,dialog,bold,20) coloured(RougeM30,VertM30,BleuM30)
    drawtext("■",barindex,InterVBar*CoefInterVBarH4,dialog,bold,20) coloured(RougeH4,VertH4,BleuH4)
    drawtext("■",barindex,InterVBar*CoefInterVBarJ,dialog,bold,20) coloured(RougeJ,VertJ,BleuJ)
    
    //************************************************************************************************************************************** M5
      
    RETURN
    #157625 quote
    Nicolas
    Keymaster
    Master
    Il n’y a peut être pas suffisamment d’unités affichées pour récupérer les informations de ces timeframes ? Il faut essayer avec un max d’unités pour voir ..
    #157634 quote
    Vinz013
    Participant
    Junior
    Bonjour, Merci pour ta réponse, effectivement il faut que j’affiche 6000 unités en 5 minutes pour avoir les données du journalier. Avant je n’affichais que 200 unités en 5 minutes, du coup ça me ralenti énormément la plateforme. Je comprends mieux la nécessité d’exécuter l’indicateur dans l’unité de temps la plus basse et d’utiliser des multiples, car en fait l’indicateur fait tous ses calculs sur l’unité de temps la plus basse. Est-ce qu’il serait possible de récupérer les information (objet) du graphique M30, H4 et daily, qui sont affichés sur ma plateforme de façon permanente et simultanée ? Est-ce que Prosreener ne serait pas plus adapté? Merci pour toutes tes contributions et ta réactivité.
Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.

Assemblage indicateurs en Multiframe


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Vinz013 @vinz013 Participant
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by Vinz013
5 years, 1 month ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 01/08/2021
Status: Active
Attachments: 1 files
Logo Logo
Loading...