Alerte dans l’indicateur. Comment insérer une alerte et une flèche dans votre indicateur ?

Travailler avec Telegram dans MetaTrader. Canaux Telegram et bot
Mes secrets d’Autolot. Lot dynamique ou Autolot.
Travailler avec Telegram dans MetaTrader. Canaux Telegram et bot
Mes secrets d’Autolot. Lot dynamique ou Autolot.

Description

Alerte : Les requêtes les plus fréquentes dans les moteurs de recherche et les sujets populaires sur les forums incluent souvent les phrases suivantes.

Une alerte sur de tels sujets peut vous aider à rester informé des dernières tendances.

  • Indicateur d’alerte
  • Comment ajouter un signal sonore à l’indicateur ?
  • Aidez-moi à insérer un signal sonore dans l’indicateur
  • Comment insérer des alertes et des flèches
  • Comment envoyer un message par email ou téléphone lorsque le signal provient d’un indicateur ?

Dans cet article, je décrirai en détail une méthode facile pour ajouter des notifications Alerte, Mail, Push et Flèche à n’importe quel indicateur en utilisant du code supplémentaire disponible sur Expforex.

  

Préface 

Pour installer correctement les Alerte dans votre indicateur, vous devez disposer du code source de votre indicateur. 

Le code décompilé est indésirable car, pour les débutants, le code décompilé fournit des informations minimales. Il est difficile à comprendre. 

Vous pouvez également rencontrer des problèmes de compilation après modification. 

xCustomEA

Si vous recherchez une manière plus simple d’ automatiser votre stratégie de trading sans plonger dans une programmation personnalisée complexe, envisagez xCustomEA.

Cet expert advisor de Expforex est conçu pour fonctionner parfaitement avec les indicateurs qui génèrent des signaux de flèche. Avec xCustomEA, vous pouvez facilement automatiser tout indicateur qui affiche des flèches d’achat ou de vente, vous permettant de créer une stratégie automatisée puissante sans les tracas du développement de code personnalisé.

xCustomEA rend l’automatisation des stratégies basées sur les signaux des indicateurs incroyablement accessible. Il permet aux traders de se concentrer sur l’optimisation de leur trading au lieu de consacrer du temps et des ressources à la programmation personnalisée. Cet expert advisor constitue une excellente alternative à l’embauche d’un programmeur, offrant une solution simple pour transformer les signaux des indicateurs en transactions.

Pour plus d’informations, visitez la page xCustomEA ou explorez les autres experts advisors d’Expforex.

Début des Travaux pour insérer une Alerte

   Tout d’abord, vous devez déterminer quels tampons d’indicateur fournissent des signaux spécifiques, le but de créer une alerte et les conditions pour déterminer le signal sur l’indicateur. 

Important : Seuls les tampons externes définis au début du code des variables peuvent être affichés dans les indicateurs 

#property indicator_buffers 1

Cependant, l’indicateur peut également contenir des tampons cachés, qui sont définis dans la fonction init() et déclarés comme variables :

IndicatorBuffers(7) : Nous n’avons besoin que des premiers tampons. 

Si, par exemple, vous avez 1 tampon externe, alors regardez la variable 

SetIndexBuffer(0, SarBuffer);
  • 0 est le premier tampon
  • 1 est le deuxième tampon

Ces tampons ou leurs noms peuvent être identifiés en survolant une ligne spécifique de l’indicateur sur le graphique.

Value1 – C’est le premier tampon ou 0 dans le système d’indexation du code.  

SetIndexBuffer(0, SarBuffer); // Le nom du tampon dont nous avons besoin  

Si c’est SarBuffer, alors nous l’utiliserons.

De plus, il s’agit d’une question technique de déterminer comment le signal sera déclenché ;

Par exemple, si c’est l’intersection de la ligne 0 venant du haut (du bas) descendant (montant), cela ressemblera à ceci :

SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0

Croisement de l’indicateur avec le prix actuel ou une barre, une rupture de barre par l’indicateur, etc. :

SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]

S’il s’agit de l’intersection de niveaux uniques, des indicateurs tels que les stochastiques :

SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75;

SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;

