Indicateurs multitemporels - page 276

 

mtf demarker

quelqu'un a un indicateur de démarqueur mtf qui fonctionne ?

merci

 
jackt:
quelqu'un a un indicateur de démarqueur mtf qui fonctionne ? merci

Vous pouvez essayer cette version, elle fonctionne avec le DeMarker standard.

Dossiers :
 
matfx:
Vous pouvez essayer cette version, elle fonctionne avec le DeMarker standard.

ne fonctionne pas. j'ai mis 2 mtf demarker sur un graphique h4. réglages période 2, tf 1440 et période 3, tf 1440. les deux montrent le même graphique.

 

Démarreur avec alarme

bonjour :

J'utilise l'indicateur demarker d'hier, c'est génial !

Est-ce que je peux faire cet indicateur avec une alarme ?

par exemple :

si MTF_Demarker (0) > 0.7 et MTF_Demarker(15)>0.7 BUY et alarme

si MTF_Demarker (0) < 0.3 et MTF_Demarker(15)<0.3 VENDRE et alarme

Merci d'avance !

 

Fabrication d'indicateurs MTF

Je me demandais si quelqu'un pouvait me montrer comment faire des indicateurs MTF. Je peux faire du codage de base mais je ne sais pas comment convertir un indicateur standard en MTF. J'ai un tas de choses que je veux faire et je veux apprendre à le faire moi-même. Merci d'avance.

EDIT : Pas de problème. J'ai trouvé la solution.

 
jturns23:
Je me demandais si quelqu'un pouvait me montrer comment faire des indicateurs MTF. Je peux faire du codage de base mais je ne sais pas comment convertir un indicateur standard en MTF. J'ai un tas de choses que je veux faire et je veux apprendre à le faire moi-même. Merci d'avance. EDIT : Pas grave. J'ai trouvé la solution.

Commencez par lire les premiers messages. C'est facile à expliquer.

 

Mtf_wpr

Je teste mon système avec l'indicateur MTF_WPR qui est très utile.

Quelqu'un peut attacher une alarme à cet indicateur ?

par exemple :

si MTF_WPR(tf=0)>-20 & MTF_WPR(tf=15)>-20 alors BUY &ALARM

si MTF_WPR(tf=0)<-80 & MTF_WPR(tf=15)<-80 alors VENTE &ALARM

thx

 
matfx:
Vous pouvez essayer cette version, elle fonctionne avec le DeMarker standard.
jackt :
ne fonctionne pas. j'ai mis 2 mtf demarker sur un graphique h4. réglages période 2, tf 1440 et période 3, tf 1440. les deux montrent le même graphique.

dans MTF DeMarker.mq4 (3.0 KB) ajoutez simplement le contrôle de période à la ligne83 :

ExtDeMarkerMapBuffer=iCustom(NULL,TimeFrame, "DeMarker",ExtDeMarkerPeriod,0,y) ;

Dossiers :
 
fxbs:
dans MTF DeMarker.mq4 (3.0 KB) ajoutez juste le contrôle de la période à la ligne83 : ExtDeMarkerMapBuffer=iCustom(NULL,TimeFrame, "DeMarker",ExtDeMarkerPeriod,0,y) ;

merci beaucoup. ça marche ! !!

 

Une idée sur la raison de la non mise à jour ?

Bonjour. Je m'excuse de ne pas montrer le graphique ou de charger l'indi. Je suppose que je ne suis pas encore autorisé à poster des fichiers. Je suis désolé donc je dois couper et coller le code à la place.

Cet indi appelé QQE_Alert_MTF_v5a est un QQE MTF. Il ne se met pas à jour. J'ai essayé le mod Period () pour qu'il se mette à jour mais sans succès. Si vous le mettez sur un graphique 1 min et réglez l'indicateur sur 15 minutes, laissez-le fonctionner pendant un certain temps, vous pouvez voir ce qui se passe.

J'ai dû raccourcir l'indication car j'ai dépassé la limite de caractères de FXTSDMB, sur celle-ci. La deuxième partie est dans la prochaine réponse.

Je m'excuse d'avoir rendu les choses difficiles. Merci.

QQE_Alert_MTF_v5a

#property indicateur_separate_window

#property indicator_levelcolor Red

#property indicator_levelstyle 0

#property indicator_buffers 3

#property indicator_color1 Blue

#property indicator_color2 CLR_NONE

#property indicator_color3 Black

#property indicator_width1 2

#property indicator_level1 50.0

double g_ibuf_76[] ;

double g_ibuf_80[] ;

double g_ibuf_84[] ;

double g_ibuf_88[] ;

double g_ibuf_92[] ;

double g_ibuf_96[] ;

double g_ibuf_100[] ;

double g_ibuf_104[] ;

