Diskussion zum Artikel "Elementare Handelssysteme unter Verwendung von Semaphorindikatoren"

 

Neuer Artikel Elementare Handelssysteme unter Verwendung von Semaphorindikatoren :

Wenn wir ein beliebiges vielschichtiges Handelssystem gründlich untersuchen, werden wir feststellen, dass es auf einem Satz einfacher Handelssignale beruht. Deshalb ist es gar nicht erforderlich, das sich Entwickler gleich zu Beginn ihrer Tätigkeit sofort an der Programmierung komplexer Algorithmen versuchen. In diesem Beitrag wird ein Beispiel für ein Handelssystem vorgestellt, das sich zum Abschluss von Geschäften Indikatoren des Typs Semaphor bedient.


Abb. 4. Handelssignal für den Abschluss eines Geschäfts unter Verwendung des geglätteten Indikators Heiken_Ashi_Smoothed

Autor: Nikolay Kositsin

 
MetaQuotes:

Veröffentlichter Artikel Simplest trading systems using semaphore indicators:

Autor: Nikolay Kositsin

Der Artikel ist sehr klar.
Eine kleine Bemerkung am Rande - es gibt einen mechanischen Tippfehler in dem Code-Fragment im Beispiel, das kopiert wurde:
//---- Deklaration lokaler Variablen
   double TrendVelue[2];
 

Ich kompilierte einige Signale und Neustart, wie "Candles_SmoothedSignal.mqh" (..MQL5\Include\Expert\MySignals\Candles_SmoothedSignal.mqh), aber MetaEditor kann es nicht sehen, um einen Expert Advisor im Assistenten zu machen.

Wie kann ich das Problem lösen?

 

Vielen Dank für diese ausgezeichnete und gründliche Erklärung!


daveM

 

Ich habe alles heruntergeladen und entpackt, wie in der Anleitung angegeben, aber der Tester gibt einen Fehler auf allen Systemen:

Tester gestoppt, weil OnInit fehlgeschlagen ist

CExpert::ValidationSettings: Fehler Geldparameter

CMoneyFixedLot::ValidationSettings: Lots amount must be in the range from 1.000000 to 1000000.000000

Bitte sagen Sie mir, was ich ändern muss.

 

Hallo!

Ich versuche, das Handelssignalmodul ASCtrendSignal (in der komprimierten Datei mysignals.zip), das auf der Grundlage des ASCtrend-Indikators (in der komprimierten Datei indicators.zip) erstellt wurde, zum MQL5-Assistenten hinzuzufügen, aber nichts funktioniert. Ich platziere das Handelssignalmodul ASCtrendSignal in Include\Expert\Signal, und platziere den ASCtrend-Indikator im Indikatorenpaket, alles scheint korrekt zu sein, aber das Modul will hartnäckig nicht im MQL5-Assistenten angezeigt werden. Hier ist der Code des ASCtrendSignal Handelssignalmoduls:

