Moyenne mobile - page 105

 
person77:
Fantastique - fonctionne très bien mladen ! Merci beaucoup.

Quelques demandes, si cela ne pose pas trop de problèmes :

1. Alors que les 4 MA sont toutes synchronisées, le prix recule et touche une MA désignée.

(dans ce cas, la deuxième MA la plus courte, la 15 EMA rouge), je voudrais qu'une flèche et une alerte soient produites.

Je passerais ensuite au cadre temporel plus petit de 1M pour rechercher un signal de vente à découvert.

J'insère des lignes horizontales et verticales pour qu'il soit facile de repérer où regarder (point A) sur le backtesting de l'échelle de temps 1M.

2. Puis-je demander à l'indy 4 ma synch de ne rechercher que deux ou trois ma synch afin de montrer la barre de l'histogramme ? (veuillez voir la pièce jointe sur les conditions 1m pour savoir ce que j'essaie de faire ici)

personne77

J'ai bien peur que cet indicateur ne soit pas conçu ou prévu pour montrer les touches de prix. Je suis également certain qu'il existe déjà de bons indicateurs qui font exactement ce genre de travail.

En ce qui concerne la version 2 et 3 mas : remplacez simplement le "" dans le code où vous voyez la comparaison qui va comme "if (ma1<ma2 && ma2<3" ... et ainsi de suite, par "=" et ensuite mettez 2 mas aux mêmes valeurs pour 3 mas différents ou 2 paires de mas aux mêmes valeurs pour avoir 2 mas affichés par l'indicateur.

 

mladen

Merci pour la suggestion.

Mon codage est à peu près inutile !

J'ai changé les > et < en = mais j'ai eu des erreurs lors de la compilation.

Que dois-je faire différemment ?

//------------------------------------------------------------------

#property copyright "www.forex-tsd.com"

#property link "www.forex-tsd.com"

//------------------------------------------------------------------

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 DarkOrange

#property indicator_width1 2

#property indicator_width2 2

#property indicator_minimum 0

#property indicator_maximum 1

extern int Ma1Period = 5 ;

extern int Ma1Price = PRICE_CLOSE ;

extern int Ma1Method = MODE_EMA ;

extern int Ma1Shift = 0 ;

extern int Ma2Period = 15 ;

extern int Ma2Price = PRICE_CLOSE ;

extern int Ma2Method = MODE_EMA ;

extern int Ma2Shift = 0 ;

extern int Ma3Period = 28 ;

extern int Ma3Price = PRICE_CLOSE ;

extern int Ma3Method = MODE_EMA ;

extern int Ma3Shift = 0 ;

extern int Ma4Period = 45 ;

extern int Ma4Price = PRICE_CLOSE ;

extern int Ma4Method = MODE_EMA ;

extern int Ma4Shift = 0 ;

//

//

//

//

//

double histu[] ;

double histd[] ;

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int init()

{

SetIndexBuffer(0,histu) ; SetIndexStyle(0,DRAW_HISTOGRAM) ;

SetIndexBuffer(1,histd) ; SetIndexStyle(1,DRAW_HISTOGRAM) ;

return(0) ;

}

int deinit() { return(0) ; }

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int start()

{

int counted_bars = IndicatorCounted() ;

si (counted_bars < 0) return(-1) ;

si (counted_bars > 0) counted_bars-- ;

int limit = MathMin(Bars-counted_bars,Bars-1) ;

//

//

//

//

//

for(int i = limite ; i >=0 ; i--)

{

double ma1 = iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1Price,i) ;

double ma2 = iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2Price,i) ;

double ma3 = iMA(NULL,0,Ma3Period,Ma3Shift,Ma3Method,Ma3Price,i) ;

double ma4 = iMA(NULL,0,Ma4Period,Ma4Shift,Ma4Method,Ma4Price,i) ;

histu = EMPTY_VALUE;

histd = EMPTY_VALUE ;

si(ma1=ma2 && ma2=ma3 && ma3>ma4) histu = 1 ;

si (ma1=ma2 && ma2=ma3 && ma3<ma4) histd = 1 ;

}

return(0) ;

}

 

Bonjour

qu'en est-il du graphique renko 2min utilisant la MA ?

merci d'avance

 
person77:
mladen

Merci pour la suggestion.

Mon codage est à peu près inutile !

J'ai changé les > et < en = mais j'ai eu des erreurs lors de la compilation.

Que dois-je faire différemment ?

