Aide au codage - page 462

 
wranger:
Bonjour mladen, merci de m'avoir orienté dans la bonne direction. Je ne sais pas si ma dernière réponse est passée mais je viens de télécharger celle-ci :

Forex TSD - forum forex - Télécharger Angle of NonLag MA 1.01.mq4

Et cela ressemble à ce que je recherchais.

Cependant, j'ai vu une version antérieure de là qui avait exactement ce que j'avais à l'esprit :

https://www.mql5.com/en/forum/173056/page4 (fichier Forex TSD - forum forex - Télécharger ! !! Angle de la moyenne.mq4 )

Malheureusement, cela ne fonctionne plus pour le mt4.... actuel. Est-il possible de faire une version de la MA sur le graphique de celle-ci ? Forex TSD - forex forum - Télécharger Angle of NonLag MA 1.01.mq4?

wranger

La version mise à jour de "angle of average" compatible avec le nouveau mt4 comme posté ici : https://www.mql5.com/en/forum/173056/page5

 

Bonjour, que dois-je ajouter au code de l'indicateur, si je veux voir le prix qui a déclenché l'alarme dans la fenêtre d'alarme ?

 

Bonjour Mladen,

Je vais te demander une grande faveur ..... Peux-tu s'il te plaît changer ce code en indicateur Mt4 ..... Il est écrit en langage Amibroker ...

Pouvez-vous s'il vous plaît m'aider .... Il peut être changé en bleu, rouge, et gris neutre dans la version histogramme.

Merci beaucoup.

*************************************************************

_SECTION_BEGIN("Elder Impulse") ;

radius = 0.1 * Status("pxheight") ; // obtenir la hauteur en pixels du graphique et utiliser 45% pour le rayon du camembert

textoffset = 0.1 * radius ;

GfxSelectFont("Arial", 9, 500, True ) ;

///////////////////////////////////////////////////

SetChartOptions(0,chartShowArrows|chartShowDates) ;

EnableTextOutput(False) ;

// Paramètre défini par l'utilisateur pour les périodes EMA

EMA_Type = Param("EMA-1, TEMA-2, JMA-3", 2, 1, 3, 1) ;

EMA_prds = Param("EMA_periods", 7, 1, 30, 1) ;

Std_MACD = Param("Standard MACD ? No-0, Yes-1", 1, 0, 1, 1) ;

Plot_fashion = Param("Bar+Arrows-1, Impulse Bars-2", 2, 1, 2, 1) ;

// Permettre à l'utilisateur de définir l'emplacement et la hauteur des rubans hebdomadaires et mensuels

WR_P1 = Param("Emplacement du ruban hebdomadaire", 5.2, -1000, 1000, 0.1) ;

WR_P2 = Param("Hauteur du ruban hebdomadaire", 199, -0.001, 500, 0.1) ;

// Calcul de l'histogramme EMA et MACD

if(EMA_Type == 1)

{

DayEMA = EMA(Close, EMA_prds) ;

}

if (EMA_Type == 2)

{

DayEMA = TEMA(Close, EMA_prds) ;

}

Histogramme = MACD() - Signal() ;

// Déterminez si nous avons une impulsion vers le haut, vers le bas ou aucune impulsion.

Impulse_Up = DayEMA > Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1) ;

Impulse_Down = DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1) ;

Impulse_None = (NOT Impulse_UP) AND (NOT Impulse_Down) ;

// Calculez le MACD hebdomadaire et déterminez s'il est en hausse ou en baisse.

TimeFrameSet(inWeekly) ;

if (Std_MACD == 0)

{

MACD_val = MACD(5, Cool) ;

Signal_val = Signal(5, 8, 5) ;

}

sinon

{

MACD_val = MACD(12, 26) ;

Signal_val = Signal(12, 26, 9) ;

}

Hist_in_w = MACD_val - Signal_val ;

wh_rising = Hist_in_w > Ref(Hist_in_w, -1) ;

wh_falling = Hist_in_w < Ref(Hist_in_w, -1) ;

wh_none = (PAS wh_rising) AND (PAS wh_falling) ;

TimeFrameRestore() ;

// Obtenez maintenant l'histogramme MACD mensuel....

TimeFrameSet(inMonthly) ;

MACD_val = MACD(5, 8) ;

Signal_val = Signal(5, 8, 5) ;

