![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonjour,
J'ai besoin de deux indicateurs, l'un est le wpr(Williams' Percent Range) et son ma (wpr avec ma), l'autre est le cmo (chande momentum osc.).
et son ma (cmo avec ma),
Quelqu'un peut-il m'aider ?
Merci
Salut,
j'ai besoin de deux indicateurs, l'un est le wpr(Williams' Percent Range) et son ma (wpr avec ma), l'autre est le cmo (chande momentum osc.)
et son ma (cmo avec ma),
quelqu'un peut-il m'aider ?
Mercianonimm
Voici un WPR avec une moyenne (ma)
anonimm Voici un WPR avec une moyenne (ma)
Merci Mladen,
J'essaie d'utiliser l'indicateur cmo's ma mais j'obtiens une erreur (fonction iCMO non définie)... pouvez-vous m'aider ?
//---- paramètres de l'indicateur
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Silver
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
//---- paramètres de l'indicateur
extern int CMO_Period=21 ;
extern int MA_Period=14 ;
extern string m = "--Moving Average Types--" ;
extern string m0 = " 0 = SMA" ;
extern string m1 = " 1 = EMA" ;
extern string m2 = " 2 = SMMA" ;
extern string m3 = " 3 = LWMA" ;
extern int MA_Type=1 ;
//---- tampons d'indicateurs
double CMO_Buffer[] ;
double MA_Buffer[] ;
double iCMO[] ;
int MA_Mode ;
string strMAType ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- paramètres de dessin
SetIndexStyle(0,DRAW_LINE) ;
SetIndexStyle(1,DRAW_LINE) ;
SetIndexDrawBegin(1,CMO_Period) ;
IndicatorDigits(Digits+1) ;
//---- mappage des tampons d'indicateurs
SetIndexBuffer(0,CMO_Buffer) ;
SetIndexBuffer(1,MA_Buffer) ;
//---- nom de la DataWindow et étiquette de la sous-fenêtre de l'indicateur
switch (MA_Type)
{
cas 1 : strMAType="EMA" ; MA_Mode=MODE_EMA ; break ;
cas 2 : strMAType="SMMA" ; MA_Mode=MODE_SMMA ; break ;
cas 3 : strMAType="LWMA" ; MA_Mode=MODE_LWMA ; pause ;
par défaut : strMAType="SMA" ; MA_Mode=MODE_SMA ; break ;
}
IndicatorShortName( "CMO" + " (" + CMO_Period + ") " + " : " + strMAType+ " (" +MA_Period + ") ") ;
SetIndexLabel(0, "CMO" + " (" +CMO_Period + ") ") ;
SetIndexLabel(1,strMAType+ " (" + MA_Period + ") ") ;
//---- initialisation terminée
return(0) ;
}
//+------------------------------------------------------------------+
//| Convergence/Divergence des Moyennes Mobiles |
//+------------------------------------------------------------------+
int start()
{
int limite ;
int counted_bars=IndicatorCounted() ;
//---- dernière barre comptée sera recomptée
if(counted_bars>0) counted_bars-- ;
limit=Bars-counted_bars ;
//---- CMO compté dans le 1er tampon
for(int i=0 ; i<limit ; i++)
CMO_Buffer=iCMO(NULL,0,CMO_Period,i) ;
//---- ligne MA comptée dans le 2ème tampon
for(i=0 ; i<limit ; i++)
MA_Buffer=iMAOnArray(CMO_Buffer,Bars,MA_Period,0,MA_Mode,i) ;
//---- terminé
retour(0) ;
}
//+------------------------------------------------------------------+
Mladen, pouvez-vous m'aider à trouver les erreurs?
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color2 Red
//----
double UpperBuf[];
double UpperBuf1[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void init()
{
SetIndexStyle(0, DRAW_NONE, STYLE_SOLID, 1);
//----
SetIndexDrawBegin(0, N);
//----
SetIndexBuffer(0, UpperBuf);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);
//----
SetIndexDrawBegin(1, N);
//----
SetIndexBuffer(1, UpperBuf1);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void deinit()
{
//----
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void start()
{
int counted = IndicatorCounted();
//----
if(counted < 0)
return (-1);
//----
if(counted > 0)
counted--;
int limit = Bars - counted;
//----
for(int i = 0; i < limit; i++)
{
UpperBuf= ((High/Close)-34)*Volume;
UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);
}
}
//+------------------------------------------------------------------+
Merci Mladen,
J'essaie d'utiliser l'indicateur cmo's ma mais j'obtiens une erreur (fonction iCMO non définie)... pouvez-vous m'aider ?
//---- paramètres de l'indicateur
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Silver
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
//---- paramètres de l'indicateur
extern int CMO_Period=21 ;
extern int MA_Period=14 ;
extern string m = "--Moving Average Types--" ;
extern string m0 = " 0 = SMA" ;
extern string m1 = " 1 = EMA" ;
extern string m2 = " 2 = SMMA" ;
extern string m3 = " 3 = LWMA" ;
extern int MA_Type=1 ;
//---- tampons d'indicateurs
double CMO_Buffer[] ;
double MA_Buffer[] ;
double iCMO[] ;
int MA_Mode ;
string strMAType ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- paramètres de dessin
SetIndexStyle(0,DRAW_LINE) ;
SetIndexStyle(1,DRAW_LINE) ;
SetIndexDrawBegin(1,CMO_Period) ;
IndicatorDigits(Digits+1) ;
//---- mappage des tampons d'indicateurs
SetIndexBuffer(0,CMO_Buffer) ;
SetIndexBuffer(1,MA_Buffer) ;
//---- nom de la DataWindow et étiquette de la sous-fenêtre de l'indicateur
switch (MA_Type)
{
cas 1 : strMAType="EMA" ; MA_Mode=MODE_EMA ; break ;
cas 2 : strMAType="SMMA" ; MA_Mode=MODE_SMMA ; break ;
cas 3 : strMAType="LWMA" ; MA_Mode=MODE_LWMA ; pause ;
par défaut : strMAType="SMA" ; MA_Mode=MODE_SMA ; break ;
}
IndicatorShortName( "CMO" + " (" + CMO_Period + ") " + " : " + strMAType+ " (" +MA_Period + ") ") ;
SetIndexLabel(0, "CMO" + " (" +CMO_Period + ") ") ;
SetIndexLabel(1,strMAType+ " (" + MA_Period + ") ") ;
//---- initialisation terminée
return(0) ;
}
//+------------------------------------------------------------------+
//| Convergence/Divergence des Moyennes Mobiles |
//+------------------------------------------------------------------+
int start()
{
int limite ;
int counted_bars=IndicatorCounted() ;
//---- dernière barre comptée sera recomptée
if(counted_bars>0) counted_bars-- ;
limit=Bars-counted_bars ;
//---- CMO comptée dans le 1er tampon
for(int i=0 ; i<limit ; i++)
CMO_Buffer=iCMO(NULL,0,CMO_Period,i) ;
//---- ligne MA comptée dans le 2ème tampon
for(i=0 ; i<limit ; i++)
MA_Buffer=iMAOnArray(CMO_Buffer,Bars,MA_Period,0,MA_Mode,i) ;
//---- terminé
retour(0) ;
}
//+------------------------------------------------------------------+Et voilà
PS : il s'agit d'une version autonome, pas besoin de la cmo.
Mladen, pouvez-vous m'aider à trouver les erreurs ?
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color2 Red
//----
double UpperBuf[];
double UpperBuf1[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void init()
{
SetIndexStyle(0, DRAW_NONE, STYLE_SOLID, 1);
//----
SetIndexDrawBegin(0, N);
//----
SetIndexBuffer(0, UpperBuf);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);
//----
SetIndexDrawBegin(1, N);
//----
SetIndexBuffer(1, UpperBuf1);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void deinit()
{
//----
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void start()
{
int counted = IndicatorCounted();
//----
if(counted < 0)
return (-1);
//----
if(counted > 0)
counted--;
int limit = Bars - counted;
//----
for(int i = 0; i < limit; i++)
{
UpperBuf= ((High/Close)-34)*Volume;
UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);
}
}
//+------------------------------------------------------------------+
k3rn3l
Essayez comme ceci :
#property indicator_buffers 1
#property indicator_color1 Red
double UpperBuf[];
double UpperBuf1[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void init()
{
IndicatorBuffers(2);
SetIndexBuffer(0, UpperBuf1);
SetIndexBuffer(1, UpperBuf);
}
void deinit() {}
void start()
{
int counted = IndicatorCounted();
if(counted < 0) return (-1);
if(counted > 0) counted--;
int limit = Bars - counted;
for(int i = 0; i < limit; i++)
if (Close!=0)
UpperBuf= ((High/Close)-34)*Volume;
else UpperBuf= 0;
for( i = 0; i < limit; i++) UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);
}Cher Mladen ;
Merci encore pour les indices wpr ma et cmo ma. Supposons que pour le premier indicateur je fixe le wpr per à a, le ma per à b, et pour le deuxième indicateur la gamme cmo à c et le ma per à d. Je voudrais acheter quand le wpr croise son ma (alors que le wpr>niveau x) et le cmo croise son ma (alors que le cmo>niveau y) à LA MÊME MINUTE/BAR. (c'est important, deux conditions doivent se produire en même temps), et vendre les conditions inverses.
est-ce possible ?![](https://c.mql5.com/forextsd/smiles/smile.png)
Cher Mladen ;
Merci encore pour les indices wpr ma et cmo ma. Supposons que pour le premier indicateur je fixe le wpr per à a, le ma per à b, et pour le second indicateur la gamme cmo à c et le ma per à d. Je voudrais acheter quand le wpr traverse son ma (alors que le wpr>niveau x) et le cmo traverse son ma (alors que le cmo>niveau y) à LA MÊME MINUTE/BAR. (c'est important, deux conditions doivent se produire en même temps), et vendre les conditions inverses.
Est-ce possible ?Oui
c'est possible
Utilisez iCustom() pour vérifier les conditions que vous recherchez et vous pouvez combiner les conditions de n'importe quel nombre d'indicateurs personnalisés que vous utilisez en un seul signal.
Quelqu'un peut-il m'aider à réparer cet indicateur pour plus de 950 barres de comptage ?
Quelqu'un peut-il m'aider à réparer cet indicateur pour plus de 950 barres de comptage ?
Essayez-le