Tollgate Spread Atlas
- Utilitaires
-
Syarief Azman Bin Rosli
Bonjour et bienvenue sur mon profil officiel MQL5 !
Je suis Syarief Azman Bin Rosli, développeur de systèmes de trading algorithmique et ingénieur quantitatif avec plus de dix ans d'expérience spécialisée dans la création de solutions de trading automatisées pour MetaTrader 5 et MetaTrader 4. - Version: 1.0
- Activations: 10
Tollgate Spread Atlas montre ce que coûte réellement le trading chez votre courtier. Il lit l'historique réel des ticks du symbole du graphique et de jusqu'à 8 symboles de la liste, construit une carte du spread par heure de la semaine (lundi à vendredi, 24 heures serveur), compare le spread en direct au spread typique de l'heure en cours et convertit spread, commission et swap en coût aller-retour et en coût en pourcentage de l'ATR sur six unités de temps. Il est en lecture seule : il n'ouvre, ne modifie et ne ferme jamais de positions.
Démarrage rapide
- Attachez l'utilitaire à n'importe quel graphique (par exemple XAUUSD ou EURUSD). L'autorisation Algo Trading n'est pas nécessaire car il ne trade jamais.
- Le panneau affiche SCANNING TICK HISTORY avec un pourcentage SCAN pendant la lecture de l'historique (Lookback Window, 28 jours par défaut). Le premier scan peut prendre une minute le temps que le terminal télécharge les ticks.
- À la fin, la carte en direct affiche LIVE SPREAD, TYPICAL, RATIO et un état : CHEAP, NORMAL, WIDE ou SPIKE.
- Réglez Cost Calculator Lot Size sur votre lot habituel et choisissez Commission Source.
- Pour vérifier, survolez une cellule de la carte (info-bulle) ou cliquez sur CSV pour enregistrer l'atlas.
Construction de l'atlas
- Le spread de chaque cotation (ask moins bid, en points entiers) compte pendant les secondes jusqu'à la cotation suivante, plafonné par Max Seconds Credited Per Quote : les trous et les marchés fermés n'ajoutent rien. La pondération se fait par le temps, pas par le nombre de ticks.
- Chaque cellule (jour x heure serveur) conserve une distribution des spreads. On en tire MEDIAN, P90 (90e centile) et MEAN (moyenne pondérée par le temps). Les valeurs sont exactes jusqu'à 31 points, puis par 16 pas à chaque doublement (la borne basse est affichée).
- Spread typique = médiane de la cellule actuelle. Si la cellule a moins de Minimum Coverage For A Cell, on utilise la même heure sur tous les jours, puis la semaine entière. La source s'affiche [CELL], [HOUR] ou [WEEK].
- Avec Add Live Quotes To The Atlas actif, le spread actuel de chaque symbole est ajouté une fois par seconde tant que sa cotation est récente.
- L'atlas est reconstruit depuis l'historique une fois par jour serveur à la Daily Rebuild Hour (pour faire glisser la fenêtre) et quand vous cliquez sur RESCAN.
Règles d'état
RATIO = spread en direct / max(typique, 1 point). Excès = direct moins typique.
- SPIKE : RATIO au moins égal à SPIKE From et excès au moins égal à Minimum Excess For WIDE / SPIKE.
- WIDE : RATIO au moins égal à WIDE From avec la même règle d'excès.
- CHEAP : RATIO inférieur à CHEAP Below.
- NORMAL : tout le reste.
- NO DATA : pas encore de cotation ou pas de spread typique.
La règle d'excès empêche les comptes raw ou ECN (typique 0-2 points) de signaler de minuscules variations.
Panneau
En-tête
- LED : vert ou turquoise (NORMAL, CHEAP), ambre (WIDE ou scan), rouge (SPIKE), gris (NO DATA).
- TOLLGATE SPREAD ATLAS, le symbole actif et SERVER TIME (toutes les heures sont en heure serveur du courtier).
- [-] réduit le panneau en une pastille avec TSA, le symbole, le ratio et l'état ; [+] le restaure.
Carte en direct
- LIVE SPREAD en points (et en pips sur les symboles à 3/5 décimales).
- TYPICAL avec sa source [CELL], [HOUR] ou [WEEK] ; RATIO ; le badge d'état.
- Jauge de 0 à 3 fois le spread typique (METER 0-3x) avec des repères blancs à CHEAP Below, WIDE From et SPIKE From.
- TODAY MAX : plus large spread depuis minuit serveur ; nombre de cotations lues ; jours d'historique.
Carte des coûts (ROUND-TRIP COST, devise du compte)
- SPREAD : coût du spread pour le lot au spread en direct et au spread typique (points x valeur du tick x point / taille du tick x lots).
- COMMISSION par lot et par côté avec sa source : [HISTORY] (vos transactions), [FIXED] ou [NONE].
- TOTAL : aller-retour en direct et typique (spread + 2 x commission x lots) et le total en direct en points.
- SWAP / NIGHT acheteur (L) et vendeur (S) pour le lot et le jour du triple swap (3x WED). Les swaps en points ou dans la devise du dépôt sont convertis ; les autres modes affichent la valeur brute avec l'unité (devise/LOT, %/YEAR ou RAW). SWAP OFF si le swap est désactivé.
- COST / ATR : coût aller-retour en direct en prix divisé par l'ATR de la dernière barre clôturée, x 100, pour M1, M5, M15, H1, H4 et D1. Vert sous 5 %, ambre 5-15 %, corail à partir de 15 % ; la barre est pleine à 30 %. Une valeur élevée signifie que le coût mange une grande partie d'une barre typique sur cette unité de temps.
Barre de boutons
- METRIC: MEDIAN / METRIC: P90 / METRIC: MEAN fait défiler la mesure de la carte.
- RESCAN recharge la commission et reconstruit tous les atlas depuis l'historique.
- CSV enregistre l'atlas actif (après le scan) dans MQL5\Files\Tollgate_<SYMBOL>.csv.
- ALERTS ON / ALERTS OFF active ou coupe les alertes SPIKE pour cette session.
- click cell = pin : rappel que les cellules peuvent être épinglées.
Les changements faits par boutons reviennent aux valeurs des paramètres quand l'utilitaire est réinitialisé (changement d'unité de temps, nouvel attachement, redémarrage).
Carte (HOUR-OF-WEEK ... SPREAD)
- Lignes MON à FRI, colonnes 00-23 heures serveur. Couleur = valeur de la cellule / la même mesure sur toute la semaine (WEEK MEDIAN, WEEK P90 ou WEEK MEAN) : turquoise 0.6x ou moins, vert 1.0x, or 1.6x, corail 2.6x ou plus. Cellules sombres = pas de données (couverture sous le minimum).
- Bordure dorée = heure actuelle (now). Bordure blanche = cellule épinglée.
- Info-bulle : médiane, P90, moyenne et couverture de la cellule. Cliquez sur une cellule pour l'épingler ; un nouveau clic la libère.
- Ligne de détail : NOW (cellule actuelle) ou PINNED avec MEDIAN, P90, MEAN et COVERAGE.
- CHEAPEST HOURS et DEAREST HOURS : les trois heures serveur au spread moyen pondéré le plus bas et le plus haut sur tous les jours.
- Les cotations du week-end comptent dans les valeurs HOUR et WEEK mais ne sont pas dessinées. La carte se rafraîchit toutes les 30 secondes.
Liste de suivi
Colonnes WATCHLIST, LIVE, TYPICAL, RATIO, STATUS et COST/ATR H1 (aller-retour en direct face à l'ATR H1). Cliquez sur une ligne pour faire de ce symbole le symbole actif de tout le panneau (ligne surlignée). NOT FOUND = le courtier n'a pas ce symbole ; SCANNING = son historique se charge encore ; no watchlist symbols quand la liste est vide.
Alertes
Quand un symbole (du graphique ou de la liste) reste en SPIKE pendant SPIKE Must Last secondes, une alerte est envoyée par symbole et par Alert Cooldown, par exemple : [Tollgate Atlas] XAUUSD spread SPIKE 51 pts = 5.1x typical 10 pts (THU 23:00 server) Elle est écrite dans le journal Experts et envoyée par Terminal Pop-Up Alerts, Audible Alerts (alert.wav, seulement si les fenêtres sont coupées car la fenêtre a son propre son) et Push Notifications To Mobile (MetaQuotes ID dans Outils, Options, Notifications).
Signaux pour d'autres EA (variables globales du terminal)
Avec Publish Terminal Global Variables actif, chaque seconde après le scan et pour chaque symbole :
- TSA_<SYMBOL>_RATIO : direct / typique.
- TSA_<SYMBOL>_TYPICAL : spread typique en points (-1 = pas de données).
- TSA_<SYMBOL>_OK : 1 = CHEAP ou NORMAL, 0 = WIDE ou SPIKE, -1 = NO DATA.
Elles sont supprimées quand l'utilitaire est retiré.
if(GlobalVariableCheck("TSA_EURUSD_OK") && GlobalVariableGet("TSA_EURUSD_OK") == 0)
return; // spread is WIDE or SPIKE: skip new entries Effets de bord
- Ajoute les symboles de la liste à l'Observation du marché. Crée des objets graphiques nommés avec l'Object Name Prefix (supprimés avec l'utilitaire). Utilise un minuteur de 250 ms.
- N'écrit un fichier que sur CSV : 168 lignes avec day, hour, median_pts, p90_pts, mean_pts, coverage_min (-1 = pas de données).
Paramètres
- Lookback Window (28, 3-90 jours calendaires) : historique lu par symbole.
- Max Seconds Credited Per Quote (60, 5-600) : plafond par cotation.
- Minimum Coverage For A Cell (15 minutes) : en dessous, la cellule n'a pas de données et le typique passe au repli.
- Heatmap Metric (Median Spread) : Median Spread, 90th Percentile Spread ou Time-Weighted Mean Spread au démarrage.
- Add Live Quotes To The Atlas (true) : apprentissage en direct.
- Daily Rebuild Hour (3, heure serveur, -1 = jamais) : reconstruction quotidienne après le rollover.
- CHEAP Below (0.85), WIDE From (1.5), SPIKE From (2.5) : seuils de ratio.
- Minimum Excess For WIDE / SPIKE (5 points).
- Cost Calculator Lot Size (1.0).
- Commission Source (From Account History) : From Account History, Fixed Per Lot Per Side ou No Commission.
- Fixed Commission (3.5 par lot et par côté) : aussi la valeur de repli si l'historique ne contient pas de transactions.
- Commission History Window (90 jours).
- ATR Period For Cost Burden (14).
- Watchlist Symbols ("EURUSD,GBPUSD,USDJPY,XAUUSD", 8 au plus, noms exacts du courtier avec suffixes).
- Alert On SPIKE (true), SPIKE Must Last (5 s), Alert Cooldown (15 minutes).
- Terminal Pop-Up Alerts (true), Push Notifications To Mobile (false), Audible Alerts (true).
- Publish Terminal Global Variables (true).
- Object Name Prefix ("TSA_") : changez-le pour lancer deux copies sur un graphique.
- HUD Chart Corner (Top Left ; Top Right, Bottom Left, Bottom Right), HUD X Offset (16), HUD Y Offset (24) en pixels.
- Panel Scale (1.0, 0.5-2.5) : multiplicateur de taille en plus de la mise à l'échelle de Windows.
- Start Minimized (false).
Réglages types
- Scalpeur M1 : Heatmap Metric 90th Percentile Spread, WIDE From 1.3, SPIKE From 2.0, Minimum Excess For WIDE / SPIKE 2 ; tradez aux CHEAPEST HOURS et surveillez COST / ATR en M1.
- Or : Lookback Window 42, SPIKE From 3.0, Minimum Excess For WIDE / SPIKE 15, Alert Cooldown 30, Push Notifications To Mobile true.
- Compte raw ou ECN : Heatmap Metric Time-Weighted Mean Spread, Commission Source From Account History, Minimum Excess For WIDE / SPIKE 5.
- Filtre pour EA : Alert On SPIKE false, Publish Terminal Global Variables true et l'extrait ci-dessus dans votre EA.
Notes et limites
- La profondeur de l'historique dépend du courtier ; certains ne gardent que quelques semaines de ticks.
- Dans le Testeur de stratégie, l'atlas vient des ticks du testeur : utilisez "Every tick based on real ticks" pour voir les vrais spreads.
- Les spreads varient selon les courtiers et les types de compte, et les spreads passés ne garantissent pas les spreads futurs. L'utilitaire mesure des coûts ; il ne prédit ni les prix ni les résultats. Le trading comporte un risque de perte.