//+------------------------------------------------------------------+
//|ASCtrendSignal.mqh |
//|Urheberrecht © 2011, Nikolay Kositsin | 
//|Chabarowsk, farria@mail.redcom.ru | 
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Nikolay Kositsin".
#property link      "farria@mail.redcom.ru"
//+------------------------------------------------------------------+
//| Enthaltene Dateien|
//+------------------------------------------------------------------+
#property tester_indicator "ASCtrend.ex5"
#include <Expert\ExpertSignal.mqh>
//--- Assistent Beschreibung Start
//+------------------------------------------------------------------+ 
//| Deklaration von Konstanten|
//+------------------------------------------------------------------+ 
#define  OPEN_LONG     80  // Die Konstante für die Rückgabe des Kaufbefehls an den Expert Advisor
#define  OPEN_SHORT    80  // Die Konstante für die Rückgabe des Verkaufsbefehls an den Expert Advisor
#define  CLOSE_LONG    40  // Die Konstante für die Rückgabe des Befehls zum Schließen einer Long-Position an den Expert Advisor
#define  CLOSE_SHORT   40  // Die Konstante für die Rückgabe des Befehls zum Schließen einer Short-Position an den Expert Advisor
#define  REVERSE_LONG  100 // Die Konstante für die Rückgabe des Befehls zur Umkehrung einer Long-Position an den Expert Advisor
#define  REVERSE_SHORT 100 // Die Konstante für die Rückgabe des Befehls zur Umkehrung einer Short-Position an den Expert Advisor
#define  NO_SIGNAL      0  // Die Konstante für die Rückgabe des Nichtvorhandenseins eines Signals an den Expert Advisor
//+----------------------------------------------------------------------+
//| Beschreibung der Klasse|
//| Titel=Die Signale basierend auf dem ASCtrend-Indikator |
//| Typ=SignalAdvanced.|
//| Name=ASCtrend|
//| Klasse=CASCtrendSignal|
//| Seite=|
//| Parameter=BuyPosOpen,bool,true,Kauferlaubnis |
//| Parameter=SellPosOpen,bool,true,Erlaubnis zum Verkaufen |
//| Parameter=BuyPosClose,bool,true,Erlaubnis zum Verlassen einer Long-Position |
//| Parameter=SellPosClose,bool,true,Erlaubnis zum Verlassen einer Short-Position |
//| Parameter=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parameter=RISK,int,4,Risikostufe|
//| Parameter=SignalBar,uint,1,Bar-Index für Einstiegssignal |
//+----------------------------------------------------------------------+
//--- Assistentenbeschreibung Ende
//+----------------------------------------------------------------------+
//| CASCtrendSignal-Klasse.|
//| Zweck: Klasse der Generierung von Handelssignalen auf der Grundlage von |
//| ASCtrend indicator values http://www.mql5.com/ru/code/491/.&nbsp;         |
//| Ist abgeleitet von der Klasse CExpertSignal.
//+----------------------------------------------------------------------+
class CASCtrendSignal : public CExpertSignal
  {
protected:
   CiCustom          m_indicator;      // das Objekt für den Zugriff auf ASCtrend-Werte

   //--- angepasste Parameter
   bool              m_BuyPosOpen;       // Erlaubnis zum Kauf
   bool              m_SellPosOpen;      // Erlaubnis zum Verkauf
   bool              m_BuyPosClose;      // Erlaubnis zum Verlassen einer Long-Position
   bool              m_SellPosClose;     // Erlaubnis zum Verlassen einer Short-Position
   ENUM_TIMEFRAMES   m_Ind_Timeframe;    // Zeitrahmen des ASCtrend-Indikators
   uint              m_RISK;             // Risikostufe
   uint              m_SignalBar;        // Balkenindex für Eingangssignal

public:
                     CASCtrendSignal();

   //--- Methoden zur Einstellung einstellbarer Parameter
   void               BuyPosOpen(bool value)                  { m_BuyPosOpen=value;       }
   void               SellPosOpen(bool value)                 { m_SellPosOpen=value;      }
   void               BuyPosClose(bool value)                 { m_BuyPosClose=value;      }
   void               SellPosClose(bool value)                { m_SellPosClose=value;     }
   void               Ind_Timeframe(ENUM_TIMEFRAMES value)    { m_Ind_Timeframe=value;    }
   void               RISK(uint value)                        { m_RISK=value;             }
   void               SignalBar(uint value)                   { m_SignalBar=value;        }

   //--- einstellbare Parameter Validierungsmethode
   virtual bool      ValidationSettings();
   //--- einstellbare Parameter Validierungsmethode
   virtual bool      InitIndicators(CIndicators *indicators); // Initialisierung der Indikatoren
   //--- Methode zur Erzeugung von Markteintrittssignalen
   virtual int       LongCondition();
   virtual int       ShortCondition();

   bool              InitASCtrend(CIndicators *indicators);   // ASCtrend-Indikator-Initialisierungsmethode

protected:

  };
//+------------------------------------------------------------------+
//|CASCtrendSignal Konstruktor.|
//| INPUT: nein.|
//| OUTPUT: nein.|
//|| ANMERKUNG: nein.|
//+------------------------------------------------------------------+
void CASCtrendSignal::CASCtrendSignal()
  {
//--- Einstellung der Standardparameter
   m_BuyPosOpen=true;
   m_SellPosOpen=true;
   m_BuyPosClose=true;
   m_SellPosClose=true;
   
//--- Indikator-Eingabeparameter
   m_Ind_Timeframe=PERIOD_H4;
   m_RISK=4;
//--- 
   m_SignalBar=1;
   m_used_series=USE_SERIES_OPEN+USE_SERIES_HIGH+USE_SERIES_LOW+USE_SERIES_CLOSE;
  }