Hist_in_m = MACD_val - Signal_val ;

mh_rising = Hist_in_m > Ref(Hist_in_m, -1) ;

mh_falling = Hist_in_m < Ref(Hist_in_m, -1) ;

TimeFrameRestore() ;

wh_rising = TimeFrameExpand( wh_rising, inWeekly, expandLast ) ;

wh_falling = TimeFrameExpand( wh_falling, inWeekly, expandLast ) ;

wh_none = TimeFrameExpand( wh_none, inWeekly, expandLast) ;

mh_rising = TimeFrameExpand(mh_rising, inMonthly, expandLast) ;

mh_falling = TimeFrameExpand(mh_falling, inMonthly, expandLast) ;

kol = IIf( wh_rising, colorBrightGreen, IIf(wh_falling, colorRed, IIf(wh_none, colorCustom11, colorLightGrey))) ;

mkol = IIf( mh_rising, colorBlue, IIf(mh_falling, colorRed, colorLightGrey)) ;

si (Plot_fashion == 1)

{

}

else

{

bar_kol = IIf(impulse_UP, colorBrightGreen, IIf(impulse_Down, colorRed, colorCustom11)) ;

}

Impulse_State = WriteIf(Impulse_Up, "Bulllish", WriteIf(Impulse_Down, "Bearish", "Neutral")) ;

GfxTextOut( "IMPULSE STATE = " +Impulse_State, textoffset + 0, 30 ) ;

// Définissez la couleur d'arrière-plan de la colonne d'état des impulsions.

Impulse_Col = IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed, colorGrey40)) ;

bars_in_bull = Min(BarsSince(impulse_none), BarsSince(impulse_down)) ;

bars_in_bear = Min(BarsSince(impulse_up), BarsSince(impulse_none)) ;

bars_in_neut = Min(BarsSince(impulse_down), BarsSince(impulse_up)) ;

// Définir une variable unique pour afficher le nombre de barres dans l'état actuel en fonction de ce qui suit

// l'état actuel de l'impulsion - haussier, baissier ou neutre.

bars_in_state = IIf(Impulse_Up, bars_in_bull, IIf(Impulse_down, bars_in_bear, bars_in_neut)) ;

//Pivot hebdomadaire

k1=-1 ;

SetChartBkColor(16 ) ;

k=IIf(ParamList("select type", "daily|next day")=="daily",-1,0) ;

k1=-1 ;

TimeFrameSet(inDaily) ;

day_h= LastValue(Ref(H,K)) ;

day_l= LastValue(Ref(L,K)) ;

jour_c= LastValue(Ref(C,K)) ;

TimeFrameRestore() ;

// jour

WriteVal( StochK(39) - StochK(12) ) ;

GfxSelectFont("Arial", 8 ) ;

_SECTION_END() ;

Merci encore une fois...

 
rpasupathy:
HI Mladen,

Je vais te demander une grande faveur ..... Peux-tu s'il te plaît changer ce code en indicateur Mt4 ..... Il est écrit en langage Amibroker ...

Peux-tu m'aider s'il te plaît .... Il peut être changé en bleu, rouge, et gris neutre dans la version histogramme.

Merci beaucoup.

*************************************************************

_SECTION_BEGIN("Elder Impulse") ;

radius = 0.1 * Status("pxheight") ; // obtenir la hauteur en pixels du graphique et utiliser 45% pour le rayon du camembert

textoffset = 0.1 * radius ;

GfxSelectFont("Arial", 9, 500, True ) ;

///////////////////////////////////////////////////

SetChartOptions(0,chartShowArrows|chartShowDates) ;

EnableTextOutput(False) ;

// Paramètre défini par l'utilisateur pour les périodes EMA

EMA_Type = Param("EMA-1, TEMA-2, JMA-3", 2, 1, 3, 1) ;

EMA_prds = Param("EMA_periods", 7, 1, 30, 1) ;

Std_MACD = Param("Standard MACD ? No-0, Yes-1", 1, 0, 1, 1) ;

Plot_fashion = Param("Bar+Arrows-1, Impulse Bars-2", 2, 1, 2, 1) ;

// Permettre à l'utilisateur de définir l'emplacement et la hauteur des rubans hebdomadaires et mensuels

WR_P1 = Param("Emplacement du ruban hebdomadaire", 5.2, -1000, 1000, 0.1) ;