S’il y a déjà des flèches dans votre indicateur, alors le type de signal suivant est également possible :

DnTrend[1] != EMPTY_VALUE && DnTrend[1] != 0 && UpTrend[2] != EMPTY_VALUE

Dans tous les cas, vous devez appliquer une logique et de la créativité pour enregistrer correctement le signal. Si vous rencontrez des difficultés, écrivez dans ce fil, joignez l’indicateur, montrez les lignes sur le graphique et décrivez en détail ce que vous ne pouvez pas faire. Envoyer un message comme “vous devez insérer une alerte dans l’indicateur” sans expliquer où et quoi faire, et sans fournir l’indicateur lui-même, n’est pas utile. 

Code “Alertes et flèches de www.expforex.com”

L’étape suivante pour ajouter notre alerte à votre indicateur se compose de plusieurs points :

ÉTAPE 1

Insérez le code suivant au début de l’Expert Advisor avant la fonction OnCalculate()   (start) :

//+==+//+ www.expforex.com éditer AlertArrow +//+==+
extern string Alerts="Alertes et flèches de www.expforex.com";
extern bool AlerT=true; // Émettre une alerte à l'écran
extern bool Mail=true; // Envoyer un message
extern bool Push=true; // Envoyer une notification PUSH au téléphone
extern bool Arrow=true; // Mettre des flèches sur les signaux
extern int shift=1; // Sur quelle barre compter le signal 0 - sur la barre actuelle, 1 - sur la barre fermée
int timeee;
// Variable interne
string nameInd;
void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=3)
{
  if(nm=="")
    nm=DoubleToStr(Time[0], 0);
  if(t1 <= 0)
    t1=Time[0];
  if(p1 <= 0)
    p1=Bid;
  nameInd=WindowExpertName();
  int wind=WindowFind(nameInd);
  wind=0;
  if(ObjectFind(nm) < 0)
    ObjectCreate(nm, OBJ_ARROW, wind, 0, 0);
  ObjectSet(nm, OBJPROP_TIME1, t1);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_ARROWCODE, cd);
  ObjectSet(nm, OBJPROP_COLOR, cl);
  ObjectSet(nm, OBJPROP_WIDTH, sz);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Expforex_AlertArrow(string text="", int arrowdir=0, bool history=false, int i=0)
{
  nameInd=WindowExpertName();
  int wind=WindowFind(nameInd);
  if(wind==-1)
    wind=0;
  ObjectCreate("Originalalert", OBJ_LABEL, wind, 0, 0);
  ObjectSetText("Originalalert", "Modification AlertArrow www.expforex.com", 10, "Arial Bold", Red);
  ObjectSet("Originalalert", OBJPROP_CORNER, 2);
  ObjectSet("Originalalert", OBJPROP_XDISTANCE, 200);
  ObjectSet("Originalalert", OBJPROP_YDISTANCE, 10);
  if(!history)
  {
    if(AlerT)
      Alert(text);
    if(Arrow)
      if(arrowdir==1)
        SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift], 0), Time[shift], Low[shift]);
    if(Arrow)
      if(arrowdir==2)
        SetArrow(242, Red, nameInd + DoubleToStr(Time[shift], 0), Time[shift], High[shift]);
    if(!IsTesting())
      if(Mail)
        SendMail(text, text);
    if(!IsTesting())
      if(Push)
        SendNotification(text);
  }
  if(history)
  {
    if(Arrow)
      if(arrowdir==1)
        SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], Low[shift + i2]);
    if(Arrow)
      if(arrowdir==2)
        SetArrow(242, Red, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], High[shift + i2]);
  }
}//+==+//+ www.expforex.com éditer AlertArrow +//+==+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  for(int i=ObjectsTotal(); i>=0; i--)
  {
    if(StringFind(ObjectName(i), nameInd)!=-1)
      ObjectDelete(ObjectName(i));
  }
}
//+------------------------------------------------------------------+

ÉTAPE 2

 Avant de fermer la fonction OnCalculate(), insérez le code suivant :

return(rates_total); }

Collez le code suivant :

//+==+//+ www.expforex.com éditer AlertArrow +//+==+

nameInd=WindowExpertName();