//------------------------------------------------------------------

#property copyright "www.forex-tsd.com"

#property link "www.forex-tsd.com"

//------------------------------------------------------------------

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 DarkOrange

#property indicator_width1 2

#property indicator_width2 2

#property indicator_minimum 0

#property indicator_maximum 1

extern int Ma1Period = 5 ;

extern int Ma1Price = PRICE_CLOSE ;

extern int Ma1Method = MODE_EMA ;

extern int Ma1Shift = 0 ;

extern int Ma2Period = 15 ;

extern int Ma2Price = PRICE_CLOSE ;

extern int Ma2Method = MODE_EMA ;

extern int Ma2Shift = 0 ;

extern int Ma3Period = 28 ;

extern int Ma3Price = PRICE_CLOSE ;

extern int Ma3Method = MODE_EMA ;

extern int Ma3Shift = 0 ;

extern int Ma4Period = 45 ;

extern int Ma4Price = PRICE_CLOSE ;

extern int Ma4Method = MODE_EMA ;

extern int Ma4Shift = 0 ;

//

//

//

//

//

double histu[] ;

double histd[] ;

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int init()

{

SetIndexBuffer(0,histu) ; SetIndexStyle(0,DRAW_HISTOGRAM) ;

SetIndexBuffer(1,histd) ; SetIndexStyle(1,DRAW_HISTOGRAM) ;

return(0) ;

}

int deinit() { return(0) ; }

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int start()

{

int counted_bars = IndicatorCounted() ;

si (counted_bars < 0) return(-1) ;

si (counted_bars > 0) counted_bars-- ;

int limit = MathMin(Bars-counted_bars,Bars-1) ;

//

//

//

//

//

for(int i = limite ; i >=0 ; i--)

{

double ma1 = iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1Price,i) ;

double ma2 = iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2Price,i) ;

double ma3 = iMA(NULL,0,Ma3Period,Ma3Shift,Ma3Method,Ma3Price,i) ;

double ma4 = iMA(NULL,0,Ma4Period,Ma4Shift,Ma4Method,Ma4Price,i) ;

histu = EMPTY_VALUE ;

histd = EMPTY_VALUE ;

si(ma1=ma2 && ma2=ma3 && ma3>ma4) histu = 1 ;

si (ma1=ma2 && ma2=ma3 && ma3<ma4) histd = 1 ;

}

return(0) ;

}

personne77

Vous auriez dû remplacer "<" par "" avec ">=" (pas seulement "=")

_____________________

PS : j'ai oublié de dire que 2 MAs sont toujours synchronisées

 

Cela fonctionne parfaitement !

Merci mladen.

 

Moyenne mobile adaptative de Kaufman

Moyenne mobile adaptative de Kaufman (par Alexander Gettinger)

La moyenne mobile adaptative de Kaufman (KAMA) a été créée par Perry Kaufman et présentée pour la première fois dans son livre Smarter Trading (1995).

Formulas:

KAMA = KAMA+sc*(Prix-KAMA), où

sc = (er*0,6015+0,0645)*(er*0,6015+0,0645),

er = Abs(Prix-Prix)/Somme1,

Sum1 = Somme(Abs(Prix-Prix)) de (i-Longueur+1) à i.

Dossiers :
kama.mq4  2 kb
 

Deux versions de la régression linéaire (du même auteur)

 

Kaufman AMA pré-filtré

Je prépare la Kaufman AMA (moyenne mobile adaptative) pour d'autres choses, et voici une version qui a une façon très simplifiée d'utiliser (le calcul de l'ama est devenu une fonction maintenant). Il peut aussi avoir un prix par filtrage (au lieu d'utiliser le prix brut, le prix filtré peut être utilisé (pour activer le filtrage, mettez le PriceFilter à 1).

Dossiers :
 

MA28 (par Alexander Gettinger)

Dossiers :
ma28.mq4  4 kb
ma28.png  83 kb
 

serait-il possible, s'il vous plaît, de rendre l'indicateur multitimeframe ? merci

mladen:
Je prépare l'AMA de Kaufman (moyenne mobile adaptative) pour d'autres choses, et voici une version qui a une façon très simplifiée d'utiliser (le calcul de l'ama est devenu une fonction maintenant). Il peut aussi avoir le prix par filtrage (au lieu d'utiliser le prix brut, le prix filtré peut être utilisé (pour activer le filtrage, mettez le PriceFilter à 1).