extern int Smoothing = 5 ;

extern int TimeFrame = 0 ;

extern string ALERTS = "------------------------------------------------------" ;

extern bool CrossFiftyAlert = FALSE ;

extern bool CrossFiftyEmail = FALSE ;

extern bool CrossLineAlert = FALSE ;

extern bool CrossLineEmail = FALSE ;

extern bool BothAlert = FALSE ;

extern bool BothEmail = FALSE ;

extern string MESSAGES = "------------------------------------------------------" ;

extern string FiftyUpMessage = "QQE a traversé 50 lignes vers le haut ! !!";

extern string FiftyDownMessage = "QQE a franchi 50 lignes vers le bas ! !!";

extern string QQECrossUpMessage = "QQE croise les lignes vers le haut ! !!";

extern string QQECrossDownMessage = "QQE lignes croisées DOWN ! !!";

extern string BothUpMessage = "QQE Lines Are Crossed and 50 Line Broken UP ! !!";

extern string BothDownMessage = "QQE Lines Are Crossed and 50 Line Broken DOWN ! !!";

extern string SOUNDS = "------------------------------------------------------" ;

extern string FiftyUpSound = "alert.wav" ;

extern string FiftyDownSound = "alert.wav" ;

extern string QQECrossUpSound = "alert.wav" ;

extern string QQECrossDownSound = "alert.wav" ;

extern string BothUpSound = "alert.wav" ;

extern string BothDownSound = "alert.wav" ;

extern string DOT_VISIBILITY = "------------------------------------------------------" ;

extern bool FiftyUpDot = FALSE ;

extern bool FiftyDownDot = FALSE ;

extern bool QQECrossUpDot = FALSE ;

extern bool QQECrossDownDot = FALSE ;

extern bool BothUpDot = FALSE ;

extern bool BothDownDot = FALSE ;

extern string DOT_COLORS = "------------------------------------------------------" ;

extern color FiftyUpColor = DodgerBlue ;

extern color FiftyDownColor = Crimson ;

extern color QQECrossUpColor = Teal ;

extern color QQECrossDownColor = Pink ;

extern color BothUpColor = Blue ;

extern color BothDownColor = Red ;

extern string DOT_DISTANCE = "------------------------------------------------------" ;

extern int Distance = 30 ;

int gi_unused_336 = 0 ;

int gi_unused_340 = 0 ;

int gi_344 = 0 ;

int init() {

string ls_unused_8 ;

string ls_20 ;

IndicatorBuffers(8) ;

SetIndexBuffer(0, g_ibuf_80) ;

SetIndexBuffer(1, g_ibuf_84) ;

SetIndexBuffer(2, g_ibuf_88) ;

SetIndexBuffer(3, g_ibuf_76) ;

SetIndexBuffer(4, g_ibuf_92) ;

SetIndexBuffer(5, g_ibuf_96) ;

SetIndexBuffer(6, g_ibuf_100) ;

SetIndexBuffer(7, g_ibuf_104) ;

switch (TimeFrame) {

cas 1 :

ls_20 = "Période_M1" ;

break ;

cas 5 :

ls_20 = "Période_M5" ;

pause ;

cas 15 :

ls_20 = "Période_M15" ;

pause ;

cas 30 :

ls_20 = "Période_M30" ;

pause ;

cas 60 :

ls_20 = "Période_H1" ;

pause ;

cas 240 :

ls_20 = "Période_H4" ;

pause ;

cas 1440 :

ls_20 = "Période_D1" ;

pause ;

cas 10080 :

ls_20 = "Période_W1" ;

pause ;

cas 43200 :

ls_20 = "Période_MN1" ;

pause ;

par défaut :

ls_20 ="Current Timeframe" ;

}

MathSrand(TimeLocal()) ;

string ls_0 = "QQE " + ls_20 ;

IndicatorShortName(ls_0) ;

retour (0) ;

}

int deinit() {

string l_name_4 ;

for (int li_0 = 32768 ; li_0 > 0 ; li_0--) {

l_name_4 = "QQE-" + li_0 ;

ObjectDelete(l_name_4) ;

}

return (0) ;

}

