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名称请使用您自己的EA商品名。

Free_create 的模板图片 | SYSTEMTRADE.COM

02插入调用代码

 请在mq4文件第1行插入此代码。这是调用之前下载的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的魔术编号数字是大小指定。
请根据EA的魔术编号个数输入大小。(如果只有一个魔术编号则输入1)
对于拥有多个魔术编号的EA,请如下方示例②所示增加存储的魔术编号数量。

				
					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/ 添加到WebRequest允许的URL列表中。

示例代码

				
					//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名称请使用您自己的EA商品名。

Free_create 的模板图片 | SYSTEMTRADE.COM

02插入调用代码

请在mq4文件第1行插入此代码。这是调用之前下载的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/ 添加到WebRequest允许的URL列表中。

示例代码

				
					//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名称请使用您自己的EA商品名。

Free_create_mt5 的模板图片 | SYSTEMTRADE.COM

02插入调用代码

 请在mq5文件第1行插入此代码。这是调用之前下载的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的魔术编号数字是大小指定。
请根据EA的魔术编号个数输入大小。(如果只有一个魔术编号则输入1)
对于拥有多个魔术编号的EA,请如下方示例②所示增加存储的魔术编号数量。

				
					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/ 添加到WebRequest允许的URL列表中。

示例代码

				
					//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文件第1行插入此代码。这是调用之前下载的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/ 添加到WebRequest允许的URL列表中。

示例代码

				
					//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文件第1行插入此代码。这是调用之前下载的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/ 添加到WebRequest允许的URL列表中。

示例代码

				
					//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文件第1行插入此代码。这是调用之前下载的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/ 添加到WebRequest允许的URL列表中。

示例代码

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