Compress paid & free files into ZIP and upload
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-файл и загрузите.

Скопируйте свой файл mq4 (EA) и создайте "название продукта EA_free.mq4". ※Используйте название своего продукта EA.
Вставьте этот код в первую строку вашего файла mq4. Это код для вызова скачанного файла mqh.
#include
Не делайте магический номер внешним параметром.
Вставьте следующий код в начало функции OnInit. (Необходимо вставить сразу после функции OnInit)
Число магического номера в ArrayResize в Примере 1 указывает размер.
Введите размер в соответствии с количеством магических номеров вашего EA. (Введите 1, если у EA только один магический номер)
Для EA с большим количеством магических номеров увеличьте количество хранимых магических номеров, как показано в Примере 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);
}
Разместите следующую функцию в самом низу файла mq4, и она будет работать корректно.
Вызовите следующую функцию внутри функции OnTimer.
void OnTimer()
{
if(!IsTesting())
{
SendAccountData(AccountNumber());
}
}
void OnTimer()
{
if(!IsTesting())
{
SendAccountData(AccountNumber());
}
}
Выполните компиляцию после добавления кода аутентификации.
Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.
※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.
//Global variables
#include
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());
}
}
//+------------------------------------------------------------------+

Скопируйте свой файл mq4 (EA) и создайте (название продукта EA)_paid.mq4. ※Используйте название своего продукта EA.
Вставьте этот код в первую строку вашего файла mq4. Это код для вызова скачанного файла mqh.
#include
※ Внимание
В отличие от бесплатной версии, в платной версии сделайте параметр магического номера внешним.
Если у вас несколько магических номеров, введите значение первого магического номера.
#include
extern int MAGIC = Your EA's magic number;
Вставьте этот код в начало функции 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;
}
Выполните компиляцию после добавления кода аутентификации.
Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.
※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.
//Global variables
#include
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;
}
//+------------------------------------------------------------------+

Скопируйте свой файл mq5 (EA) и создайте "название продукта EA_free.mq5". ※Используйте название своего продукта EA.
Вставьте этот код в первую строку вашего файла mq5. Это код для вызова скачанного файла mqh.
#include
Не делайте магический номер внешним параметром.
Вставьте следующий код в начало функции 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;
После указания магического номера вставьте этот код под кодом, добавленным на предыдущем шаге.
Далее вставьте продолжение кода функции 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);
}
Разместите следующую функцию в самом низу файла mq4, и она будет работать корректно.
Вызовите следующую функцию внутри функции OnTimer.
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);
}
}
Выполните компиляцию после добавления кода аутентификации.
Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.
※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.
//Global variables
#include
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);
}
}
//+------------------------------------------------------------------+

Скопируйте свой файл .mq5 (EA) и создайте (название вашего товара EA)_paid.mq5.
* В имени файла используйте название вашего товара EA.
Вставьте этот код в первую строку вашего файла mq5. Это код для вызова скачанного файла mqh.
#include
Вставьте этот код в начало функции 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);
}
В коде объявите 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);
}
Выполните компиляцию после добавления кода аутентификации.
Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.
※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.
//Global variables
#include
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);
}

Скопируйте скачанный файл mqh в папку MQL5 → Include.
Вставьте этот код в первую строку файла mq4 вашего индикатора. Это код для вызова скачанного файла mqh.
#include
Вставьте этот код в начало функции 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);
}
Выполните компиляцию после добавления кода аутентификации.
Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.
※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.
//Global variables
#include
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;
}
}
//+------------------------------------------------------------------+

Скопируйте скачанный файл mqh в папку MQL5 → Include.
Вставьте этот код в первую строку файла mq5 вашего индикатора. Это код для вызова скачанного файла mqh.
#include
Вставьте этот код в начало функции 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;
}
}
Выполните компиляцию после добавления кода аутентификации.
Если вы хотите протестировать логику аутентификации в своей среде, сообщите нам номер вашего счёта.
※ Для тестирования добавьте https://sys-tre.com/ в список разрешённых URL WebRequest.
//Global variables
#include
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 при размещении, и мы его проверим.
Если у вас есть вопросы, не стесняйтесь обращаться к нам.