int start() {

int lia_20[] ;

double ld_28 ;

double ld_36 ;

int li_44 ;

chaîne de caractères l_name_48 ;

int li_0 = IndicatorCounted() ;

si (li_0 < 0) retourne (-1) ;

si (li_0 > 0) li_0-- ;

int li_24 = Bars - li_0 ;

int li_unused_12 = Smoothing ;

ArrayCopySeries(lia_20, 5, Symbol(), TimeFrame) ;

int li_4 = 0 ;

int li_8 = 0 ;

while (li_4 < li_24) {

si (Time[li_4] < lia_20[li_8]) li_8++ ;

g_ibuf_76[li_4] = iRSI(NULL, TimeFrame, 14, PRICE_CLOSE, li_8) ;

li_4++ ;

}

li_4 = 0 ;

li_8 = 0 ;

while (li_4 < li_24) {

si (Time[li_4] < lia_20[li_8]) li_8++ ;

g_ibuf_80[li_8] = iMAOnArray(g_ibuf_76, 0, Smoothing, 0, MODE_EMA, li_8) ;

li_4++ ;

}

for (li_4 = 0 ; li_4 < li_24 ; li_4++) {

ld_28 = MathMax(g_ibuf_80[li_4 + 1], g_ibuf_80[li_4]) ;

ld_36 = MathMin(g_ibuf_80[li_4 + 1], g_ibuf_80[li_4]) ;

g_ibuf_96[li_4] = ld_28 - ld_36 ;

}

for (li_4 = 0 ; li_4 < li_24 ; li_4++) g_ibuf_92[li_4] = iMAOnArray(g_ibuf_96, 0, 27, 0, MODE_EMA, li_4) ;

for (li_4 = 0 ; li_4 < li_24 ; li_4++) g_ibuf_100[li_4] = 2.618 * iMAOnArray(g_ibuf_92, 0, 27, 0, MODE_EMA, li_4) ;

for (li_4 = li_24 ; li_4 >= 0 ; li_4--) {

if (g_ibuf_80[li_4] == g_ibuf_84[li_4 + 1]) g_ibuf_84[li_4] = g_ibuf_80[li_4] ;

else {

if (g_ibuf_80[li_4 + 1] < g_ibuf_84[li_4 + 1] && g_ibuf_80[li_4] < g_ibuf_84[li_4 + 1]) g_ibuf_84[li_4] = MathMin(g_ibuf_84[li_4 + 1], g_ibuf_80[li_4] + g_ibuf_100[li_4]) ;

else {

if (g_ibuf_80[li_4 + 1] > g_ibuf_84[li_4 + 1] && g_ibuf_80[li_4] > g_ibuf_84[li_4 + 1]) g_ibuf_84[li_4] = MathMax(g_ibuf_84[li_4 + 1], g_ibuf_80[li_4] - g_ibuf_100[li_4]) ;

else {

si (g_ibuf_80[li_4] > g_ibuf_84[li_4 + 1]) g_ibuf_84[li_4] = g_ibuf_80[li_4] - g_ibuf_100[li_4] ;

sinon g_ibuf_84[li_4] = g_ibuf_80[li_4] + g_ibuf_100[li_4] ;

}

}

}

}

for (li_4 = 0 ; li_4 < li_24 ; li_4++) g_ibuf_104[li_4] = 4.236 * iMAOnArray(g_ibuf_92, 0, 27, 0, MODE_EMA, li_4) ;

for (li_4 = li_24 ; li_4 >= 0 ; li_4--) {

if (g_ibuf_80[li_4] == g_ibuf_88[li_4 + 1]) g_ibuf_88[li_4] = g_ibuf_80[li_4] ;

else {

if (g_ibuf_80[li_4 + 1] < g_ibuf_88[li_4 + 1] && g_ibuf_80[li_4] < g_ibuf_88[li_4 + 1]) g_ibuf_88[li_4] = MathMin(g_ibuf_88[li_4 + 1], g_ibuf_80[li_4] + g_ibuf_104[li_4]) ;

else {

if (g_ibuf_80[li_4 + 1] > g_ibuf_88[li_4 + 1] && g_ibuf_80[li_4] > g_ibuf_88[li_4 + 1]) g_ibuf_88[li_4] = MathMax(g_ibuf_88[li_4 + 1], g_ibuf_80[li_4] - g_ibuf_104[li_4]) ;

else {

si (g_ibuf_80[li_4] > g_ibuf_88[li_4 + 1]) g_ibuf_88[li_4] = g_ibuf_80[li_4] - g_ibuf_104[li_4] ;

sinon g_ibuf_88[li_4] = g_ibuf_80[li_4] + g_ibuf_104[li_4] ;

}

}

}

}

if (gi_344 == Time[0]) return (0) ;

for (li_4 = li_24 - 1 ; li_4 >= 0 ; li_4--) {

if (g_ibuf_80[li_4 + 1] > 50.0 && g_ibuf_80[li_4 + 2] <= 50.0 && FiftyUpDot) {

li_44 = MathRand() + 1 ;

l_name_48 = "QQE-" + li_44 ;

ObjectCreate(l_name_48, OBJ_ARROW, 0, Time[li_4], Low[li_4] - Distance * Point) ;

ObjectSet(l_name_48, OBJPROP_COLOR, FiftyUpColor) ;

ObjectSet(l_name_48, OBJPROP_ARROWCODE, 108) ;