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.

Anda dapat mengirimkan dalam format ex4/5 dengan logika autentikasi akun dan pencatatan riwayat trading.
Saat listing dengan file ex4/5, kompres versi berbayar dan gratis menjadi satu file zip lalu unggah.

Selanjutnya, kita akan menggunakan "Meta Editor" untuk melanjutkan.

01Siapkan versi gratis

 Duplikasi file mq4 (EA) Anda dan buat "nama produk EA_free.mq4". ※Gunakan nama produk EA Anda sendiri.

Gambar templat Free_create | SYSTEMTRADE.COM

02Sisipkan kode pemanggilan

 Sisipkan kode ini di baris pertama file mq4 Anda. Ini adalah kode untuk memanggil file mqh yang telah diunduh.

SYSTEMTRADE.COM gambar | SYSTEMTRADE.COM
				
					#include <web_auth.mqh>
				
			

03Sembunyikan parameter magic number

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

 Jangan buka magic number sebagai parameter eksternal.

 Dalam contoh ini, kita akan menggunakan variabel magic number EA berikut. Anda tidak perlu mengubah nama variabel magic number Anda.

Magic_number_A
Magic_number_B
Magic_number_C


 ※ Riwayat trading dikelola menggunakan magic number.

				
					int Magic_number_A
				
			
				
					extern int Magic_number_A
				
			
				
					input Magic_number_A
				
			

04 Penambahan Kode 1

Sisipkan kode berikut di awal fungsi OnInit. (Harus disisipkan tepat setelah fungsi OnInit)
Angka magic number pada ArrayResize di Contoh 1 adalah spesifikasi ukuran.
Masukkan ukuran sesuai jumlah magic number EA Anda. (Masukkan 1 jika EA hanya memiliki satu magic number)
Untuk EA dengan banyak magic number, tambahkan jumlah magic number yang disimpan seperti pada Contoh 2 di bawah.

				
					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 Penambahan Kode 2

 Setelah menentukan magic number, sisipkan kode ini di bawah kode yang ditambahkan pada langkah sebelumnya.

 Selanjutnya, sisipkan kode lanjutan fungsi 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 Penambahan Kode 3

Jika Anda TIDAK menggunakan fungsi OnTimer

 Tempatkan fungsi berikut di bagian paling bawah file mq4 Anda dan akan berfungsi dengan normal.

Jika Anda menggunakan fungsi OnTimer

Panggil fungsi berikut di dalam fungsi OnTimer.

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

07Kode Contoh

Silakan kompilasi setelah menambahkan kode autentikasi.

 Jika ingin menguji logika autentikasi di lingkungan Anda, silakan berikan nomor akun Anda.

 ※ Untuk pengujian, tambahkan https://sys-tre.com/ ke daftar URL WebRequest yang diizinkan.

Kode Contoh

				
					//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());
       }
    }
  //+------------------------------------------------------------------+
				
			
Selanjutnya, kita akan menggunakan "Meta Editor" untuk melanjutkan.

01Siapkan versi berbayar

 Duplikasi file mq4 (EA) Anda dan buat (nama produk EA)_paid.mq4. ※Gunakan nama produk EA Anda sendiri.

Gambar templat Free_create | SYSTEMTRADE.COM

02Sisipkan kode pemanggilan

Sisipkan kode ini di baris pertama file mq4 Anda. Ini adalah kode untuk memanggil file mqh yang telah diunduh.

				
					#include <paid_auth.mqh>
				
			

03 Deklarasikan magic number

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

 ※ Perhatian
 Berbeda dengan versi gratis, versi berbayar harus membuka parameter magic number sebagai parameter eksternal agar pengguna dapat mengubahnya.
 Jika memiliki beberapa magic number, masukkan nilai magic number pertama.

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

				
			

04 Penambahan Kode

 Sisipkan kode ini di awal fungsi OnInit. Dalam kode, deklarasikan int pass_magic = magic number EA Anda;

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

				
			

05Kode Contoh

Silakan kompilasi setelah menambahkan kode autentikasi.

 Jika ingin menguji logika autentikasi di lingkungan Anda, silakan berikan nomor akun Anda.

 ※ Untuk pengujian, tambahkan https://sys-tre.com/ ke daftar URL WebRequest yang diizinkan.

Kode Contoh

				
					//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;
  }
     //+------------------------------------------------------------------+
				
			
Selanjutnya, kita akan menggunakan "Meta Editor" untuk melanjutkan.

01Siapkan versi gratis

 Duplikasi file mq5 (EA) Anda dan buat "nama produk EA_free.mq5". ※Gunakan nama produk EA Anda sendiri.

Gambar templat Free_create_mt5 | SYSTEMTRADE.COM

02Sisipkan kode pemanggilan

 Sisipkan kode ini di baris pertama file mq5 Anda. Ini adalah kode untuk memanggil file mqh yang telah diunduh.

				
					#include <web_auth_mt5.mqh>
				
			

03Sembunyikan parameter magic number

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

 Jangan buka magic number sebagai parameter eksternal.

 Dalam contoh ini, kita akan menggunakan variabel magic number EA berikut. Anda tidak perlu mengubah nama variabel magic number Anda.

Magic_number_A
Magic_number_B
Magic_number_C


 ※ Riwayat trading dikelola menggunakan magic number.

				
					int Magic_number_A
				
			
				
					extern int Magic_number_A
				
			
				
					input Magic_number_A
				
			

04 Penambahan Kode 1

