Assemblage indicateurs en Multiframe
Forums › ProRealTime forum Français › Support ProBuilder › Assemblage indicateurs en Multiframe
- This topic has 5 replies, 2 voices, and was last updated 4 years ago by Vinz013.
-
-
01/08/2021 at 4:35 PM #156939
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.
01/08/2021 at 4:37 PM #156941123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119//*************************************************// 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//*************************************************// --- settingsGraphType = 30 // 5=5mn, 30=30mn, 4=4h, 24=Jour//Intervalle verticalInterVBar = 1//Coef Position de la ligne en basCoefInterVBar5mn = 3CoefInterVBar30mn = 2CoefInterVBar4h = 1CoefInterVBarJour = 0//Nombre de Bougies a testerNbBougTest5mn = 1 // 1NbBougTest30mn = 6 // 6-8NbBougTest4h = 1 // 1NbBougTestJour = 1 // 1// --- Fin settings//Init compteursONCE TotalBougHaussier = 0ONCE TotalBougBaissier = 0//MM20MM20 = Average[20](Close)//Traitement du type de graphIF GraphType = 5 THENNbBougTest = NbBougTest5mnENDIFIF GraphType = 30 THENNbBougTest = NbBougTest30mnENDIFIF GraphType = 4 THENNbBougTest = NbBougTest4hENDIFIF GraphType = 24 THENNbBougTest = NbBougTestJourENDIF//Bougie en cours: dessus ou dessousIF (open> MM20 AND close > MM20) THEN//HaussierTotalBougHaussier = TotalBougHaussier + 1TotalBougBaissier = 0ELSEIF (open < MM20 AND close < MM20) THEN//BaissierTotalBougHaussier = 0TotalBougBaissier = TotalBougBaissier + 1ELSE//Ni Haussier Ni BaissierTotalBougHaussier = 0TotalBougBaissier = 0ENDIFENDIF//Couleur Init//Ni Haussier Ni BaissierRouge = 0Vert = 0Bleu = 255IF (TotalBougHaussier => NbBougTest) THEN//HaussierRouge = 0Vert = 255Bleu = 0ELSEIF (TotalBougBaissier => NbBougTest) THEN//BaissierRouge = 255Vert = 0Bleu = 0ENDIFENDIF//Traitement du type de graphIF GraphType = 5 THENR5mn = RougeV5mn = VertB5mn = Bleudrawtext("■",barindex,InterVBar*CoefInterVBar5mn,dialog,bold,20) coloured(R5mn,V5mn,B5mn) //5mnENDIFIF GraphType = 30 THENR30mn = RougeV30mn = VertB30mn = Bleudrawtext("■",barindex,InterVBar*CoefInterVBar30mn,dialog,bold,20) coloured(R30mn,V30mn,B30mn) //30mnENDIFIF GraphType = 4 THENR4h = RougeV4h = VertB4h = Bleudrawtext("■",barindex,InterVBar*CoefInterVBar4h,dialog,bold,20) coloured(R4h,V4h,B4h) //4hENDIFIF GraphType = 24 THENRJour = RougeVJour = VertBJour = Bleudrawtext("■",barindex,InterVBar*CoefInterVBarJour,dialog,bold,20) coloured(RJour,VJour,BJour) //JourENDIFRETURN TotalBougHaussier, TotalBougBaissier01/11/2021 at 11:42 AM #157296Je 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/
01/12/2021 at 6:48 PM #157594Bonjour 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 Tendances123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241//*************************************************// 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//*************************************************// --- settingsGraphType = 5 // 5=5mn, 30=30mn, 4=4h, 24=Jour//Intervalle verticalInterVBar = 0.15//Coef Position de la ligne en basCoefInterVBarM5 = 3CoefInterVBarM30 = 2CoefInterVBarH4 = 1CoefInterVBarJ = 0//Nombre de Bougies a tester//NbBougTestM5 = 1 // 1//NbBougTestM30 = 6 // 6-8//NbBougTestH4 = 1 // 1//NbBougTestJ = 1 // 1// --- Fin settings//************************************************************************************************************************************** M30TIMEFRAME(30 minutes , updateonclose)//MM20MM20M30 = Average[20](Close)//Valeurs M30TotalBougHausM30 = TotalBougHausM30[1]TotalBougBaisM30 = TotalBougBaisM30[1]// 6-8NbBougTestM30 = 6//Bougie en cours: dessus ou dessousIF (open > MM20M30 AND close > MM20M30) THEN//HaussierTotalBougHausM30 = TotalBougHausM30 + 1TotalBougBaisM30 = 0ELSETotalBougHausM30 = 0IF (open < MM20M30 AND close < MM20M30) THEN//BaissierTotalBougBaisM30 = TotalBougBaisM30 + 1ELSE//Ni Haussier Ni BaissierTotalBougBaisM30 = 0ENDIFENDIF//Couleur Init//Ni Haussier Ni BaissierRougeM30 = 0VertM30 = 0BleuM30 = 255IF (TotalBougHausM30 => NbBougTestM30) THEN//HaussierRougeM30 = 0VertM30 = 255BleuM30 = 0ELSEIF (TotalBougBaisM30 => NbBougTestM30) THEN//BaissierRougeM30 = 255VertM30 = 0BleuM30 = 0ENDIFENDIF//************************************************************************************************************************************** M30//************************************************************************************************************************************** H4TIMEFRAME(4 hours, updateonclose)//MM20MM20H4 = Average[20](Close)//Valeurs H4TotalBougHausH4 = TotalBougHausH4[1]TotalBougBaisH4 = TotalBougBaisH4[1]// 1NbBougTestH4 = 1//Bougie en cours: dessus ou dessousIF (open > MM20H4 AND close > MM20H4) THEN//HaussierTotalBougHausH4 = TotalBougHausH4 + 1TotalBougBaisH4 = 0ELSETotalBougHausH4 = 0IF (open < MM20H4 AND close < MM20H4) THEN//BaissierTotalBougBaisH4 = TotalBougBaisH4 + 1ELSE//Ni Haussier Ni BaissierTotalBougBaisH4 = 0ENDIFENDIF//Couleur Init//Ni Haussier Ni BaissierRougeH4 = 0VertH4 = 0BleuH4 = 255IF (TotalBougHausH4 => NbBougTestH4) THEN//HaussierRougeH4 = 0VertH4 = 255BleuH4 = 0ELSEIF (TotalBougBaisH4 => NbBougTestH4) THEN//BaissierRougeH4 = 255VertH4 = 0BleuH4 = 0ENDIFENDIF//************************************************************************************************************************************** H4//************************************************************************************************************************************** JourTIMEFRAME(1 day, updateonclose)//MM20MM20J = Average[20](Close)//Valeurs JourTotalBougHausJ = TotalBougHausJ[1]TotalBougBaisJ = TotalBougBaisJ[1]//1NbBougTestJ = 1//Bougie en cours: dessus ou dessousIF (open > MM20J AND close > MM20J) THEN//HaussierTotalBougHausJ = TotalBougHausJ + 1TotalBougBaisJ = 0ELSETotalBougHausJ = 0IF (open < MM20J AND close < MM20J) THEN//BaissierTotalBougBaisJ = TotalBougBaisJ + 1ELSE//Ni Haussier Ni BaissierTotalBougBaisJ = 0ENDIFENDIF//Couleur Init//Ni Haussier Ni BaissierRougeJ = 0VertJ = 0BleuJ = 255IF (TotalBougHausJ => NbBougTestJ) THEN//HaussierRougeJ = 0VertJ = 255BleuJ = 0ELSEIF (TotalBougBaisJ => NbBougTestJ) THEN//BaissierRougeJ = 255VertJ = 0BleuJ = 0ENDIFENDIF//************************************************************************************************************************************** JOUR//************************************************************************************************************************************** M5TIMEFRAME(default)//MM20MM20M5 = Average[20](Close)//Valeurs M5TotalBougHausM5 = TotalBougHausM5[1]TotalBougBaisM5 = TotalBougBaisM5[1]//1NbBougTestM5 = 1//Bougie en cours: dessus ou dessousIF (open > MM20M5 AND close > MM20M5) THEN//HaussierTotalBougHausM5 = TotalBougHausM5 + 1TotalBougBaisM5 = 0ELSETotalBougHausM5 = 0IF (open < MM20M5 AND close < MM20M5) THEN//BaissierTotalBougBaisM5 = TotalBougBaisM5 + 1ELSE//Ni Haussier Ni BaissierTotalBougBaisM5 = 0ENDIFENDIF//Couleur Init//Ni Haussier Ni BaissierRougeM5= 0VertM5 = 0BleuM5 = 255IF (TotalBougHausM5 => NbBougTestM5) THEN//HaussierRougeM5 = 0VertM5 = 255BleuM5 = 0ELSEIF (TotalBougBaisM5 => NbBougTestM5) THEN//BaissierRougeM5 = 255VertM5 = 0BleuM5 = 0ENDIFENDIF//Trace Histodrawtext("■",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)//************************************************************************************************************************************** M5RETURN01/13/2021 at 11:04 AM #15762501/13/2021 at 12:06 PM #157634Bonjour,
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é.
-
AuthorPosts
Find exclusive trading pro-tools on