Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Aide pour alerte sonore

  • hansticool

    bonjour a tous, pourriez vous s'il vous plait m'aider à stabiliser mon alertes sonore et visuel!? j'ai écrit un petit code qui me donne des signaux de trading mais a chaque tic le code emet un signal sonore(tres embetant). aidez moi sil vous plait à le rendre stable! Merci

    Code
    //+------------------------------------------------------------------+ //| test0.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #property strict extern bool SoundAlert = TRUE; extern bool EmailAlert = FALSE; double ema21_M15; double ema50_M15; double macd_H1; double macd_signal_H1; //+------------------------------------------------------------------+ //| indicator program start function | //+------------------------------------------------------------------+ int start() { //--- //+------------------------------------------------------------------+ //| acquisition des indicateurs //|------------------------------------------------------------------+ ema21_M15=iMA(NULL, PERIOD_M15, 21, 0, MODE_EMA, PRICE_CLOSE, 0); ema50_M15=iMA(NULL, PERIOD_M15, 50, 0, MODE_EMA, PRICE_CLOSE, 0); macd_H1=iMACD(NULL,PERIOD_H1,5,35,5,PRICE_CLOSE,MODE_MAIN,0); macd_signal_H1=iMACD(NULL,PERIOD_H1,5,35,5,PRICE_CLOSE,MODE_SIGNAL,0); //---- vente if (ema21_M15<ema50_M15 && macd_H1<macd_signal_H1 ) { if( SoundAlert ) Alert (Symbol()," M",PERIOD_H1, " signal d'entrée de vente "); } //---- achat if(ema21_M15>ema50_M15 && macd_H1>macd_signal_H1 ) { if( SoundAlert ) Alert (Symbol()," M",PERIOD_H1, " signal d'entrée d'achat "); } return (0); } //+------------------------------------------------------------------+
    Modifié le 2014-08-11 15:55:59 par AliX : [code] [/code]
  • B0gs67

    Salut,

    Ton code est appelé à chaque nouveau tick.
    Il est donc normal qu'il te remonte tes alertes à chaque tick quand tes conditions sont respectées.
    Tu peux compter le nombre de barres puis à chaque nouvelle barre exécuter tes conditions, si tu ne souhaites pas l'avoir pour chaque tick.

    De plus tu prends un shift de 0, donc c'est l'état de ton indicateur à l'instant t. Ceci peut changer jusqu'à la fin de ta bougie.
    A toi de voir s'il n'est pas préférable d'appliquer ton test à l'ouverture d'une bougie, avec un shift de 1 pour voir l'état à la clôture de ta dernière bougie.

    Un signal en général compare un état à un autre. Par exemple coupure de 2 MM. Il faut alors vérifier ton état avant coupure et après coupure :
    Code
    ema21_M15=iMA(NULL, PERIOD_M15, 21, 0, MODE_EMA, PRICE_CLOSE, 1); ema21_M15_shift=iMA(NULL, PERIOD_M15, 21, 0, MODE_EMA, PRICE_CLOSE, 2); ema50_M15=iMA(NULL, PERIOD_M15, 50, 0, MODE_EMA, PRICE_CLOSE, 1); ema50_M15=iMA(NULL, PERIOD_M15, 50, 0, MODE_EMA, PRICE_CLOSE, 2); if (ema21_M15_shift<ema50_M15_shift && ema21_M15>ema50_M15) EMA21 coupe à la hausse EMA50
  • hansticool

    Merci B0gs67 pour tes conseils.
    Mais si je dois faire vérifier mes conditions à chaque nouvelle barre, je pense que cela ne changerait pas grand chose à mon problème. Autrement dit si à chaque nouvelle barre, le système doit vérifier mes contions et qu'elles sont remplies, cela voudra dire que j'aurai une alerte à chaque nouvelle bougie.
    en fait ce que je désire, c'est que une fois les conditions remplies que mon indicateurs sonne juste une fois. et si mon indicateur doit sonner à nouveau, ce serait lorsque d'autres conditions seraient remplies.
    si tu peux m'aider à avoir ce résultat, ce serait vraiment cool!
  • B0gs67

    Il faudrait voir ce que tu veux faire précisément. Ceci me semble bizarre.

    Mais instancie une variable, un booléen par exemple, que tu testes dans ta condition et que tu valorises en même temps que ton alerte. Ainsi ton alerte sera effective qu'une seule fois...
  • coolrock01 — en réponse à hansticool dans son message #96375

    BONJOUR je voudrais savoir c'est ou que on le colle se code???? SVP aider moi MERCI!
    Code

    Code
    //+------------------------------------------------------------------+ //| test0.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #property strict extern bool SoundAlert = TRUE; extern bool EmailAlert = FALSE; double ema21_M15; double ema50_M15; double macd_H1; double macd_signal_H1; //+------------------------------------------------------------------+ //| indicator program start function | //+------------------------------------------------------------------+ int start() { //--- //+------------------------------------------------------------------+ //| acquisition des indicateurs //|------------------------------------------------------------------+ ema21_M15=iMA(NULL, PERIOD_M15, 21, 0, MODE_EMA, PRICE_CLOSE, 0); ema50_M15=iMA(NULL, PERIOD_M15, 50, 0, MODE_EMA, PRICE_CLOSE, 0); macd_H1=iMACD(NULL,PERIOD_H1,5,35,5,PRICE_CLOSE,MODE_MAIN,0); macd_signal_H1=iMACD(NULL,PERIOD_H1,5,35,5,PRICE_CLOSE,MODE_SIGNAL,0); //---- vente if (ema21_M15<ema50_M15 && macd_H1<macd_signal_H1 ) { if( SoundAlert ) Alert (Symbol()," M",PERIOD_H1, " signal d'entrée de vente "); } //---- achat if(ema21_M15>ema50_M15 && macd_H1>macd_signal_H1 ) { if( SoundAlert ) Alert (Symbol()," M",PERIOD_H1, " signal d'entrée d'achat "); } return (0); } //+------------------------------------------------------------------+
    Modifié le 2014-12-13 18:27:05 par AliX : [code] [/code]