if(timeee != Time[0] && SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75)
{
  Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " HAUT", 1);
  timeee=Time[0];
}
if(timeee != Time[0] && SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25)
{
  Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " BAS", 2);
  timeee=Time[0];
}//+==+//+ www.expforex.com éditer AlertArrow +//+==+

ÉTAPE 3

Ce code servira de signal.

Naturellement, vous devez remplacer certains codes par les vôtres. 

Le code suivant sert de signal pour une alerte :

1. Intersection de la ligne 0 venant du haut (du bas) descendant (montant), cela ressemblera à ceci :

SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0

2. Croisement de l’indicateur avec le prix actuel ou une barre, une rupture de barre par l’indicateur, etc. :

SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]

3. S’il s’agit de l’intersection de niveaux uniques, des indicateurs tels que les stochastiques :

SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75;

SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;

Après Utilisation

Pour ajouter un signal sonore à l’indicateur, suivez ces étapes :

  • 1. Ouvrez les paramètres de l’indicateur.
  • 2. Recherchez la section “Alerte” ou “Flèches“.
  • 3. Sélectionnez l’option pour ajouter une alerte sonore.
  • 4. Choisissez le fichier sonore que vous souhaitez utiliser comme alerte.
  • 5. Enregistrez les modifications.

En insérant un signal sonore dans l’indicateur, vous pouvez recevoir une notification audible lorsque certaines conditions sont remplies, ce qui peut vous aider à prendre de meilleures décisions de trading.

Si Vous Avez Besoin de Flèches sur l’Historique, Alors Vous Devez Faire Cela :

Après le code ci-dessus, ajoutez ce qui suit :

//+==+//+ www.expforex.com éditer AlertArrow +//+==+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
if(counted_bars > 0)
   counted_bars--;
int limit2 = Bars - counted_bars;
for(int i2 = 0; i2 < limit2; i2++) {
    nameInd = WindowExpertName();
    if(SarBuffer[shift+1+i2] <= 75 && SarBuffer[shift+i2] > 75)
    {
        Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " HAUT" + i2, 1, true, i2);
    }
    if(SarBuffer[shift+1+i2] >= 25 && SarBuffer[shift+i2] < 25)
    {
        Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " BAS" + i2, 2, true, i2);
    }
}
//+==+//+ www.expforex.com éditer AlertArrow +//+==+

Exemples

Ces exemples sont tirés de la section correspondante de notre forum. J’ai modifié les indicateurs selon les principes décrits ci-dessus. 

Conclusions

Dans cet article, j’ai expliqué le processus de création de signaux pour l’indicateur de la manière la plus détaillée et compréhensible possible.

Le code ci-dessus peut être utilisé sans restrictions sur n’importe quel indicateur. Il est important de ne pas changer le nom de l’auteur lors de l’ajout de code à l’indicateur. 

Si vous avez aimé cet article et trouvé cette méthode d’insertion de signaux utile, veuillez laisser vos commentaires et évaluer les sujets. 

Barre de Signal : Ce Qu’il Est Important de Savoir

Des Questions ?

Si vous avez des questions, veuillez les poser. Nous ne vendons pas un cochon dans un sac.

De plus, chacun de nos produits peut être testé avant l’achat.

Nous apprécions votre intérêt et votre soutien pour nos produits et nous efforçons de maintenir des normes de haute qualité.

Merci d’être avec nous !

Avez-vous une question ?

Leave a Reply

Your email address will not be published. Required fields are marked *

This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어


     

    Avertissement de risque :


    Les performances passées ne garantissent pas les résultats futurs.

    La négociation de devises sur marge comporte un degré élevé de risque et peut ne pas convenir à tous les investisseurs.

    Sachez que l'utilisation de robots de trading comporte des risques importants et que vous pourriez perdre plus que votre investissement initial.

    Veuillez procéder avec prudence, évaluer soigneusement votre situation financière et envisager de demander l'avis d'un professionnel qualifié.

    Clause de non-responsabilité

    Ce site utilise des cookies pour améliorer votre expérience. En utilisant ce site, vous acceptez notre Politique de protection des données et Clause de non-responsabilité.
    En savoir plus