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.

Vous pouvez soumettre au format ex4/5 avec la logique d'authentification de compte et d'historique de trading intégrée.
Lors de la mise en vente avec des fichiers ex4/5, veuillez compresser les versions payante et gratuite dans un fichier zip.

À partir d'ici, nous utiliserons "Meta Editor" pour procéder.

01Préparer la version gratuite

 Dupliquez votre fichier mq4 (EA) et créez "nom du produit EA_free.mq4". ※Utilisez le nom de votre propre produit EA.

Image modèle Free_create | SYSTEMTRADE.COM

02Insérer le code d'appel

 Insérez ce code à la première ligne de votre fichier mq4. C'est le code qui appelle le fichier mqh téléchargé.

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

03Masquer le paramètre 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.

 Ne pas exposer le magic number en tant que paramètre externe.

 Dans cet exemple, nous utiliserons la variable magic number suivante pour l'EA. Vous n'avez pas besoin de modifier le nom de votre propre variable.

Magic_number_A
Magic_number_B
Magic_number_C


 ※ L'historique de trading est géré à l'aide du magic number.

				
					int Magic_number_A
				
			
				
					extern int Magic_number_A
				
			
				
					input Magic_number_A
				
			

04 Ajout de code 1

Insérez le code suivant au début de la fonction OnInit. (Doit être inséré juste après la fonction OnInit)
Le chiffre du magic number dans ArrayResize de l'exemple 1 spécifie la taille.
Entrez la taille selon le nombre de magic numbers de votre EA. (Entrez 1 si votre EA n'a qu'un seul magic number)
Pour les EA avec de nombreux magic numbers, augmentez le nombre de magic numbers stockés comme indiqué dans l'exemple 2 ci-dessous.

				
					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 Ajout de code 2

 Après avoir spécifié le magic number, insérez ce code sous le code ajouté à l'étape précédente.

 Ensuite, insérez la suite du code de la fonction 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 Ajout de code 3

Si vous N'utilisez PAS la fonction OnTimer

 Placez la fonction suivante tout en bas de votre fichier mq4 pour qu'elle fonctionne correctement.

Si vous utilisez la fonction OnTimer

Appelez la fonction suivante à l'intérieur de la fonction OnTimer.

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

07Code exemple

Veuillez compiler après avoir ajouté le code d'authentification.

 Si vous souhaitez tester la logique d'authentification dans votre environnement, veuillez nous communiquer votre numéro de compte.

 ※ Pour les tests, veuillez ajouter https://sys-tre.com/ à la liste des URL WebRequest autorisées.

Code exemple

				
					//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());
       }
    }
  //+------------------------------------------------------------------+
				
			
À partir d'ici, nous utiliserons "Meta Editor" pour procéder.

01Préparer la version payante

 Dupliquez votre fichier mq4 (EA) et créez (nom du produit EA)_paid.mq4. ※Utilisez le nom de votre propre produit EA.

Image modèle Free_create | SYSTEMTRADE.COM

02Insérer le code d'appel

Insérez ce code à la première ligne de votre fichier mq4. C'est le code qui appelle le fichier mqh téléchargé.

				
					#include <paid_auth.mqh>
				
			

03 Déclarer le 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.

 ※ Attention
 Contrairement à la version gratuite, la version payante doit exposer le paramètre magic number en tant que paramètre externe.
 Si vous avez plusieurs magic numbers, entrez la valeur du premier magic number.

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

				
			

04 Ajout de code

 Insérez ce code au début de la fonction OnInit. Dans le code, déclarez int pass_magic = le magic number de votre 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;
}

				
			

05Code exemple

Veuillez compiler après avoir ajouté le code d'authentification.

 Si vous souhaitez tester la logique d'authentification dans votre environnement, veuillez nous communiquer votre numéro de compte.

 ※ Pour les tests, veuillez ajouter https://sys-tre.com/ à la liste des URL WebRequest autorisées.

Code exemple

				
					//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;
  }
     //+------------------------------------------------------------------+
				
			
À partir d'ici, nous utiliserons "Meta Editor" pour procéder.

01Préparer la version gratuite

 Dupliquez votre fichier mq5 (EA) et créez "nom du produit EA_free.mq5". ※Utilisez le nom de votre propre produit EA.

Image modèle Free_create_mt5 | SYSTEMTRADE.COM

02Insérer le code d'appel

 Insérez ce code à la première ligne de votre fichier mq5. C'est le code qui appelle le fichier mqh téléchargé.

				
					#include <web_auth_mt5.mqh>
				
			

03Masquer le paramètre 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.

 Ne pas exposer le magic number en tant que paramètre externe.

 Dans cet exemple, nous utiliserons la variable magic number suivante pour l'EA. Vous n'avez pas besoin de modifier le nom de votre propre variable.

Magic_number_A
Magic_number_B
Magic_number_C


 ※ L'historique de trading est géré à l'aide du magic number.

				
					int Magic_number_A
				
			
				
					extern int Magic_number_A
				
			
				
					input Magic_number_A
				
			

04 Ajout de code 1

Insérez le code suivant au début de la fonction OnInit. (Doit être inséré juste après la fonction OnInit)
Le chiffre du magic number dans ArrayResize de l'exemple 1 spécifie la taille.
Entrez la taille selon le nombre de magic numbers de votre EA. (Entrez 1 si votre EA n'a qu'un seul magic number)
Pour les EA avec de nombreux magic numbers, augmentez le nombre de magic numbers stockés comme indiqué dans l'exemple 2 ci-dessous.

				
					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 Ajout de code 2