//+------------------------------------------------------------------+
//| Überprüfung der einstellbaren Parameter.|
//| INPUT: nein.|
//| OUTPUT: true, wenn die Einstellungen gültig sind, false - wenn nicht.
//|| ANMERKUNG: nein.|
//+------------------------------------------------------------------+
bool CASCtrendSignal::ValidationSettings()
  {
//--- Überprüfung der Parameter
   if(m_RISK<=0)
     {
      printf(__FUNCTION__+": Risk level must be above zero");
      return(false);
     }

//--- erfolgreicher Abschluss
   return(true);
  }
//+------------------------------------------------------------------+
//| Initialisierung von Indikatoren und Zeitreihen.
//| INPUT: Indikatoren - Zeiger auf eine Objekt-Sammlung |
//| von Indikatoren und Zeitreihen.|
//| OUTPUT: true - im Erfolgsfall, sonst - false. || OUTPUT: true - im Erfolgsfall, sonst - false. ||
//|| ANMERKUNG: nein.|
//+------------------------------------------------------------------+
bool CASCtrendSignal::InitIndicators(CIndicators *indicators)
  {
//--- Überprüfung des Zeigers
   if(indicators==NULL) return(false);

//--- Initialisierung des Indikators 
   if(!InitASCtrend(indicators)) return(false);

//--- erfolgreicher Abschluss
   return(true);
  }
//+------------------------------------------------------------------+
//| ASCtrend-Indikator-Initialisierung.|
//| INPUT: Indikatoren - Zeiger auf eine Objekt-Sammlung |
//| von Indikatoren und Zeitreihen.|
//| OUTPUT: true - im Erfolgsfall, sonst - false. || OUTPUT: true - im Erfolgsfall, sonst - false. ||
//|| ANMERKUNG: nein.|
//+------------------------------------------------------------------+
bool CASCtrendSignal::InitASCtrend(CIndicators *indicators)
  {
//--- Überprüfung des Zeigers
   if(indicators==NULL) return(false);

//--- Hinzufügen eines Objekts zur Sammlung
   if(!indicators.Add(GetPointer(m_indicator)))
     {
      printf(__FUNCTION__+": error of adding the object");
      return(false);
     }

//--- Einstellung der Indikatorparameter
   MqlParam parameters[2];
   
   parameters[0].type=TYPE_STRING;
   parameters[0].string_value="ASCtrend.ex5";
   
   parameters[1].type=TYPE_INT;
   parameters[1].integer_value=m_RISK;

//--- Objektinitialisierung 
   if(!m_indicator.Create(m_symbol.Name(),m_Ind_Timeframe,IND_CUSTOM,2,parameters))
     {
      printf(__FUNCTION__+": object initialization error");
      return(false);
     }
     
//--- Anzahl der Puffer
   if(!m_indicator.NumBuffers(2)) return(false);
   
//--- ASCtrend-Indikator erfolgreich initialisiert
   return(true);
  }
//+------------------------------------------------------------------+
//| Überprüfung der Bedingungen für die Eröffnung einer Long-Position und |
//| und ein kurzes schließen|
//| INPUT:no|
//| OUTPUT: Stimmgewichtung von 0 bis 100|
//|| ANMERKUNG: nein.|
//+------------------------------------------------------------------+
int CASCtrendSignal::LongCondition()
  {
//--- Kaufsignal wird durch Puffer 1 des ASCtrend Indikators bestimmt
   double Signal=m_indicator.GetData(1,m_SignalBar);

//--- Erhalten eines Handelssignals 
   if(Signal && Signal!=EMPTY_VALUE)
     {
      if(m_BuyPosOpen)
        {
         if(m_SellPosClose) return(REVERSE_SHORT);
         else return(OPEN_LONG);
        }
      else
        {
         if(m_SellPosClose) return(CLOSE_SHORT);
        }
     }

//--- Suche nach Signalen zum Schließen einer Short-Position
   if(!m_SellPosClose) return(NO_SIGNAL);

   int Bars_=Bars(m_symbol.Name(),m_Ind_Timeframe);

   for(int bar=int(m_SignalBar); bar<Bars_; bar++)
     {
      Signal=m_indicator.GetData(0,bar);
      if(Signal && Signal!=EMPTY_VALUE) return(NO_SIGNAL);

      Signal=m_indicator.GetData(1,bar);
      if(Signal && Signal!=EMPTY_VALUE) return(CLOSE_SHORT);
     }

//--- kein Handelssignal
   return(NO_SIGNAL);
  }
