SYSTEMTRADE.COM For Vendor
How to List EX4/EX5 Files

Compress paid & free files into ZIP and upload

$
Paid File EX4 / EX5
+
FREE
Free File EX4 / EX5
ZIP Compress ZIP
Upload Done
⚠️Important

When listing in EX4/EX5 format, forward testing
must be measured on the developer's own live account.
Please be aware of this in advance.

Sie können im ex4/5-Format einreichen, einschließlich Kontoauthentifizierung und Handelshistorie-Logik.
Beim Listing mit ex4/5-Dateien komprimieren Sie bitte die Kauf- und Gratisversion in eine ZIP-Datei und laden Sie sie hoch.

Ab hier verwenden wir den "Meta Editor" für die Arbeit.

01Gratisversion vorbereiten

 Duplizieren Sie Ihre mq4-Datei (EA) und erstellen Sie "EA-Produktname_free.mq4". ※Verwenden Sie Ihren eigenen EA-Produktnamen.

Free_create Vorlagenbild | SYSTEMTRADE.COM

02Aufrufcode einfügen

 Fügen Sie diesen Code in die erste Zeile Ihrer mq4-Datei ein. Dies ist der Code zum Aufrufen der heruntergeladenen mqh-Datei.

SYSTEMTRADE.COM Bild | SYSTEMTRADE.COM
				
					#include <web_auth.mqh>
				
			

03Magic-Number-Parameter ausblenden

Magic Number Settings
Free Version Do Not Expose
Do not expose as
an external parameter.
Paid Version Expose
Please expose as
an external parameter.

 Geben Sie die Magic Number nicht als externen Parameter frei.

 In diesem Beispiel verwenden wir die folgende Magic-Number-Variable für den EA. Sie müssen Ihren eigenen Variablennamen nicht ändern.

Magic_number_A
Magic_number_B
Magic_number_C


 ※ Die Handelshistorie wird über die Magic Number verwaltet.

				
					int Magic_number_A
				
			
				
					extern int Magic_number_A
				
			
				
					input Magic_number_A
				
			

04 Code-Ergänzung 1

