Expert Advisors: MQL5 Wizard - Handelsignale auf der Basis der Kreuzung des Preises mit dem MA-Indikator

 

Hallo, wenn ich den MQL Wizard starte, erscheint der Indikator dort nicht.

Wenn ich den Indikator kompiliere erscheint:

declaration of 'm_open' hides member    signalma.mqh    31      22
declaration of 'm_close' hides member   signalma.mqh    32      22

Hängt dies vielleicht zusammen?

Vielen Dank!

 
busybear #:

Hallo, wenn ich den MQL Wizard starte, erscheint der Indikator dort nicht.

Wenn ich den Indikator kompiliere erscheint:

Hängt dies vielleicht zusammen?

Vielen Dank!

??

Der Wizard ist zum erstellen einen neuen EAs oder Indikators.

Zum Starten eines Indikators auf dem Chart musst Du ihn  nur auf den Chart ziehen oder ihn 'doppelklicken'.

Das ist aber gar kein Indikator sondern ein EA (Expert Advisor bzw. Handelsroboter).

Wenn Du Dir den EA ansiehst kannst Du an diesen Werten:

//--- inputs for signal
input int                Inp_Signal_MA_Period    =12;
input int                Inp_Signal_MA_Shift     =0;
input ENUM_MA_METHOD     Inp_Signal_MA_Method    =MODE_SMA;
input ENUM_APPLIED_PRICE Inp_Signal_MA_Applied   =PRICE_CLOSE; 

erkennen, dass es sich um einen einfachen MA (gleitenden Durchschnitt) handelt und den kannst Du über

Einfügen => Indikatoren Tendenz => Moving Average

auf dem Chart starten und dann die Werte des EA einstellen.

Die Meldung sind Warnhinweise (keine Fehler), dass globale Variablen lokal neu definiert werden.

 

Hallo Carl Schreiber, vielen Dank für Deine schnelle Rückmeldung. Meine Frage bezieht sich auf diesen Artikel hier https://www.mql5.com/de/code/248 . Dort wird beschrieben wie man mit diesem Signal einen Expert Advisor mit dem Wizard erstellt. Bis zu diesem Punkt komme ich nicht. Ich habe vorher sichergestellt,  das Indikator auch im richtigen Verzeichnis liegt. Wenn ich dann im Meta Editor auf Datei Neu -> Expert Advisor generieren -> Name vergebe ->  Parameter von Signal Modul müsste nach dem beschriebenen Artikel dort  Signals based on price crossover with MA erscheinen. Die Auswahl kommt jedoch leider nicht. Ich habe die 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).
Dateien:
MAXWizard.jpg  65 kb
 

Leider ist Dein Build für mich zu klein, um etwas erkennen zu können.

Der Indikator iMA ist integriert, er muss nicht in einem bestimmten Verzeichnis liegen.

Ich habe kein Problem einen EA zu erstellen (mit Expert Advisor generieren) nach diesem Artikel mit dem Moving Average: https://www.metatrader5.com/de/metaeditor/help/mql5_wizard/wizard_ea_generate

Nach dem Hinzufügen des Moving Average  weiter ...

Dann entsteht dieser EA:

//+------------------------------------------------------------------+
//|                                                  test_Wizard.mq5 |
//|                                                            Calli |
//|                              https://www.mql5.com/de/users/gooly |
//+------------------------------------------------------------------+
#property copyright "Calli"
#property link      "https://www.mql5.com/de/users/gooly"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalMA.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Expert_Title         ="test_Wizard"; // Document name
ulong                    Expert_MagicNumber   =18344;         //
bool                     Expert_EveryTick     =false;         //
//--- inputs for main signal
input int                Signal_ThresholdOpen =10;            // Signal threshold value to open [0...100]
input int                Signal_ThresholdClose=10;            // Signal threshold value to close [0...100]
input double             Signal_PriceLevel    =0.0;           // Price level to execute a deal
input double             Signal_StopLevel     =50.0;          // Stop Loss level (in points)
input double             Signal_TakeLevel     =50.0;          // Take Profit level (in points)
input int                Signal_Expiration    =4;             // Expiration of pending orders (in bars)
input int                Signal_MA_PeriodMA   =12;            // Moving Average(12,0,...) Period of averaging
input int                Signal_MA_Shift      =0;             // Moving Average(12,0,...) Time shift
input ENUM_MA_METHOD     Signal_MA_Method     =MODE_SMA;      // Moving Average(12,0,...) Method of 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;          // Percent
input double             Money_FixLot_Lots    =0.1;           // Fixed volume
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Creating signal
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- failed
      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);
//--- Creating filter CSignalMA
   CSignalMA *filter0=new CSignalMA;
   if(filter0==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating filter0");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   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);
//--- Creation of trailing object
   CTrailingNone *trailing=new CTrailingNone;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set trailing parameters
//--- Creation of money object
   CMoneyFixedLot *money=new CMoneyFixedLot;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Set money parameters
   money.Percent(Money_FixLot_Percent);
   money.Lots(Money_FixLot_Lots);
//--- Check all trading objects parameters
   if(!ExtExpert.ValidationSettings())
     {
      //--- failed
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+

Der Code kompiliert ohne Probleme, ob er auch Gewinne erzielt weiß ich allerdings nicht, auch nicht, ob man den Code nicht noch optimieren könnte.

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...
Grund der Beschwerde: