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.

Вы можете отправить в формате ex4/5 с логикой аутентификации аккаунта и записи торговой истории.
При размещении с файлами ex4/5 сожмите платную и бесплатную версии в один zip-файл и загрузите.

Далее мы будем использовать "Meta Editor" для работы.

01Подготовить бесплатную версию

 Скопируйте свой файл mq4 (EA) и создайте "название продукта EA_free.mq4". ※Используйте название своего продукта EA.

Шаблонное изображение Free_create | SYSTEMTRADE.COM

02Вставить код вызова

 Вставьте этот код в первую строку вашего файла mq4. Это код для вызова скачанного файла mqh.

SYSTEMTRADE.COM изображение | SYSTEMTRADE.COM
				
					#include <web_auth.mqh>
				
			

03Скрыть параметр магического номера

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

 Не делайте магический номер внешним параметром.

 В данном примере мы используем следующую переменную магического номера EA. Вам не нужно менять имя своей переменной.

Magic_number_A
Magic_number_B
Magic_number_C


 ※ Торговая история управляется с помощью магического номера.

				
					int Magic_number_A
				
			
				
					extern int Magic_number_A
				
			
				
					input Magic_number_A
				
			

04 Добавление кода 1

Вставьте следующий код в начало функции OnInit. (Необходимо вставить сразу после функции OnInit)
Число магического номера в ArrayResize в Примере 1 указывает размер.
Введите размер в соответствии с количеством магических номеров вашего EA. (Введите 1, если у EA только один магический номер)
Для EA с большим количеством магических номеров увеличьте количество хранимых магических номеров, как показано в Примере 2 ниже.

				
					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 Добавление кода 2

 После указания магического номера вставьте этот код под кодом, добавленным на предыдущем шаге.

 Далее вставьте продолжение кода функции OnInit.

				
					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 Добавление кода 3

Если вы НЕ используете функцию OnTimer

 Разместите следующую функцию в самом низу файла mq4, и она будет работать корректно.

Если вы используете функцию OnTimer

Вызовите следующую функцию внутри функции OnTimer.

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

07Пример кода

Выполните компиляцию после добавления кода аутентификации.

 Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.

 ※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.

Пример кода

				
					//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());
       }
    }
  //+------------------------------------------------------------------+
				
			
Далее мы будем использовать "Meta Editor" для работы.

01Подготовить платную версию

 Скопируйте свой файл mq4 (EA) и создайте (название продукта EA)_paid.mq4. ※Используйте название своего продукта EA.

Шаблонное изображение Free_create | SYSTEMTRADE.COM

02Вставить код вызова

Вставьте этот код в первую строку вашего файла mq4. Это код для вызова скачанного файла mqh.

				
					#include <paid_auth.mqh>
				
			

03 Объявить магический номер

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

 ※ Внимание
 В отличие от бесплатной версии, в платной версии сделайте параметр магического номера внешним.
 Если у вас несколько магических номеров, введите значение первого магического номера.

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

				
			

04 Добавление кода

 Вставьте этот код в начало функции OnInit. В коде объявите int pass_magic = магический номер вашего EA;

				
					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;
}

				
			

05Пример кода

Выполните компиляцию после добавления кода аутентификации.

 Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.

 ※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.

Пример кода

				
					//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;
  }
     //+------------------------------------------------------------------+
				
			
Далее мы будем использовать "Meta Editor" для работы.

01Подготовить бесплатную версию

 Скопируйте свой файл mq5 (EA) и создайте "название продукта EA_free.mq5". ※Используйте название своего продукта EA.

Шаблонное изображение Free_create_mt5 | SYSTEMTRADE.COM

02Вставить код вызова

 Вставьте этот код в первую строку вашего файла mq5. Это код для вызова скачанного файла mqh.

				
					#include <web_auth_mt5.mqh>
				
			

03Скрыть параметр магического номера

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

 Не делайте магический номер внешним параметром.

 В данном примере мы используем следующую переменную магического номера EA. Вам не нужно менять имя своей переменной.

Magic_number_A
Magic_number_B
Magic_number_C


 ※ Торговая история управляется с помощью магического номера.

				
					int Magic_number_A
				
			
				
					extern int Magic_number_A
				
			
				
					input Magic_number_A
				
			

04 Добавление кода 1