Sisipkan kode berikut di awal fungsi OnInit. (Harus disisipkan tepat setelah fungsi OnInit)
Angka magic number pada ArrayResize di Contoh 1 adalah spesifikasi ukuran.
Masukkan ukuran sesuai jumlah magic number EA Anda. (Masukkan 1 jika EA hanya memiliki satu magic number)
Untuk EA dengan banyak magic number, tambahkan jumlah magic number yang disimpan seperti pada Contoh 2 di bawah.

				
					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 Penambahan Kode 2

Setelah menentukan magic number, sisipkan kode ini di bawah kode yang ditambahkan pada langkah sebelumnya.

 Selanjutnya, sisipkan kode lanjutan fungsi 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 Penambahan Kode 3

Jika Anda TIDAK menggunakan fungsi OnTimer

 Tempatkan fungsi berikut di bagian paling bawah file mq4 Anda dan akan berfungsi dengan normal.

Jika Anda menggunakan fungsi OnTimer

Panggil fungsi berikut di dalam fungsi 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);
     }
  }
				
			

07Kode Contoh

Silakan kompilasi setelah menambahkan kode autentikasi.

 Jika ingin menguji logika autentikasi di lingkungan Anda, silakan berikan nomor akun Anda.

 ※ Untuk pengujian, tambahkan https://sys-tre.com/ ke daftar URL WebRequest yang diizinkan.

Kode Contoh

				
					//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);
       }
    }
  //+------------------------------------------------------------------+
				
			
Selanjutnya, kita akan menggunakan "Meta Editor" untuk melanjutkan.

01Siapkan versi berbayar

Duplikasi berkas .mq5 (EA) Anda dan buat (nama produk EA Anda)_paid.mq5.
※ Gunakan nama produk EA Anda sendiri pada nama berkas.

Gambar templat Paid_create_mt5 | SYSTEMTRADE.COM

02Sisipkan kode pemanggilan

 Sisipkan kode ini di baris pertama file mq5 Anda. Ini adalah kode untuk memanggil file mqh yang telah diunduh.

				
					#include <paid_auth_mt5.mqh>
				
			

03 Penambahan Kode

 Sisipkan kode ini di awal fungsi OnInit. (Harus disisipkan tepat setelah fungsi 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 Deklarasikan magic number

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

 Dalam kode, deklarasikan int pass_magic = magic number EA Anda; (Masukkan angka, bukan variabel MagicNumber.) ※Contoh: int pass_magic = 1234;


 Berbeda dengan versi gratis, versi berbayar harus membuka parameter magic number sebagai parameter eksternal agar pengguna dapat mengubahnya.

 Untuk EA yang menggunakan beberapa magic number, masukkan angka magic number pertama.

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

				
			

07Kode Contoh

Silakan kompilasi setelah menambahkan kode autentikasi.

 Jika ingin menguji logika autentikasi di lingkungan Anda, silakan berikan nomor akun Anda.

 ※ Untuk pengujian, tambahkan https://sys-tre.com/ ke daftar URL WebRequest yang diizinkan.

Kode Contoh

				
					//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);
    }
				
			
Selanjutnya, kita akan menggunakan "Meta Editor" untuk melanjutkan.

01Siapkan file mqh

 Salin file mqh yang diunduh ke folder MQL5 → Include.

02Sisipkan kode pemanggilan

 Sisipkan kode ini di baris pertama file mq4 indikator Anda. Ini adalah kode untuk memanggil file mqh yang telah diunduh.

				
					#include <indicator_auth.mqh>
				
			

03 Penambahan Kode

 Sisipkan kode ini di awal fungsi OnInit.
Dalam kode, buat int pass_magic = nomor identifikasi unik 6-8 digit.
Hindari angka sederhana untuk mencegah duplikasi di dalam situs.
Jika terjadi duplikasi, kami mungkin meminta Anda untuk mengubah nomor.

				
					int OnInit() {
   int pass_magic = 12345678; 

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

return(INIT_SUCCEEDED);
}

				
			

04Kompilasi

Silakan kompilasi setelah menambahkan kode autentikasi.

 Jika ingin menguji logika autentikasi di lingkungan Anda, silakan berikan nomor akun Anda.

 ※ Untuk pengujian, tambahkan https://sys-tre.com/ ke daftar URL WebRequest yang diizinkan.

Kode Contoh

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

  }
     //+------------------------------------------------------------------+
				
			
Selanjutnya, kita akan menggunakan "Meta Editor" untuk melanjutkan.

01Siapkan file mqh

 Salin file mqh yang diunduh ke folder MQL5 → Include.

02Sisipkan kode pemanggilan

Sisipkan kode ini di baris pertama file mq5 indikator Anda. Ini adalah kode untuk memanggil file mqh yang telah diunduh.

				
					#include <indicator_auth_mt5.mqh>
				
			

03 Penambahan Kode

 Sisipkan kode ini di awal fungsi OnInit.
Dalam kode, buat int pass_magic = nomor identifikasi unik 6-8 digit.
Hindari angka sederhana untuk mencegah duplikasi di dalam situs.
Jika terjadi duplikasi, kami mungkin meminta Anda untuk mengubah nomor.

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

04Kompilasi

Silakan kompilasi setelah menambahkan kode autentikasi.

 Jika ingin menguji logika autentikasi di lingkungan Anda, silakan berikan nomor akun Anda.

 ※ Untuk pengujian, tambahkan https://sys-tre.com/ ke daftar URL WebRequest yang diizinkan.

Kode Contoh

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

  }
     //+------------------------------------------------------------------+
				
			
Kami juga menyediakan layanan pembuatan logika autentikasi!

 Tim kami juga dapat menangani langkah-langkah di atas untuk Anda.
Jika berminat, cukup unggah file dalam format MQ4/5 saat mendaftar, dan kami akan memeriksanya.
Jika ada pertanyaan, jangan ragu untuk menghubungi kami.

Scroll to Top