Codes sources MQL5 des scripts pour MetaTrader 5

icon

Les scripts effectuent des actions ponctuelles dans MetaTrader 5 à l'aide d'un programme MQL5 et sont supprimés du graphique immédiatement après. Les exemples de fonctions comprennent le téléchargement de l'historique de trading, la génération d'un rapport et son envoi par e-mail, le téléchargement et le traitement des données depuis un fichier. Les scripts peuvent également être utilisés pour créer une interface graphique ou exécuter rapidement des opérations de trading de type unique, par exemple, clôturer immédiatement toutes les positions.

Vous pouvez télécharger et lancer les scripts proposés dans MetaTrader 5. La bibliothèque de scripts est également disponible directement depuis la plateforme MetaEditor, ce qui vous permet d'apprendre la programmation MQL5.

Soumettre votre code

Tests "buy at hour X, exit Y hours later" on your broker's own history after spread, commission and swap, with an out-of-sample split, weekday/year breakdown and an all-hours baseline.

Reads real tick history and reports average, median and 95th-percentile spread for every server hour and weekday, plus the cost in % of price.

For every closed position the script measures how far the price went against it (MAE) and in its favour (MFE), and shows what that says about your stops and exits. Table, summary on the chart and a CSV file. Read-only, it never trades.

Closes all open positions and optionally deletes pending orders with one click. Filter by symbol and magic number.

Shows the broker's hidden financing markup and the carry for every symbol, as annual % of notional.

Script that reports what an EA has to cope with here: hedging or netting, trade permissions, filling modes, stop and freeze levels, volume rules, swaps and the positions already open on the symbol. Saves a report file you can attach to a Freelance order.

Reads your closed trades, converts each to an R-multiple and simulates many future runs at a chosen risk per trade. Reports the probability of hitting a drawdown floor, the probability of ending profitable, the median ending balance and the 95% range. Read-only.

MarketInfo est un script d'information simple pour MetaTrader 5. Il collecte et consigne dans un journal les données clés relatives au symbole sélectionné : cours, spread, volatilité (ATR), temps restant avant la clôture de la barre, statistiques sur N barres et identification de la tendance.

Before the Friday close: estimates how much your open positions could lose if the market reopens with a gap, and compares it with the room left under the daily loss limit of the next trading day. For prop firm and funded accounts. It only reads the account.

Running several EAs on one account? This script groups the closed trades by magic number and shows the score of each EA: win rate, profit factor, net profit and drawdown. Read-only, writes a CSV file.

Free script exporting clean, deterministic OHLC + tick volume + 4 indicators (MA, RSI, MACD, ATR) for M1/M15/H1 to CSV. Closed bars only, zero lookahead — ideal for analysis and ML datasets.

Un analyseur rapide du marché permettant d'identifier les tendances durables. En une seconde, le script analyse tous les symboles de la rubrique « Aperçu du marché » et identifie les instruments présentant les mouvements les plus nets et les plus marqués à l'aide de la régression linéaire R² et de l'indicateur ADX.

A script for accounts that run several Expert Advisors or configurations. It aggregates the net result of each configuration (magic number, or magic number and symbol) per calendar day and measures how much each one contributes to the portfolio drawdown: drawdown added by leave-one-out, share of the worst drawdown, and Euler variance share. It prints verdicts, recommendations, and a heuristic A+ to F score. It runs out of the box on a built-in demonstration portfolio and is written in pure MQL5.

Exports bars to a CSV file that pandas.read_csv() loads without encoding, separator or date-format arguments: ISO 8601 timestamps, prices at the symbol's own digits, single-byte encoding. Two modes (last N bars or a date range) and a switchable separator for Excel.

Shows what every buffer of an indicator holds - arrows, a line or a colour index - and labels the arrows on the chart with their buffer numbers. Works with compiled indicators without source code.

Calculates the lot size for a chosen risk percent and stop loss distance, and shows the result in a clean panel on the chart.

Broker Basket Preflight est un script MetaTrader 5 autonome en lecture seule pour vérifier la configuration d'un courtier avant de développer ou tester un EA multi-symboles. Il lit les noms exacts déjà sélectionnés dans Market Watch et écrit dans le journal Experts. Le source MQ5 contient la licence MIT ; aucune bibliothèque externe, DLL ou requête réseau n'est nécessaire.

