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名称请使用您自己的EA商品名。
请在mq4文件第1行插入此代码。这是调用之前下载的mqh文件的代码。
#include
请勿将魔术编号设为外部参数。
请在OnInit函数的开头插入以下代码。(必须紧跟在OnInit函数之后插入)
示例①中ArrayResize的魔术编号数字是大小指定。
请根据EA的魔术编号个数输入大小。(如果只有一个魔术编号则输入1)
对于拥有多个魔术编号的EA,请如下方示例②所示增加存储的魔术编号数量。
指定完魔术编号后,请在上一步插入的代码下方插入此代码。
接下来插入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/ 添加到WebRequest允许的URL列表中。
//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名称请使用您自己的EA商品名。
请在mq4文件第1行插入此代码。这是调用之前下载的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/ 添加到WebRequest允许的URL列表中。
//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名称请使用您自己的EA商品名。
请在mq5文件第1行插入此代码。这是调用之前下载的mqh文件的代码。
#include
请勿将魔术编号设为外部参数。
请在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;
指定完魔术编号后,请在上一步插入的代码下方插入此代码。
接下来插入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/ 添加到WebRequest允许的URL列表中。
//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文件第1行插入此代码。这是调用之前下载的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/ 添加到WebRequest允许的URL列表中。
//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文件第1行插入此代码。这是调用之前下载的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/ 添加到WebRequest允许的URL列表中。
//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文件第1行插入此代码。这是调用之前下载的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/ 添加到WebRequest允许的URL列表中。
//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格式文件,我们将为您确认。
如有任何疑问,请随时与我们联系。