Вставьте следующий код в начало функции OnInit. (Необходимо вставить сразу после функции OnInit)
Число магического номера в ArrayResize в Примере 1 указывает размер.
Введите размер в соответствии с количеством магических номеров вашего EA. (Введите 1, если у EA только один магический номер)
Для EA с большим количеством магических номеров увеличьте количество хранимых магических номеров, как показано в Примере 2 ниже.

				
					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 Добавление кода 2

После указания магического номера вставьте этот код под кодом, добавленным на предыдущем шаге.

 Далее вставьте продолжение кода функции OnInit.

				
					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 Добавление кода 3

Если вы НЕ используете функцию OnTimer

 Разместите следующую функцию в самом низу файла mq4, и она будет работать корректно.

Если вы используете функцию OnTimer

Вызовите следующую функцию внутри функции OnTimer.

				
					<!-- 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);
     }
  }
				
			

07Пример кода

Выполните компиляцию после добавления кода аутентификации.

 Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.

 ※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.

Пример кода

				
					//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);
       }
    }
  //+------------------------------------------------------------------+
				
			
Далее мы будем использовать "Meta Editor" для работы.

01Подготовить платную версию

Скопируйте свой файл .mq5 (EA) и создайте (название вашего товара EA)_paid.mq5.
* В имени файла используйте название вашего товара EA.

Шаблонное изображение Paid_create_mt5 | SYSTEMTRADE.COM

02Вставить код вызова

 Вставьте этот код в первую строку вашего файла mq5. Это код для вызова скачанного файла mqh.

				
					#include <paid_auth_mt5.mqh>
				
			

03 Добавление кода

 Вставьте этот код в начало функции OnInit. (Необходимо вставить сразу после функции OnInit)

				
					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 Settings
Free Version Do Not Expose
Do not expose as
an external parameter.
Paid Version Expose
Please expose as
an external parameter.

 В коде объявите int pass_magic = магический номер вашего EA; (Введите число, а не переменную MagicNumber.) ※Пример: int pass_magic = 1234;


 В отличие от бесплатной версии, в платной версии сделайте параметр магического номера внешним.

 Для EA с несколькими магическими номерами укажите первый магический номер.

				
					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);
  }

				
			

07Пример кода

Выполните компиляцию после добавления кода аутентификации.

 Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.

 ※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.

Пример кода

				
					//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);
    }
				
			
Далее мы будем использовать "Meta Editor" для работы.

01Подготовить файл mqh

 Скопируйте скачанный файл mqh в папку MQL5 → Include.

02Вставить код вызова

 Вставьте этот код в первую строку файла mq4 вашего индикатора. Это код для вызова скачанного файла mqh.

				
					#include <indicator_auth.mqh>
				
			

03 Добавление кода

 Вставьте этот код в начало функции OnInit.
В коде создайте int pass_magic = уникальный идентификационный номер из 6-8 цифр.
Избегайте простых чисел, чтобы предотвратить дублирование на сайте.
В случае дублирования мы можем попросить вас изменить номер.

				
					int OnInit() {
   int pass_magic = 12345678; 

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

return(INIT_SUCCEEDED);
}

				
			

04Компиляция

Выполните компиляцию после добавления кода аутентификации.

 Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.

 ※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.

Пример кода

				
					//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;
          }

  }
     //+------------------------------------------------------------------+
				
			
Далее мы будем использовать "Meta Editor" для работы.

01Подготовить файл mqh

 Скопируйте скачанный файл mqh в папку MQL5 → Include.

02Вставить код вызова

Вставьте этот код в первую строку файла mq5 вашего индикатора. Это код для вызова скачанного файла mqh.

				
					#include <indicator_auth_mt5.mqh>
				
			

03 Добавление кода

 Вставьте этот код в начало функции OnInit.
В коде создайте int pass_magic = уникальный идентификационный номер из 6-8 цифр.
Избегайте простых чисел, чтобы предотвратить дублирование на сайте.
В случае дублирования мы можем попросить вас изменить номер.

				
					 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;
        }
     }
				
			

04Компиляция

Выполните компиляцию после добавления кода аутентификации.

 Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.

 ※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.

Пример кода

				
					//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;
        }
     }

  }
     //+------------------------------------------------------------------+
				
			
Мы также предлагаем услуги по разработке логики аутентификации!

 Наша команда также может выполнить вышеуказанные шаги за вас.
При желании просто загрузите файл в формате MQ4/5 при размещении, и мы его проверим.
Если у вас есть вопросы, не стесняйтесь обращаться к нам.

Scroll to Top