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

Dupliquez votre fichier mq4 (EA) et créez "nom du produit EA_free.mq4". ※Utilisez le nom de votre propre produit EA.
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
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
•
•
•
int Magic_number_A
extern int Magic_number_A
input Magic_number_A
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.
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);
}
Placez la fonction suivante tout en bas de votre fichier mq4 pour qu'elle fonctionne correctement.
Appelez la fonction suivante à l'intérieur de la fonction OnTimer.
void OnTimer()
{
if(!IsTesting())
{
SendAccountData(AccountNumber());
}
}
void OnTimer()
{
if(!IsTesting())
{
SendAccountData(AccountNumber());
}
}
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.
//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());
}
}
//+------------------------------------------------------------------+

Dupliquez votre fichier mq4 (EA) et créez (nom du produit EA)_paid.mq4. ※Utilisez le nom de votre propre produit EA.
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
※ 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
extern int MAGIC = Your EA's magic number;
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;
}
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.
//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;
}
//+------------------------------------------------------------------+

Dupliquez votre fichier mq5 (EA) et créez "nom du produit EA_free.mq5". ※Utilisez le nom de votre propre produit EA.
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
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
•
•
•
int Magic_number_A
extern int Magic_number_A
input Magic_number_A
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;
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);
}
Placez la fonction suivante tout en bas de votre fichier mq4 pour qu'elle fonctionne correctement.
Appelez la fonction suivante à l'intérieur de la fonction 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);
}
}
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.
//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);
}
}
//+------------------------------------------------------------------+

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

Copiez le fichier mqh téléchargé dans le dossier MQL5 → Include.
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
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);
}
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.
//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;
}
}
//+------------------------------------------------------------------+

Copiez le fichier mqh téléchargé dans le dossier MQL5 → Include.
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
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;
}
}
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.
//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;
}
}
}
//+------------------------------------------------------------------+
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.