Writes the trading specification of every symbol to a CSV file: volume step, filling modes, stops level, tick value and more.

Ouvre une transaction virtuelle entre crochets sur chaque barre M1, la fait évoluer sur l'historique réel des ticks et indique, pour une série de distances de stop, à quelle fréquence la modélisation OHLC sur 1 minute aboutirait à un résultat inverse de celui escompté pour la transaction.

Exporte une ligne CSV par transaction clôturée, contenant les données qui ne figurent pas sur le relevé : le meilleur bénéfice non réalisé enregistré par la transaction (MFE), la pire perte non réalisée qu’elle a subie (MAE), la part du MFE effectivement réalisée, le nombre de barres couvertes par la transaction et la durée de détention. Il s’agit des mêmes mesures que celles de l’indicateur « Trade Excursion », mais elles sont enregistrées dans un fichier plutôt que représentées graphiquement, car les questions pertinentes à se poser à propos de ces données sont celles auxquelles un graphique ne peut pas répondre : le taux de capture dépend-il de l’heure d’entrée ? Les transactions que je clôture prématurément sont-elles celles que je conserve le plus longtemps ? Les transactions perdantes du lundi atteignent-elles un MAE différent de celles du vendredi ? Il suffit d’un tableau croisé dynamique pour obtenir ces réponses une fois le fichier CSV créé. La sortie est séparée par des points-virgules avec une ligne d’en-tête, au format MQL5\Files ; elle s’ouvre dans n’importe quel tableur. Limite de mesure : les excursions proviennent des plus hauts et des plus bas des barres sur la période choisie ; le tracé à l’intérieur d’une barre est inconnu. La colonne « barres » indique la résolution attribuée à chaque transaction, et le récapitulatif comptabilise séparément les transactions sur une seule barre au lieu de les intégrer dans une moyenne.

Measures how far your PC clock is from the trade server's clock, from the server time stamped on live ticks, and tells you how to fix it.

Personnalisez votre assistant IA MetaTrader 5 en choisissant la langue, la personnalité, le menu et le comportement à l'aide d'un simple fichier de commande.

Exports closed trades to CSV with Maximum Adverse Excursion (MAE) and Maximum Favorable Excursion (MFE) in points and money, calculated from M1 history, plus the percentage of the available move each trade captured.

Opens charts for all Market Watch symbols or a custom symbol list in one click, on any timeframe, with an optional template applied to each chart. Skips charts that are already open and limits how many are opened at once.

Resamples your closed trades 10,000 times to show whether your average trade is an edge or could still be luck: the 95% range of the average and the chance it is below zero.

Tests whether live closing deals still match the backtest of an Expert Advisor. A bootstrap-calibrated CUSUM detector raises an alarm and estimates when the drift began, a two-window check separates a short dip from a lasting decline, and an expectancy decomposition shows whether the win rate or the trade sizes changed. The script generates demonstration data on the first run and is written in pure MQL5.

Script that lists the global variables of the terminal with value, last access time and age, filtered by prefix, substring and age. It exports them to CSV, deletes the matching ones after a confirmation and a backup, and restores them from a CSV file.

Vérifie si un indicateur graphique est actualisé, au lieu d’affirmer qu’il ne l’est pas. L’invariant : une fois qu’une barre s’est fermée et a été traitée, aucun objet tracé dessus ne doit plus jamais changer : ni se déplacer, ni changer de couleur, ni modifier son texte, ni disparaître. Le script initialise un symbole personnalisé avec un historique réel, y associe votre indicateur via un modèle, enregistre chaque objet, ajoute des barres, force un recalcul complet, puis compare les objets un par un. Les modifications et les disparitions sont comptabilisées séparément, car seule une modification signifie que l’affirmation est fausse. Une exécution qui n’a rien comparé est signalée comme INCONCLUSIVE, jamais comme réussie. Le résultat est un fichier CSV que vous pouvez publier à côté du chiffre.