WR_P2 = Param("Hauteur du ruban hebdomadaire", 199, -0.001, 500, 0.1) ;

// Calcul de l'histogramme EMA et MACD

if(EMA_Type == 1)

{

DayEMA = EMA(Close, EMA_prds) ;

}

if (EMA_Type == 2)

{

DayEMA = TEMA(Close, EMA_prds) ;

}

Histogramme = MACD() - Signal() ;

// Déterminez si nous avons une impulsion vers le haut, vers le bas ou aucune impulsion.

Impulse_Up = DayEMA > Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1) ;

Impulse_Down = DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1) ;

Impulse_None = (NOT Impulse_UP) AND (NOT Impulse_Down) ;

// Calculez le MACD hebdomadaire et déterminez s'il est en hausse ou en baisse.

TimeFrameSet(inWeekly) ;

if (Std_MACD == 0)

{

MACD_val = MACD(5, Cool) ;

Signal_val = Signal(5, 8, 5) ;

}

sinon

{

MACD_val = MACD(12, 26) ;

Signal_val = Signal(12, 26, 9) ;

}

Hist_in_w = MACD_val - Signal_val ;

wh_rising = Hist_in_w > Ref(Hist_in_w, -1) ;

wh_falling = Hist_in_w < Ref(Hist_in_w, -1) ;

wh_none = (PAS wh_rising) AND (PAS wh_falling) ;

TimeFrameRestore() ;

// Obtenez maintenant l'histogramme MACD mensuel....

TimeFrameSet(inMonthly) ;

MACD_val = MACD(5, 8) ;

Signal_val = Signal(5, 8, 5) ;

Hist_in_m = MACD_val - Signal_val ;

mh_rising = Hist_in_m > Ref(Hist_in_m, -1) ;

mh_falling = Hist_in_m < Ref(Hist_in_m, -1) ;

TimeFrameRestore() ;

wh_rising = TimeFrameExpand( wh_rising, inWeekly, expandLast ) ;

wh_falling = TimeFrameExpand( wh_falling, inWeekly, expandLast ) ;

wh_none = TimeFrameExpand( wh_none, inWeekly, expandLast) ;

mh_rising = TimeFrameExpand(mh_rising, inMonthly, expandLast) ;

mh_falling = TimeFrameExpand(mh_falling, inMonthly, expandLast) ;

kol = IIf( wh_rising, colorBrightGreen, IIf(wh_falling, colorRed, IIf(wh_none, colorCustom11, colorLightGrey))) ;

mkol = IIf( mh_rising, colorBlue, IIf(mh_falling, colorRed, colorLightGrey)) ;

si (Plot_fashion == 1)

{

}

else

{

bar_kol = IIf(impulse_UP, colorBrightGreen, IIf(impulse_Down, colorRed, colorCustom11)) ;

}

Impulse_State = WriteIf(Impulse_Up, "Bulllish", WriteIf(Impulse_Down, "Bearish", "Neutral")) ;

GfxTextOut( "IMPULSE STATE = " +Impulse_State, textoffset + 0, 30 ) ;

// Définissez la couleur d'arrière-plan de la colonne d'état des impulsions.

Impulse_Col = IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed, colorGrey40)) ;

bars_in_bull = Min(BarsSince(impulse_none), BarsSince(impulse_down)) ;

bars_in_bear = Min(BarsSince(impulse_up), BarsSince(impulse_none)) ;

bars_in_neut = Min(BarsSince(impulse_down), BarsSince(impulse_up)) ;

// Définir une variable unique pour afficher le nombre de barres dans l'état actuel en fonction de ce qui suit

// l'état actuel de l'impulsion - haussier, baissier ou neutre.

bars_in_state = IIf(Impulse_Up, bars_in_bull, IIf(Impulse_down, bars_in_bear, bars_in_neut)) ;

//Pivot hebdomadaire

k1=-1 ;

SetChartBkColor(16 ) ;

k=IIf(ParamList("select type", "daily|next day")=="daily",-1,0) ;

k1=-1 ;

TimeFrameSet(inDaily) ;

day_h= LastValue(Ref(H,K)) ;

day_l= LastValue(Ref(L,K)) ;

jour_c= LastValue(Ref(C,K)) ;

TimeFrameRestore() ;

// jour

