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
อย่าเปิดพารามิเตอร์ magic number เป็นพารามิเตอร์ภายนอก
แทรกโค้ดต่อไปนี้ที่จุดเริ่มต้นของฟังก์ชัน OnInit (ต้องแทรกทันทีหลังฟังก์ชัน OnInit)
ตัวเลข magic number ใน ArrayResize ในตัวอย่าง 1 คือการกำหนดขนาด
ใส่ขนาดตามจำนวน magic number ของ EA คุณ (ใส่ 1 หาก EA มี magic number เพียงตัวเดียว)
สำหรับ EA ที่มี magic number จำนวนมาก ให้เพิ่มจำนวน magic number ที่จัดเก็บตามตัวอย่าง 2 ด้านล่าง
หลังจากกำหนด magic number เสร็จแล้ว ให้แทรกโค้ดนี้ใต้โค้ดที่เพิ่มในขั้นตอนก่อนหน้า
จากนั้นแทรกโค้ดส่วนที่เหลือของฟังก์ชัน 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
※ หมายเหตุ
ต่างจากเวอร์ชันฟรี เวอร์ชันชำระเงินควรเปิดพารามิเตอร์ magic number เป็นพารามิเตอร์ภายนอกเพื่อให้ผู้ใช้เปลี่ยนได้
หากมี magic number หลายตัว ให้ใส่ค่าของ magic number ตัวแรก
#include
extern int MAGIC = Your EA's magic number;
แทรกโค้ดนี้ที่จุดเริ่มต้นของฟังก์ชัน OnInit ในโค้ด ให้ประกาศ int pass_magic = magic number ของ 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
อย่าเปิดพารามิเตอร์ magic number เป็นพารามิเตอร์ภายนอก
แทรกโค้ดต่อไปนี้ที่จุดเริ่มต้นของฟังก์ชัน OnInit (ต้องแทรกทันทีหลังฟังก์ชัน OnInit)
ตัวเลข magic number ใน ArrayResize ในตัวอย่าง 1 คือการกำหนดขนาด
ใส่ขนาดตามจำนวน magic number ของ EA คุณ (ใส่ 1 หาก EA มี magic number เพียงตัวเดียว)
สำหรับ EA ที่มี magic number จำนวนมาก ให้เพิ่มจำนวน magic number ที่จัดเก็บตามตัวอย่าง 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;
หลังจากกำหนด magic number เสร็จแล้ว ให้แทรกโค้ดนี้ใต้โค้ดที่เพิ่มในขั้นตอนก่อนหน้า
จากนั้นแทรกโค้ดส่วนที่เหลือของฟังก์ชัน 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 = magic number ของ EA คุณ; (ให้ใส่ตัวเลข ไม่ใช่ตัวแปร MagicNumber) ※ตัวอย่าง int pass_magic = 1234;
ต่างจากเวอร์ชันฟรี เวอร์ชันชำระเงินควรเปิดพารามิเตอร์ magic number เป็นพารามิเตอร์ภายนอกเพื่อให้ผู้ใช้เปลี่ยนได้
สำหรับ EA ที่ใช้ magic number หลายตัว กรุณาใส่ตัวเลขของ magic number ตัวแรก
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 ตอนลงขาย แล้วเราจะตรวจสอบให้
หากมีข้อสงสัย สามารถติดต่อสอบถามได้ตลอดเวลา