Après avoir spécifié le magic number, insérez ce code sous le code ajouté à l'étape précédente.

 Ensuite, insérez la suite du code de la fonction 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 Ajout de code 3

Si vous N'utilisez PAS la fonction OnTimer

 Placez la fonction suivante tout en bas de votre fichier mq4 pour qu'elle fonctionne correctement.

Si vous utilisez la fonction OnTimer

Appelez la fonction suivante à l'intérieur de la fonction 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);
     }
  }
				
			

07Code exemple

Veuillez compiler après avoir ajouté le code d'authentification.

 Si vous souhaitez tester la logique d'authentification dans votre environnement, veuillez nous communiquer votre numéro de compte.

 ※ Pour les tests, veuillez ajouter https://sys-tre.com/ à la liste des URL WebRequest autorisées.

Code exemple

				
					//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);
       }
    }
  //+------------------------------------------------------------------+
				
			
À partir d'ici, nous utiliserons "Meta Editor" pour procéder.

01Préparer la version payante

Dupliquez votre fichier .mq5 (EA) et créez (nom de votre produit EA)_paid.mq5.
* Utilisez le nom de votre produit EA dans le nom du fichier.

Image modèle Paid_create_mt5 | SYSTEMTRADE.COM

02Insérer le code d'appel

 Insérez ce code à la première ligne de votre fichier mq5. C'est le code qui appelle le fichier mqh téléchargé.

				
					#include <paid_auth_mt5.mqh>
				
			

03 Ajout de code

 Insérez ce code au début de la fonction OnInit. (Doit être inséré juste après la fonction 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 Déclarer le 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.

 Dans le code, déclarez int pass_magic = le magic number de votre EA ; (Entrez le chiffre, pas la variable MagicNumber.) ※Exemple : int pass_magic = 1234;


 Contrairement à la version gratuite, la version payante doit exposer le paramètre magic number en tant que paramètre externe.

 Pour les EA utilisant plusieurs magic numbers, veuillez attribuer le premier 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);
  }

				
			

07Code exemple

Veuillez compiler après avoir ajouté le code d'authentification.

 Si vous souhaitez tester la logique d'authentification dans votre environnement, veuillez nous communiquer votre numéro de compte.

 ※ Pour les tests, veuillez ajouter https://sys-tre.com/ à la liste des URL WebRequest autorisées.

Code exemple

				
					//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);
    }
				
			
À partir d'ici, nous utiliserons "Meta Editor" pour procéder.

01Préparer le fichier mqh

 Copiez le fichier mqh téléchargé dans le dossier MQL5 → Include.

02Insérer le code d'appel

 Insérez ce code à la première ligne du fichier mq4 de votre indicateur. C'est le code qui appelle le fichier mqh téléchargé.

				
					#include <indicator_auth.mqh>
				
			

03 Ajout de code

 Insérez ce code au début de la fonction OnInit.
Dans le code, créez int pass_magic = un numéro d'identification unique de 6 à 8 chiffres.
Veuillez éviter les chiffres simples pour prévenir les doublons sur le site.
En cas de doublon, nous pourrons vous demander de modifier le numéro.

				
					int OnInit() {
   int pass_magic = 12345678; 

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

return(INIT_SUCCEEDED);
}

				
			

04Compiler

Veuillez compiler après avoir ajouté le code d'authentification.

 Si vous souhaitez tester la logique d'authentification dans votre environnement, veuillez nous communiquer votre numéro de compte.

 ※ Pour les tests, veuillez ajouter https://sys-tre.com/ à la liste des URL WebRequest autorisées.

Code exemple

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

  }
     //+------------------------------------------------------------------+
				
			
À partir d'ici, nous utiliserons "Meta Editor" pour procéder.

01Préparer le fichier mqh

 Copiez le fichier mqh téléchargé dans le dossier MQL5 → Include.

02Insérer le code d'appel

Insérez ce code à la première ligne du fichier mq5 de votre indicateur. C'est le code qui appelle le fichier mqh téléchargé.

				
					#include <indicator_auth_mt5.mqh>
				
			

03 Ajout de code

 Insérez ce code au début de la fonction OnInit.
Dans le code, créez int pass_magic = un numéro d'identification unique de 6 à 8 chiffres.
Veuillez éviter les chiffres simples pour prévenir les doublons sur le site.
En cas de doublon, nous pourrons vous demander de modifier le numéro.

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

04Compiler

Veuillez compiler après avoir ajouté le code d'authentification.

 Si vous souhaitez tester la logique d'authentification dans votre environnement, veuillez nous communiquer votre numéro de compte.

 ※ Pour les tests, veuillez ajouter https://sys-tre.com/ à la liste des URL WebRequest autorisées.

Code exemple

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

  }
     //+------------------------------------------------------------------+
				
			
Nous proposons également un service de création de logique d'authentification !

 Notre équipe peut également effectuer les étapes ci-dessus pour vous.
Si vous le souhaitez, téléversez simplement votre fichier au format MQ4/5 lors de la mise en vente, et nous le vérifierons.
N'hésitez pas à nous contacter pour toute question.

Scroll to Top