Modifier un indicateur pour qu'il signale qu'une seule fois

Présentation, Développement, Améliorations et Ressources pour les Stratégies de Trading Automatique.

Modérateur : Administrateurs

Message
Auteur
stephane2.0
Membre assidu
Messages : 332
Inscription : 10 oct. 2011, 21:51

Modifier un indicateur pour qu'il signale qu'une seule fois

#1 Message par stephane2.0 »

Bonjour,

J'ai trouvé un indicateur sympa qui signale le croisement de 2 moyennes mobiles. Le soucis c'est qu'il le signale à chaque croisement.

Quelqu'un serait-il le modifier pour qu'il ne signale que en un croisement franc ?

Merci d'avance. :)

Code : Tout sélectionner

//+------------------------------------------------------------------+
//| croisement de moyenne mobile.mq4 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Croisement moyenne mobile.mq4 |
//| By Zed |
//| |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

//---- input parameters
extern int fastperiod=12;
extern int slowperiod=36;
extern bool EnableAlert=true;
//---- buffers
double val1[];
double val2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
IndicatorBuffers(2);

SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,234);
SetIndexBuffer(0,val1);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,233);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| ema cross |
//+------------------------------------------------------------------+
int start()
{
int i,shift,counted_bars=IndicatorCounted();
double fastEma, slowEma,fastEmaPrev, slowEmaPrev;
bool IsLong=false;
bool IsShort=false;
int tendance;
for (shift = counted_bars; shift>=0; shift--)
{
fastEma = iMA(NULL,0,fastperiod,0,MODE_SMA,PRICE_CLOSE,shift);
slowEma = iMA(NULL,0,slowperiod,0,MODE_SMA,PRICE_CLOSE,shift);
fastEmaPrev = iMA(NULL,0,fastperiod,0,MODE_SMA,PRICE_CLOSE,shift+1);
slowEmaPrev = iMA(NULL,0,slowperiod,0,MODE_SMA,PRICE_CLOSE,shift+1);
val1[shift]=0;
val2[shift]=0;
if ((fastEma>slowEma)&&(fastEmaPrev<slowEmaPrev))
{
val1[shift]=0;
val2[shift]=Low[shift]-10*Point;
if ((EnableAlert)&&(shift==0))
{
Alert("Croisement à la Hausse");
}
}
if ((fastEma<slowEma)&&(fastEmaPrev>slowEmaPrev))
{
val1[shift]=High[shift]+10*Point;
val2[shift]=0;
if ((EnableAlert)&&(shift==0))
{
Alert("Croisement à la baisse");
}
}

}
return(0);
}

//+------------------------------------------------------------------+ 

Teal'C
Membre assidu
Messages : 314
Inscription : 10 mai 2011, 13:43

Re: Modifier un indicateur pour qu'il signale qu'une seule fois

#2 Message par Teal'C »

Salut,

Tu entends quoi par signal franc?

Si tu as pas de définition précise personne ne pourra t'aider à le modifier....

Avatar de l’utilisateur
AUTOFOREX
Membre actif et régulier
Messages : 97
Inscription : 05 janv. 2012, 14:04

Re: Modifier un indicateur pour qu'il signale qu'une seule fois

#3 Message par AUTOFOREX »

Bonjour, Tealc a raison. Qu’appelles tu un croisement franc ? Parfois les moyennes mobiles tricotent un peu et tu peux en effet avoir des signaux intempestifs ! :)
[url]http://www.autoforex.fr/[/url]
[img]http://www.autoforex.fr/wp-content/uploads/2013/10/logo-new-site-50percent.gif[/img]
[url=http://www.myfxbook.com/members/babs][img]http://widgets.myfxbook.com/widget?id=528537&type=2&color=red[/img][/url]
[url=http://www.myfxbook.com/members/babs][img]http://widgets.myfxbook.com/widget?id=698375&type=2&color=red[/img][/url]

stephane2.0
Membre assidu
Messages : 332
Inscription : 10 oct. 2011, 21:51

Re: Modifier un indicateur pour qu'il signale qu'une seule fois

#4 Message par stephane2.0 »

Bonjour,

Disons que je veux que la condition, la valeur du croisement soit pris en compte qu'au moment de la clôture de chaque bougie (ou dès le démarrage de la suivante).

Merci. :wink:

stephane2.0
Membre assidu
Messages : 332
Inscription : 10 oct. 2011, 21:51

Re: Modifier un indicateur pour qu'il signale qu'une seule fois

#5 Message par stephane2.0 »

stephane2.0 a écrit :Bonjour,

Disons que je veux que la condition, la valeur du croisement soit pris en compte qu'au moment de la clôture de chaque bougie (ou dès le démarrage de la suivante).

Merci. :wink:
Je ne suis toujours pas assez clair ? :)

anthony
Membre actif et régulier
Messages : 53
Inscription : 10 août 2012, 23:08

Re: Modifier un indicateur pour qu'il signale qu'une seule fois

#6 Message par anthony »

Pas comprit désole , soit plus précis merci ;)

Teal'C
Membre assidu
Messages : 314
Inscription : 10 mai 2011, 13:43

Re: Modifier un indicateur pour qu'il signale qu'une seule fois

#7 Message par Teal'C »

De ce que j'ai pu lire du code c'est déjà pris en compte... PRICE_CLOSE

Donc pas besoin de changer, sinon si ce n'est que cela, c'est déjà dans le code.

Des signaux systématiques restent des signaux systématiques à toi d'intégrer cela dans ton plan de trading pour que ça soit cohérent.

Et cela personne ne peut le faire pour toi...

Bonne chance de tout de même.

Répondre