Neural Loss-Pattern Auditor entraîne un petit réseau neuronal à propagation directe, écrit entièrement en MQL5 natif, sur l'historique des transactions clôturées afin de vérifier si les caractéristiques comportementales et liées au contexte de marché permettent de prédire quelles transactions sont les plus susceptibles d'entraîner des pertes. Il fournit une amélioration de la précision par rapport à une référence naïve, un tableau de calibrage des probabilités, un classement par permutation de l’importance des caractéristiques, ainsi qu’une note composite configurable de A à F accompagnée de recommandations. Lors de la première exécution, il utilise une démo synthétique intégrée, ce qui permet de visualiser immédiatement les résultats sans aucune configuration ; il suffit de définir l'une des entrées sur InpUseDemoData=false pour analyser à la place l'historique d'un compte réel. MQL5 pur : aucune bibliothèque externe, pas de Python et aucun service d'IA d'aucune sorte.

Évalue si un signal d'entrée permet réellement de dégager un bénéfice supérieur aux coûts de transaction, avant que vous ne passiez des semaines à développer un EA autour de celui-ci. Fournit le résultat net après déduction des coûts, une statistique t fiable sur des échantillons non chevauchants et un contrôle aléatoire. Ne passe aucun ordre.

Affiche les limites invisibles du contrat qui entraînent le rejet silencieux des ordres : niveau d'arrêt, niveau de gel, lot min./pas/max., taille et valeur du tick, type de spread, mode d'exécution, swaps, ainsi que la marge requise pour le lot minimum par rapport à votre marge disponible.

Outil d'inspection des sessions de trading natif du courtier, en lecture seule, affichant l'état actuel, la transition suivante, avec une portée multi-symboles et une fonctionnalité d'exportation au format CSV.

Script MT5 en lecture seule affichant le volume, le cours, les ordres stop, les blocages, le spread et les contraintes d'exécution du courtier.

Tests d'acceptation synthétiques déterministes pour la logique d'entrée des EA MT5, sans accès au marché, au compte ou aux ordres.

Un script d'audit en lecture seule destiné aux comptes exécutant plusieurs EA (ou des transactions manuelles en parallèle). Il regroupe l'historique des transactions clôturées par « magic number » et affiche une ligne par « magic » : transactions clôturées (aller-retour), P/L net incluant les swaps et les commissions des DEUX côtés de la transaction, taux de réussite, facteur de profit, gain/perte moyen, positions actuellement ouvertes et en attente, dates d'activité et symboles – le tout trié par résultat net, avec une exportation au format CSV pour les tableurs.

TimeCurrent() is not a clock. It is the stamp of the LAST TICK. Two consequences break robots in production: 1. It freezes. With no tick it does not move: illiquid instrument, end of session, unstable connection - and any rule based on it stops with it. 2. It steps backwards: on a symbol switch, a reconnection or a tick from another instrument, the value can go back. The case that cost me a whole protection: I compared the date of a daily decision with TimeCurrent() to reject an expired one. The server clock stepped back to the previous day, the comparison matched, and four EAs accepted YESTERDAY's decision as valid. The gate that should have failed closed failed open - without a single error in the log. Rule: TimeLocal() for timestamps, dates, day changes, expiry - all that must always move forward; TimeCurrent() for session hours and market data. The script measures the divergence in your environment and reports both symptoms live. Run it with the market closed.

Measures, hour by hour, how far a symbol travels and how much of that the spread takes away. Built for gold, works on any symbol, compares several side by side.

A datetime in MQL5 is seconds since 1970 - but server time (TimeCurrent, bar times, deal times) is the broker's wall clock stored AS IF it were UTC. Export it to CSV, read it in Python or a spreadsheet with a "seconds since 1970 UTC" parser, and every timestamp shifts by the server's UTC offset. On a UTC-3 broker that is three hours: the daily bar dated 00:00 reads as 21:00 of the previous day, and "yesterday's session" silently becomes "today's, half formed". That happened to a morning report of mine before this script existed. The script prints TimeTradeServer, TimeCurrent, TimeGMT and TimeLocal, the three offsets between them, the tick lag, and this chart's last bar time in server time and in real UTC - then states the rule: export server timestamps as wall-clock text, or export the epoch together with the offset, and never let the consumer apply its own timezone.

A simple MQL5 script that calculates the correct lot size for a trade based on your account risk percentage and stop loss distance in pips, so every trade risks a consistent, controlled amount of your balance.

Sizes your next trade based on the correlated risk you already have open across other positions — not just the trade in isolation.