//+------------------------------------------------------------------+
//| Überprüfung der Bedingungen für die Eröffnung einer Short-Position und |
//| Schließen eines langen|
//| INPUT:no|
//| OUTPUT: Stimmgewichtung von 0 bis 100|
//|| ANMERKUNG: nein.|
//+------------------------------------------------------------------+
int CASCtrendSignal::ShortCondition()
  {
//--- Verkaufssignal wird durch Puffer 0 des ASCtrend-Indikators bestimmt
   double Signal=m_indicator.GetData(0,m_SignalBar);
   
//--- Erhalten eines Handelssignals
   if(Signal && Signal!=EMPTY_VALUE)
     {
      if(m_SellPosOpen)
        {
         if(m_BuyPosClose) return(REVERSE_LONG);
         else return(OPEN_SHORT);
        }
      else
        {
         if(m_BuyPosClose) return(CLOSE_LONG);
        }
     }

//--- Suche nach Signalen zum Schließen einer Long-Position
   if(!m_BuyPosClose) return(NO_SIGNAL);

   int Bars_=Bars(m_symbol.Name(),m_Ind_Timeframe); // Здесь код исправлен с учетом подсказки от Владимира Карпутова: Symbol() заменен на m_symbol.Name()
   for(int bar=int(m_SignalBar); bar<Bars_; bar++)
     {
      Signal=m_indicator.GetData(1,bar);
      if(Signal && Signal!=EMPTY_VALUE) return(NO_SIGNAL);

      Signal=m_indicator.GetData(0,bar);
      if(Signal && Signal!=EMPTY_VALUE) return(CLOSE_LONG);
     }

//--- kein Handelssignal 
   return(NO_SIGNAL);
  }
//+------------------------------------------------------------------+

Können Sie mir bitte sagen, was das Problem sein könnte?

Mit freundlichen Grüßen, Vladimir

 
MrBrooklin:

Hallo!

Ich versuche, das Handelssignalmodul ASCtrendSignal (in der komprimierten Datei mysignals.zip), das auf der Grundlage des ASCtrend-Indikators (in der komprimierten Datei indicators.zip) erstellt wurde, zum MQL5-Assistenten hinzuzufügen, aber nichts funktioniert. Ich platziere das Handelssignalmodul ASCtrendSignal in Include\Expert\Signal, und platziere den ASCtrend-Indikator im Indikatorenpaket, alles scheint korrekt zu sein, aber das Modul will hartnäckig nicht im MQL5-Assistenten angezeigt werden. Hier ist der Code des ASCtrendSignal Handelssignalmoduls:

Können Sie mir bitte sagen, was das Problem sein könnte?

Mit freundlichen Grüßen, Vladimir

Ich möchte hinzufügen, dass dieses Problem auch bei anderen Modulen von Handelssignalen auftritt, die auf der Grundlage von Indikatoren geschrieben wurden. Offenbar haben sie das gleiche Problem. Bitte helfen Sie bei der Lösung dieser Probleme.

Mit freundlichen Grüßen, Vladimir.

P.S. Einige Indikatoren, die ich aus der komprimierten Datei indicators.zip entpackt habe, sind auf dem Terminal installiert und funktionieren normal.

 

Es kommt auf die Reihenfolge an:

// Assistentenbeschreibung Start
//+----------------------------------------------------------------------+
//| Beschreibung der Klasse|
//| Titel=Die Signale basierend auf dem ASCtrend-Indikator |
//| Typ=SignalAdvanced.|
//| Name=ASCtrend|
//| Klasse=CASCtrendSignal|
//| Seite=|
//| Parameter=BuyPosOpen,bool,true,Kauferlaubnis |
//| Parameter=SellPosOpen,bool,true,Erlaubnis zum Verkaufen |
//| Parameter=BuyPosClose,bool,true,Erlaubnis zum Verlassen einer Long-Position |
//| Parameter=SellPosClose,bool,true,Erlaubnis zum Verlassen einer Short-Position |
//| Parameter=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parameter=RISK,int,4,Risikostufe|
//| Parameter=SignalBar,uint,1,Bar-Index für Einstiegssignal |
//+----------------------------------------------------------------------+
// Beschreibung des Assistenten Ende

