Experts: Assistant MQL5 - Signaux de Trading Basés sur le Croisement des Prix avec l'indicateur Moyenne Mobile - page 2

 

Bonjour Carl Schreiber, merci pour ta réponse rapide. Ma question se rapporte à cet article ici https://www.mql5.com/fr/code/248. Il y est décrit comment créer un Expert Advisor avec ce signal à l'aide du Wizard. Je n'arrive pas à atteindre ce point. J'ai vérifié auparavant que l'indicateur se trouvait dans le bon répertoire. Si je clique ensuite dans le Meta Editor sur Fichier Nouveau -> Générer un Expert Advisor -> Attribuer un nom -> Paramètres du module Signal, l'article décrit devrait y faire apparaître Signals based on price crossover with MA. Malheureusement, cette sélection n'apparaît pas. J'ai la version 5.0 Build 3211

MQL5 Wizard - Handelsignale auf der Basis der Kreuzung des Preises mit dem MA-Indikator
MQL5 Wizard - Handelsignale auf der Basis der Kreuzung des Preises mit dem MA-Indikator
  • www.mql5.com
Handelsignale auf der Basis der Kreuzung des Preises mit dem MA-Indikator "Signals based on price crossover with MA" (Klasse CSignalMA in der Standardbibliothek).
Dossiers :
MAXWizard.jpg  65 kb
 

Malheureusement, ton build est trop petit pour que je puisse y voir quelque chose.

L'indicateur iMA est intégré, il n'a pas besoin de se trouver dans un répertoire spécifique.

Je n'ai aucun problème pour créer un EA (avec générer un Expert Advisor) d'après cet article avec le Moving Average : https://www.metatrader5.com/de/metaeditor/help/mql5_wizard/wizard_ea_generate

Après avoir ajouté le Moving Average, continuer ...

Ensuite, cet EA est créé :

//+------------------------------------------------------------------+
//|test_Wizard.mq5 |
//|Calli |
//| https://www.mql5.com/fr/users/gooly |
//+------------------------------------------------------------------+
#property copyright "Calli"
#property link      "https://www.mql5.com/fr/users/gooly"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include|
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- signaux disponibles
#include <Expert\Signal\SignalMA.mqh>
//--- trailing disponible
#include <Expert\Trailing\TrailingNone.mqh>
//--- gestion de l'argent disponible
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs|
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Expert_Title         ="test_Wizard"; // Nom du document
ulong                    Expert_MagicNumber   =18344;         //
bool                     Expert_EveryTick     =false;         //
//--- entrées pour le signal principal
input int                Signal_ThresholdOpen =10;            // Valeur de seuil du signal à l'ouverture [0...100].
input int                Signal_ThresholdClose=10;            // Valeur de seuil du signal pour la fermeture [0...100].
input double             Signal_PriceLevel    =0.0;           // Niveau de prix pour exécuter une transaction
input double             Signal_StopLevel     =50.0;          // Niveau de stop loss (en points)
input double             Signal_TakeLevel     =50.0;          // Niveau de prise de bénéfice (en points)
input int                Signal_Expiration    =4;             // Expiration des commandes en attente (en barres)
input int                Signal_MA_PeriodMA   =12;            // Moving Average(12,0,...) Période d'averaging
input int                Signal_MA_Shift      =0;             // Moving Average(12,0,...) Décalage horaire
input ENUM_MA_METHOD     Signal_MA_Method     =MODE_SMA;      // Moving Average(12,0,...) Méthode d'averaging
input ENUM_APPLIED_PRICE Signal_MA_Applied    =PRICE_CLOSE;   // Moving Average(12,0,...) Prices series
input double             Signal_MA_Weight     =1.0;           // Moving Average(12,0,...) Weight [0...1.0]
//--- inputs for money
input double             Money_FixLot_Percent =10.0;          // Pourcentage
input double             Money_FixLot_Lots    =0.1;           // Volume fixe
//+------------------------------------------------------------------+
//| Global expert object|
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- échoué
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Signal de création
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- échoué
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen(Signal_ThresholdOpen);
   signal.ThresholdClose(Signal_ThresholdClose);
   signal.PriceLevel(Signal_PriceLevel);
   signal.StopLevel(Signal_StopLevel);
   signal.TakeLevel(Signal_TakeLevel);
   signal.Expiration(Signal_Expiration);
//--- Création du filtre CSignalMA
   CSignalMA *filter0=new CSignalMA;
   if(filter0==NULL)
     {
      //--- échoué
      printf(__FUNCTION__+": error creating filter0");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
   signal.AddFilter(filter0);
//--- Définir les paramètres du filtre
   filter0.PeriodMA(Signal_MA_PeriodMA);
   filter0.Shift(Signal_MA_Shift);
   filter0.Method(Signal_MA_Method);
   filter0.Applied(Signal_MA_Applied);
   filter0.Weight(Signal_MA_Weight);
//--- Création de l'objet suiveur
   CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- échoué
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Ajouter un suivi à l'expert (sera automatiquement supprimé))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- échoué
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Définir les paramètres de suivi
//--- Création de l'objet monétaire
   CMoneyFixedLot *money=new CMoneyFixedLot;
   if(money==NULL)
     {
      //--- échoué
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Ajouter de l'argent à l'expert (sera supprimé automatiquement))
   if(!ExtExpert.InitMoney(money))
     {
      //--- échoué
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set money parameters
   money.Percent(Money_FixLot_Percent);
   money.Lots(Money_FixLot_Lots);
//--- Vérifier tous les paramètres des objets de trading
   if(!ExtExpert.ValidationSettings())
     {
      //--- échoué
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Réglage de tous les indicateurs nécessaires
   if(!ExtExpert.InitIndicators())
     {
      //--- échoué
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Fonction de désinitialisation de l'expert |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| Fonction de gestion des événements "Tick|
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| Fonction de gestionnaire d'événements "Trade|
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| Fonction de gestion des événements "Timer".|
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+

Le code compile sans problème, mais je ne sais pas s'il génère des bénéfices, ni s'il est possible d'optimiser le code.

Erstellen eines fertigen Expert Advisors - MQL4/MQL5 Assistent - MetaEditor Hilfe
Erstellen eines fertigen Expert Advisors - MQL4/MQL5 Assistent - MetaEditor Hilfe
  • www.metatrader5.com
Der MQL4/MQL5 Assistent erlaubt das Erstellen eines voll funktionsfähigen EAs auf Basis der Standardbibliothek aus der Handelsplattform...
 
très bon code