Fügen Sie den folgenden Code am Anfang der OnInit-Funktion ein. (Muss direkt nach der OnInit-Funktion eingefügt werden)
Die Magic-Number-Zahl in ArrayResize in Beispiel 1 gibt die Größe an.
Geben Sie die Größe entsprechend der Anzahl der Magic Numbers Ihres EAs ein. (1, wenn nur eine Magic Number vorhanden ist)
Für EAs mit vielen Magic Numbers erhöhen Sie die Anzahl der gespeicherten Magic Numbers wie in Beispiel 2 unten gezeigt.

				
					int OnInit()
 {
 ArrayResize(magic_numbers, 6);     
    magic_numbers[0] = Magic_number_A; 
    magic_numbers[1] = Magic_number_B;
    magic_numbers[2] = Magic_number_C; 
    magic_numbers[3] = Magic_number_D;
    magic_numbers[4] = Magic_number_E; 
    magic_numbers[5] = Magic_number_F;
				
			

05 Code-Ergänzung 2

 Nachdem Sie die Magic Number festgelegt haben, fügen Sie diesen Code unter dem im vorherigen Schritt eingefügten Code ein.

 Anschließend fügen Sie den weiteren Code der OnInit-Funktion ein.

				
					int OnInit()
 {
 ArrayResize(magic_numbers, 6);     
    magic_numbers[0] = Magic_number_A; 
    magic_numbers[1] = Magic_number_B;
    magic_numbers[2] = Magic_number_C; 
    magic_numbers[3] = Magic_number_D;
    magic_numbers[4] = Magic_number_E; 
    magic_numbers[5] = Magic_number_F;
total_magic_numbers = ArraySize(magic_numbers);
   if(!IsTesting())
     {
      SendAccountData(AccountNumber());

      if(!WebAuthenticate(AccountNumber()))
        {
         Alert("systre.com Account verification failed");
         ExpertRemove();
        }
     }
   EventSetTimer(6000);   return(INIT_SUCCEEDED);
  }

				
			

06 Code-Ergänzung 3

Wenn Sie die OnTimer-Funktion NICHT verwenden

 Platzieren Sie die folgende Funktion am Ende Ihrer mq4-Datei, damit sie korrekt funktioniert.

Wenn Sie die OnTimer-Funktion verwenden

Rufen Sie die folgende Funktion innerhalb der OnTimer-Funktion auf.

				
					<!-- Bottom of source code -->
void OnTimer()
  {
   if(!IsTesting())
     {
      SendAccountData(AccountNumber());
     }
  }
				
			
				
					void OnTimer()
  {
   if(!IsTesting())
     {
      SendAccountData(AccountNumber());
     }
  }
				
			

07Beispielcode

Bitte kompilieren Sie nach dem Hinzufügen des Authentifizierungscodes.

 Wenn Sie die Authentifizierungslogik in Ihrer Umgebung testen möchten, teilen Sie uns bitte Ihre Kontonummer mit.

 ※ Zum Testen fügen Sie bitte https://sys-tre.com/ zur erlaubten WebRequest-URL-Liste hinzu.

Beispielcode

				
					//Global variables
  #include <web_auth.mqh>
    int Magic_number_A = 0000;//Magic number (Free version: do not release the magic number.)
  //int Magic_number_B = 1111;
  //int Magic_number_C = 2222;
  //+------------------------------------------------------------------+
  //|                                                                  |
  //+------------------------------------------------------------------+
  //Executed first
  int OnInit()
    {
     ArrayResize(magic_numbers, 1);//Change this number if there are multiple magic numbers
     magic_numbers[0] = Magic_number_A;
   //magic_numbers[1] = Magic_number_B;
   //magic_numbers[2] = Magic_number_C;

     total_magic_numbers = ArraySize(magic_numbers);
     if(!IsTesting())
       {
        SendAccountData(AccountNumber());

        if(!WebAuthenticate(AccountNumber()))
          {
           Alert("systre.com Account verification failed");
           ExpertRemove();
          }
       }
     EventSetTimer(6000);
     return(INIT_SUCCEEDED);
    }

  //Timer
  void OnTimer()
    {
     if(!IsTesting())
       {
        SendAccountData(AccountNumber());
       }
    }
  //+------------------------------------------------------------------+
				
			
Ab hier verwenden wir den "Meta Editor" für die Arbeit.

01Kostenpflichtige Version vorbereiten

 Duplizieren Sie Ihre mq4-Datei (EA) und erstellen Sie (EA-Produktname)_paid.mq4. ※Verwenden Sie Ihren eigenen EA-Produktnamen.

Free_create Vorlagenbild | SYSTEMTRADE.COM

02Aufrufcode einfügen

Fügen Sie diesen Code in die erste Zeile Ihrer mq4-Datei ein. Dies ist der Code zum Aufrufen der heruntergeladenen mqh-Datei.

				
					#include <paid_auth.mqh>
				
			

03 Magic Number deklarieren

Magic Number Settings
Free Version Do Not Expose
Do not expose as
an external parameter.
Paid Version Expose
Please expose as
an external parameter.

 ※ Hinweis
 Anders als bei der Gratisversion sollte die kostenpflichtige Version den Magic-Number-Parameter als externen Parameter freigeben.
 Wenn Sie mehrere Magic Numbers haben, geben Sie den Wert der ersten Magic Number ein.

				
					#include <paid_auth.mqh>
extern int MAGIC = Your EA's magic number;

				
			

04 Code-Ergänzung

 Fügen Sie diesen Code am Anfang der OnInit-Funktion ein. Deklarieren Sie im Code int pass_magic = die Magic Number Ihres EAs;

				
					int OnInit() {
int pass_magic = Your EA's magic number;
    if (!IsTesting()) {
        if (!WebAuthenticate(AccountNumber(), pass_magic)) {
            Alert("systre.com Account verification failed");
            ExpertRemove();
        }
    }
    return INIT_SUCCEEDED;
}

				
			

05Beispielcode

Bitte kompilieren Sie nach dem Hinzufügen des Authentifizierungscodes.

 Wenn Sie die Authentifizierungslogik in Ihrer Umgebung testen möchten, teilen Sie uns bitte Ihre Kontonummer mit.

 ※ Zum Testen fügen Sie bitte https://sys-tre.com/ zur erlaubten WebRequest-URL-Liste hinzu.

Beispielcode

				
					//Global variables
  #include <paid_auth.mqh>
    extern int MAGIC =  111;//Please release the magic number as an external parameter.
  //extern int MAGIC2 = 222;
  //extern int MAGIC3 = 333;

  //Executed first
  int OnInit() {

  int  pass_magic =111;//Enter the same value as the first magic number.
   if (!IsTesting()) {
          if (!WebAuthenticate(AccountNumber(), pass_magic)) {
              Alert("systre.com Account verification failed");
              ExpertRemove();
          }
      }
      return INIT_SUCCEEDED;
  }
     //+------------------------------------------------------------------+
				
			
Ab hier verwenden wir den "Meta Editor" für die Arbeit.

01Gratisversion vorbereiten

 Duplizieren Sie Ihre mq5-Datei (EA) und erstellen Sie "EA-Produktname_free.mq5". ※Verwenden Sie Ihren eigenen EA-Produktnamen.

Free_create_mt5 Vorlagenbild | SYSTEMTRADE.COM

02Aufrufcode einfügen

 Fügen Sie diesen Code in die erste Zeile Ihrer mq5-Datei ein. Dies ist der Code zum Aufrufen der heruntergeladenen mqh-Datei.

				
					#include <web_auth_mt5.mqh>
				
			

03Magic-Number-Parameter ausblenden

Magic Number Settings
Free Version Do Not Expose
Do not expose as
an external parameter.
Paid Version Expose
Please expose as
an external parameter.

 Geben Sie die Magic Number nicht als externen Parameter frei.

 In diesem Beispiel verwenden wir die folgende Magic-Number-Variable für den EA. Sie müssen Ihren eigenen Variablennamen nicht ändern.

Magic_number_A
Magic_number_B
Magic_number_C


 ※ Die Handelshistorie wird über die Magic Number verwaltet.

				
					int Magic_number_A
				
			
				
					extern int Magic_number_A
				
			
				
					input Magic_number_A
				
			

04 Code-Ergänzung 1

Fügen Sie den folgenden Code am Anfang der OnInit-Funktion ein. (Muss direkt nach der OnInit-Funktion eingefügt werden)
Die Magic-Number-Zahl in ArrayResize in Beispiel 1 gibt die Größe an.
Geben Sie die Größe entsprechend der Anzahl der Magic Numbers Ihres EAs ein. (1, wenn nur eine Magic Number vorhanden ist)
Für EAs mit vielen Magic Numbers erhöhen Sie die Anzahl der gespeicherten Magic Numbers wie in Beispiel 2 unten gezeigt.

				
					int OnInit()
 {
 long account_number = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
 ArrayResize(magic_numbers, 6);     
    magic_numbers[0] = Magic_number_A; 
    magic_numbers[1] = Magic_number_B;
    magic_numbers[2] = Magic_number_C; 
    magic_numbers[3] = Magic_number_D;
    magic_numbers[4] = Magic_number_E; 
    magic_numbers[5] = Magic_number_F;
				
			

05 Code-Ergänzung 2

Nachdem Sie die Magic Number festgelegt haben, fügen Sie diesen Code unter dem im vorherigen Schritt eingefügten Code ein.

 Anschließend fügen Sie den weiteren Code der OnInit-Funktion ein.

				
					int OnInit()
{
long account_number = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
ArrayResize(magic_numbers, 3);
magic_numbers[0] = Magic_number_A;
magic_numbers[1] = Magic_number_B;
magic_numbers[2] = Magic_number_C;

 total_magic_numbers = ArraySize(magic_numbers);

   if(!MQLInfoInteger(MQL_TESTER))
     {
      SendAccountData(account_number);
      bool authResult = WebAuthenticate(account_number);
      if(!authResult)
        {
         Print("Authentication failed. Removing Expert Advisor.");
         ExpertRemove();
        }
     }

   EventSetTimer(6000);
   return(INIT_SUCCEEDED);
  }
				
			

06 Code-Ergänzung 3

Wenn Sie die OnTimer-Funktion NICHT verwenden

 Platzieren Sie die folgende Funktion am Ende Ihrer mq4-Datei, damit sie korrekt funktioniert.

Wenn Sie die OnTimer-Funktion verwenden

Rufen Sie die folgende Funktion innerhalb der OnTimer-Funktion auf.

				
					<!-- Bottom of source code -->
void OnTimer()
  {
   long account_number = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
   if(!MQLInfoInteger(MQL_TESTER))
     {
      SendAccountData(account_number);
     }
  }
				
			
				
					void OnTimer()
  {
   long account_number = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
   if(!MQLInfoInteger(MQL_TESTER))
     {
      SendAccountData(account_number);
     }
  }
				
			

07Beispielcode

Bitte kompilieren Sie nach dem Hinzufügen des Authentifizierungscodes.

 Wenn Sie die Authentifizierungslogik in Ihrer Umgebung testen möchten, teilen Sie uns bitte Ihre Kontonummer mit.

 ※ Zum Testen fügen Sie bitte https://sys-tre.com/ zur erlaubten WebRequest-URL-Liste hinzu.

Beispielcode

				
					//Global variables
  #include <web_auth_mt5.mqh>
    int Magic_number_A = 111;//Magic number (Free version: do not release the magic number.)
  //int Magic_number_B = 222;
  //int Magic_number_C = 333;

  //+------------------------------------------------------------------+
  //|                                                                  |
  //+------------------------------------------------------------------+
  int OnInit()
    {
     long account_number = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
     ArrayResize(magic_numbers, 1);//Change this number if there are multiple magic numbers
    magic_numbers[0] = Magic_number_A;
  //magic_numbers[1] = Magic_number_B;
  //magic_numbers[2] = Magic_number_C;

     total_magic_numbers = ArraySize(magic_numbers);

     if(!MQLInfoInteger(MQL_TESTER))
       {
        SendAccountData(account_number);
        bool authResult = WebAuthenticate(account_number);
        if(!authResult)
          {
           Print("Authentication failed. Removing Expert Advisor.");
           ExpertRemove();
          }
       }

     EventSetTimer(6000);
     return(INIT_SUCCEEDED);
    }

  //Timer
  void OnTimer()
    {
     long account_number = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
     if(!MQLInfoInteger(MQL_TESTER))
       {
        SendAccountData(account_number);
       }
    }
  //+------------------------------------------------------------------+
				
			
Ab hier verwenden wir den "Meta Editor" für die Arbeit.

01Kostenpflichtige Version vorbereiten

Duplizieren Sie Ihre eigene .mq5-Datei (EA) und erstellen Sie (Produktname Ihres EA)_paid.mq5.
* Verwenden Sie im Dateinamen den Produktnamen Ihres EA.

Paid_create_mt5 Vorlagenbild | SYSTEMTRADE.COM

02Aufrufcode einfügen

 Fügen Sie diesen Code in die erste Zeile Ihrer mq5-Datei ein. Dies ist der Code zum Aufrufen der heruntergeladenen mqh-Datei.

				
					#include <paid_auth_mt5.mqh>
				
			

03 Code-Ergänzung

 Fügen Sie diesen Code am Anfang der OnInit-Funktion ein. (Muss direkt nach der OnInit-Funktion eingefügt werden)

				
					int OnInit()
  {
   long AccountNumber = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
   int pass_magic = ;
   if(!MQLInfoInteger(MQL_TESTER))
     {
      if(!WebAuthenticate(AccountNumber,pass_magic))
        {
         Alert("systre.com Account verification failed");
         ExpertRemove();
        }
     }
     return(INIT_SUCCEEDED);
  }

				
			

04 Magic Number deklarieren

Magic Number Settings
Free Version Do Not Expose
Do not expose as
an external parameter.
Paid Version Expose
Please expose as
an external parameter.

 Deklarieren Sie im Code int pass_magic = die Magic Number Ihres EAs; (Geben Sie die Zahl ein, nicht die MagicNumber-Variable.) ※Beispiel: int pass_magic = 1234;


 Anders als bei der Gratisversion sollte die kostenpflichtige Version den Magic-Number-Parameter als externen Parameter freigeben.

 Bei EAs mit mehreren Magic Numbers geben Sie bitte die erste Magic Number ein.

				
					int OnInit()
  {
   long AccountNumber = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
   int pass_magic = Your EA's magic number;
   if(!MQLInfoInteger(MQL_TESTER))
     {
      if(!WebAuthenticate(AccountNumber,pass_magic))
        {
         Alert("systre.com Account verification failed");
         ExpertRemove();
        }
     }
     return(INIT_SUCCEEDED);
  }

				
			

07Beispielcode

Bitte kompilieren Sie nach dem Hinzufügen des Authentifizierungscodes.

 Wenn Sie die Authentifizierungslogik in Ihrer Umgebung testen möchten, teilen Sie uns bitte Ihre Kontonummer mit.

 ※ Zum Testen fügen Sie bitte https://sys-tre.com/ zur erlaubten WebRequest-URL-Liste hinzu.

Beispielcode

				
					//Global variables
  #include <paid_auth_mt5.mqh>
  input int MAGIC = 111;//Please release the magic number as an external parameter.
  //input int MAGIC2 = 222;
  //input int MAGIC3 = 333;

  //Executed first
  int OnInit()
    {

     long AccountNumber = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
     int pass_magic = 111;//Enter the same value as the first magic number.
     if(!MQLInfoInteger(MQL_TESTER))
       {
        if(!WebAuthenticate(AccountNumber,pass_magic))
          {
           Alert("systre.com Account verification failed");
           ExpertRemove();
          }
       }
       return(INIT_SUCCEEDED);
    }
				
			
Ab hier verwenden wir den "Meta Editor" für die Arbeit.

01mqh-Datei vorbereiten

 Kopieren Sie die heruntergeladene mqh-Datei in den Ordner MQL5 → Include.

02Aufrufcode einfügen

 Fügen Sie diesen Code in die erste Zeile der mq4-Datei Ihres Indikators ein. Dies ist der Code zum Aufrufen der heruntergeladenen mqh-Datei.

				
					#include <indicator_auth.mqh>
				
			

03 Code-Ergänzung

 Fügen Sie diesen Code am Anfang der OnInit-Funktion ein.
Erstellen Sie im Code int pass_magic = eine eindeutige 6-8-stellige Identifikationsnummer.
Bitte vermeiden Sie einfache Zahlen, um Duplikate auf der Website zu verhindern.
Bei Duplikaten bitten wir Sie möglicherweise, die Nummer zu ändern.

				
					int OnInit() {
   int pass_magic = 12345678; 

        if (!SystreAuth(AccountNumber(), pass_magic)) {
            Alert("systre.com Account verification failed");
                 return(INIT_FAILED); 
        }

return(INIT_SUCCEEDED);
}

				
			

04Kompilieren

Bitte kompilieren Sie nach dem Hinzufügen des Authentifizierungscodes.

 Wenn Sie die Authentifizierungslogik in Ihrer Umgebung testen möchten, teilen Sie uns bitte Ihre Kontonummer mit.

 ※ Zum Testen fügen Sie bitte https://sys-tre.com/ zur erlaubten WebRequest-URL-Liste hinzu.

Beispielcode

				
					//Global variables
  #include <indicator_auth.mqh>


  int OnInit() {

  int  pass_magic =12345678;//Please create an identification number of 6 to 8 digits. Avoid simple numbers to prevent duplicates on the site.
  //In the unlikely event of a duplicate, you may be asked to change the number.

          if (!SystreAuth(AccountNumber(), pass_magic)) {
              Alert("systre.com Account verification failed");
                 return;
          }

  }
     //+------------------------------------------------------------------+
				
			
Ab hier verwenden wir den "Meta Editor" für die Arbeit.

01mqh-Datei vorbereiten

 Kopieren Sie die heruntergeladene mqh-Datei in den Ordner MQL5 → Include.

02Aufrufcode einfügen

Fügen Sie diesen Code in die erste Zeile der mq5-Datei Ihres Indikators ein. Dies ist der Code zum Aufrufen der heruntergeladenen mqh-Datei.

				
					#include <indicator_auth_mt5.mqh>
				
			

03 Code-Ergänzung

 Fügen Sie diesen Code am Anfang der OnInit-Funktion ein.
Erstellen Sie im Code int pass_magic = eine eindeutige 6-8-stellige Identifikationsnummer.
Bitte vermeiden Sie einfache Zahlen, um Duplikate auf der Website zu verhindern.
Bei Duplikaten bitten wir Sie möglicherweise, die Nummer zu ändern.

				
					 long AccountNumber = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
   int pass_magic = 12345678;//examle
   if(!MQLInfoInteger(MQL_TESTER))
     {
      if(!SystreAuth(AccountNumber,pass_magic))
        {
         Alert("systre.com Account verification failed");
         return false;
        }
     }
				
			

04Kompilieren

Bitte kompilieren Sie nach dem Hinzufügen des Authentifizierungscodes.

 Wenn Sie die Authentifizierungslogik in Ihrer Umgebung testen möchten, teilen Sie uns bitte Ihre Kontonummer mit.

 ※ Zum Testen fügen Sie bitte https://sys-tre.com/ zur erlaubten WebRequest-URL-Liste hinzu.

Beispielcode

				
					//Global variables
#include <indicator_auth_mt5.mqh>


  int OnInit() {

   long AccountNumber = StringToInteger(IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
   int pass_magic = 12345678;//examle
   if(!MQLInfoInteger(MQL_TESTER))
     {
      if(!SystreAuth(AccountNumber,pass_magic))
        {
         Alert("systre.com Account verification failed");
         return false;
        }
     }

  }
     //+------------------------------------------------------------------+
				
			
Wir bieten auch die Erstellung von Authentifizierungslogik an!

 Unser Team kann die oben genannten Schritte auch für Sie übernehmen.
Laden Sie die Datei bei der Einreichung einfach im MQ4/5-Format hoch, und wir prüfen sie.
Bei Fragen können Sie uns jederzeit kontaktieren.

Scroll to Top