nicht

//--- wizard description start
//--- wizard description end

und zwischen Anfang und Ende nur ein Dienstblock - keine Variablen oder Makro-Ersetzungen.


So sollte das Modul beginnen:

//+------------------------------------------------------------------+
//|ASCtrendSignal.mqh |
//|Urheberrecht © 2011, Nikolay Kositsin |
//|Chabarowsk, farria@mail.redcom.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Nikolay Kositsin".
#property link      "farria@mail.redcom.ru"
//+------------------------------------------------------------------+
//| Enthaltene Dateien|
//+------------------------------------------------------------------+
//#property tester_indicator "ASCtrend.ex5"
#include <Expert\ExpertSignal.mqh>
// Assistentenbeschreibung Start
//+----------------------------------------------------------------------+
//| Beschreibung der Klasse|
//| Titel=Die Signale basierend auf dem ASCtrend-Indikator |
//| Typ=SignalAdvanced.|
//| Name=ASCtrend|
//| Klasse=CASCtrendSignal|
//| Seite=|
//| Parameter=BuyPosOpen,bool,true,Kauferlaubnis |
//| Parameter=SellPosOpen,bool,true,Erlaubnis zum Verkaufen |
//| Parameter=BuyPosClose,bool,true,Erlaubnis zum Verlassen einer Long-Position |
//| Parameter=SellPosClose,bool,true,Erlaubnis zum Verlassen einer Short-Position |
//| Parameter=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parameter=RISK,int,4,Risikostufe|
//| Parameter=SignalBar,uint,1,Bar-Index für Einstiegssignal |
//+----------------------------------------------------------------------+
// Beschreibung des Assistenten Ende
//+------------------------------------------------------------------+
//| Deklaration von Konstanten|
//+------------------------------------------------------------------+
#define  OPEN_LONG     80  // Die Konstante für die Rückgabe des Kaufbefehls an den Expert Advisor
#define  OPEN_SHORT    80  // Die Konstante für die Rückgabe des Verkaufsbefehls an den Expert Advisor
#define  CLOSE_LONG    40  // Die Konstante für die Rückgabe des Befehls zum Schließen einer Long-Position an den Expert Advisor
#define  CLOSE_SHORT   40  // Die Konstante für die Rückgabe des Befehls zum Schließen einer Short-Position an den Expert Advisor
#define  REVERSE_LONG  100 // Die Konstante für die Rückgabe des Befehls zur Umkehrung einer Long-Position an den Expert Advisor
#define  REVERSE_SHORT 100 // Die Konstante für die Rückgabe des Befehls zur Umkehrung einer Short-Position an den Expert Advisor
#define  NO_SIGNAL      0  // Die Konstante für die Rückgabe des Nichtvorhandenseins eines Signals an den Expert Advisor
//+----------------------------------------------------------------------+
//| CASCtrendSignal-Klasse.|
//| Zweck: Klasse der Generierung von Handelssignalen auf der Grundlage von |
//| ASCtrend indicator values http://www.mql5.com/ru/code/491/.&nbsp;         |
//| Ist abgeleitet von der Klasse CExpertSignal.
//+----------------------------------------------------------------------+
class CASCtrendSignal : public CExpertSignal
  {

MetaEditor nach Änderungen neu laden

 
Vladimir Karputov:

Es kommt auf die Reihenfolge an:

nicht

und zwischen Anfang und Ende nur ein Dienstblock - keine Variablen oder Makro-Ersetzungen.


So sollte ein Modul beginnen:

MetaEditor nach Änderungen neu laden

Vielen Dank, Vladimir!

Alles hat funktioniert.

Mit freundlichen Grüßen, Vladimir.

 

Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien

Diskussion über den Artikel "Einfache Handelssysteme mit Semaphor-Indikatoren"

Vladimir Karputov, 2019.10.30 08:50

Die Reihenfolge ist wichtig:

 // Assistentenbeschreibung Start
//+----------------------------------------------------------------------+
//| Beschreibung der Klasse|
//| Titel=Die Signale basierend auf dem ASCtrend-Indikator |
//| Typ=SignalAdvanced|
//| Name=ASCtrend|
//| Klasse=CASCtrendSignal|
//| Seite=|
//| Parameter=BuyPosOpen,bool,true,Kauferlaubnis |
//| Parameter=SellPosOpen,bool,true,Erlaubnis zum Verkaufen |
//| Parameter=BuyPosClose,bool,true,Erlaubnis zum Verlassen einer Long-Position |
//| Parameter=SellPosClose,bool,true,Erlaubnis zum Verlassen einer Short-Position |
//| Parameter=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parameter=RISK,int,4,Risikostufe|
//| Parameter=SignalBar,uint,1,Bar-Index für Einstiegssignal |
//+----------------------------------------------------------------------+
// Beschreibung des Assistenten Ende 

Aber nicht

 //--- wizard description start
//--- wizard description end 

und zwischen Anfang und Ende nur der Service-Block - keine Variablen und Makro-Substitutionen.


Das ist der Anfang, den das Modul haben sollte:

 //+------------------------------------------------------------------+
//|ASCtrendSignal.mqh |
//|Urheberrecht © 2011, Nikolay Kositsin |
//|Chabarowsk, farria@mail.redcom.ru |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2011, Nikolay Kositsin"
#property  link        "farria@mail.redcom.ru"
//+------------------------------------------------------------------+
//| Enthaltene Dateien|
//+------------------------------------------------------------------+
//#property tester_indicator "ASCtrend.ex5"
#include  <Expert\ExpertSignal.mqh>
// Assistentenbeschreibung Start
//+----------------------------------------------------------------------+
//| Beschreibung der Klasse|
//| Titel=Die Signale basierend auf dem ASCtrend-Indikator |
//| Typ=SignalAdvanced|
//| Name=ASCtrend|
//| Klasse=CASCtrendSignal|
//| Seite=|
//| Parameter=BuyPosOpen,bool,true,Kauferlaubnis |
//| Parameter=SellPosOpen,bool,true,Erlaubnis zum Verkaufen |
//| Parameter=BuyPosClose,bool,true,Erlaubnis zum Verlassen einer Long-Position |
//| Parameter=SellPosClose,bool,true,Erlaubnis zum Verlassen einer Short-Position |
//| Parameter=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parameter=RISK,int,4,Risikostufe|
//| Parameter=SignalBar,uint,1,Bar-Index für Einstiegssignal |
//+----------------------------------------------------------------------+
// Beschreibung des Assistenten Ende
//+------------------------------------------------------------------+
//| Deklaration von Konstanten|
//+------------------------------------------------------------------+
#define  OPEN_LONG     80    // Die Konstante für die Rückgabe des Kaufbefehls an den Expert Advisor
#define  OPEN_SHORT     80    // Die Konstante für die Rückgabe des Verkaufsbefehls an den Expert Advisor
#define  CLOSE_LONG     40    // Die Konstante für die Rückgabe des Befehls zum Schließen einer Long-Position an den Expert Advisor
#define  CLOSE_SHORT   40    // Die Konstante für die Rückgabe des Befehls zum Schließen einer Short-Position an den Expert Advisor
#define  REVERSE_LONG   100 // Die Konstante für die Rückgabe des Befehls zur Umkehrung einer Long-Position an den Expert Advisor
#define  REVERSE_SHORT 100 // Die Konstante für die Rückgabe des Befehls zur Umkehrung einer Short-Position an den Expert Advisor
#define  NO_SIGNAL       0    // Die Konstante für die Rückgabe des Nichtvorhandenseins eines Signals an den Expert Advisor
//+----------------------------------------------------------------------+
//| CASCtrendSignal-Klasse.|
//| Zweck: Klasse von Generatoren von Handelssignalen, die auf |
//| ASCtrend indicator values http://www.mql5.com/ru/code/491/.&nbsp;         |
//| Ist abgeleitet von der Klasse CExpertSignal.|
//+----------------------------------------------------------------------+
class CASCtrendSignal : public CExpertSignal
  {

Starten Sie den MetaEditor neu, nachdem Sie Änderungen vorgenommen haben.