Le MQL5 est un langage de programmation de haut niveau utilisé pour développer des indicateurs personnalisés, des Expert Advisors (EA) et d'autres stratégies de trading automatisées pour la plateforme de trading MetaTrader 5. Voici les principales caractéristiques du langage MQL5 :
- Programmation orientée objet : le MQL5 est un langage orienté objet, c'est-à-dire fondé sur le concept d'objets qui contiennent à la fois des données et des méthodes. Cela rend la programmation plus simple et plus efficace, tout en permettant une meilleure organisation et une meilleure réutilisation du code.
- Environnement de développement intégré : le MQL5 est fourni avec un environnement de développement intégré (IDE) comprenant un éditeur de code, un compilateur et un débogueur. Il est ainsi facile d'écrire et de tester du code directement dans la plateforme MetaTrader 5.
- Bibliothèque étendue : le MQL5 dispose d'une vaste bibliothèque de fonctions et d'indicateurs intégrés, utilisables pour développer des stratégies de trading. De plus, de nombreuses bibliothèques tierces peuvent être intégrées aux programmes MQL5.
- Programmation événementielle : le MQL5 repose sur un modèle de programmation événementielle, ce qui signifie que les programmes s'exécutent en réponse à des événements précis, tels que des variations de prix, des exécutions d'ordres ou des événements de minuterie.
- Multithreading : le MQL5 permet la programmation multithread, c'est-à-dire la création de plusieurs threads pour exécuter simultanément différentes parties d'un programme. Cela peut être utile pour optimiser les performances et gérer des stratégies de trading complexes.
- Prise en charge de plusieurs types de données : le MQL5 prend en charge un large éventail de types de données, notamment les entiers, les nombres à virgule flottante, les chaînes de caractères et les tableaux. Il intègre en outre la prise en charge des données financières, telles que les données de prix et de volume.
Voici un exemple simple de programme MQL5 qui calcule la moyenne mobile d'une paire de devises et affiche le résultat dans la fenêtre du terminal :
// --- input parameters
input int Period = 20; // Period of the moving average
input ENUM_APPLIED_PRICE PriceType = PRICE_CLOSE; // Applied price type
// --- global variables
double MovingAverage; // Moving average value
// --- initialization function
int OnInit()
{
// Initialize the MovingAverage variable
MovingAverage = 0.0;
return(INIT_SUCCEEDED);
}
// --- main function
void OnTick()
{
// Calculate the moving average
MovingAverage = iMA(_Symbol, 0, Period, 0, PriceType, MODE_SMA, 0);
// Print the result to the terminal window
Print("Moving Average: ", MovingAverage);
}