WriteVal( StochK(39) - StochK(12) ) ;

GfxSelectFont("Arial", 8 ) ;

_SECTION_END() ;

Merci encore une fois...

Vous pouvez trouver une version de l'impulsion de l'aîné ici : https://www.mql5.com/en/forum/178416/page20

Ou vous pouvez consulter cette liste : Elder impluse puisqu'il y a déjà plusieurs versions de cet indicateur.

 
marley60:
bonjour, que dois-je ajouter au code de l'indicateur, si je veux voir le prix qui a déclenché l'alarme dans la fenêtre d'alarme ?

désolé, peut-être que alarm n'est pas anglais et que ça devrait être "alert".

ou est-ce que j'ai fait quelque chose de mal, parce que les dernières fois que j'ai demandé quelque chose, je n'ai reçu aucune réponse ?

 
marley60:
désolé, peut être que alarm n'est pas anglais et qu'il faudrait dire "alert". ou j'ai fait quelque chose de mal, parce que les dernières fois que j'ai demandé quelque chose je n'ai pas reçu de réponses ?

Ajouter quelque chose comme DoubleToStr(PriceThatTriggered,_Digits) à l'alerte (alertText1,alertText2,...)

 

Bonjour,

J'essaie de faire un indicateur qui est basé sur le haut, le bas et la clôture d'un autre indicateur. Les données de clôture sont naturellement disponibles mais comment puis-je capturer la valeur la plus haute et la plus basse que l'indicateur a fait pendant une barre spécifique ? J'ai déjà cherché sur internet et j'ai trouvé des fonctions comme iHigh() et iHighest() mais elles semblent n'autoriser que des paramètres comme NULL (symbole actuel). Il semble y avoir quelque chose comme OnCalculate() aussi mais je ne suis pas sûr si les paramètres high[], low[] etc donnent le haut de l'indicateur ou le symbole. Quelqu'un pourrait-il me dire si mt4 a un moyen de mesurer le haut et le bas des données de l'indicateur ?

Cordialement,

 
mrcodix:
Bonjour,

J'essaie de créer un indicateur qui est basé sur le haut, le bas et la clôture d'un autre indicateur. Les données de clôture sont naturellement disponibles mais comment puis-je capturer la valeur la plus haute et la plus basse que l'indicateur a fait pendant une barre spécifique ? J'ai déjà cherché sur Internet et j'ai trouvé des fonctions comme iHigh() et iHighest() mais elles semblent n'autoriser que des paramètres comme NULL (symbole actuel). Il semble y avoir quelque chose comme OnCalculate() aussi mais je ne suis pas sûr si les paramètres high[], low[] etc donnent le haut de l'indicateur ou le symbole. Quelqu'un pourrait-il me dire si mt4 a un moyen de mesurer le haut et le bas des données de l'indicateur ?

Cordialement,

high[] et low[] donnent les prix élevés et les prix bas.

Vous devez utiliser ArrayMaximum() et ArrayMinimum() pour trouver la valeur la plus haute et la plus basse d'un indicateur (d'abord vous devez stocker les valeurs de l'indicateur dans un tampon).

 
mladen:
high[] et low[] donnent les prix les plus hauts et les plus bas Vous devez utiliser ArrayMaximum() et ArrayMinimum() pour trouver la valeur la plus haute et la plus basse d'un indicateur (vous devez d'abord stocker les valeurs de l'indicateur dans un tampon).

Salut mladen,

Est-ce que ArrayMaximum() stocke la valeur maximale par barre ou la valeur maximale du tableau entier ? Parce que j'ai besoin de la valeur maximale et minimale pour chaque barre ou élément successif du tableau.

Bien à vous,

 

Bonjour,

ArrayMaximum - Documentation MQL4

J'ai fait des recherches et il semble que cette fonction renvoie la valeur la plus élevée de toutes les valeurs du tableau. Ce que je recherche, c'est une fonction qui vous indique la valeur la plus élevée atteinte par un indicateur dans une barre de temps. Comment puis-je enregistrer cela ? Par exemple, l'indicateur X forme la barre la plus récente. Il passe de 3 à 5 à 4 à 7 et ensuite, lorsque la barre de l'intervalle de temps se ferme, il termine à la valeur 2. La valeur la plus élevée qu'il a atteinte est 7. Comment puis-je enregistrer cette valeur ?

Raison: