Turnstile Order Gateway

Bibliothèque MQL5 placée entre votre Expert Advisor et OrderSend. Chaque requête passe 9 contrôles (connexion, Algo Trading, mode du symbole, session, types d'ordre, volume, stops, marge, OrderCheck) avant l'envoi. Les clôtures et modifications bloquées par le niveau de gel, une session fermée ou une connexion perdue sont mises en file d'attente puis envoyées plus tard. Elle ne trade jamais seule. Vous recevez le fichier compilé Turnstile_Order_Gateway.ex5 ; cette page est la référence complète de l'API.

Démarrage rapide

  1. Copiez Turnstile_Order_Gateway.ex5 dans MQL5/Libraries (Fichier > Ouvrir le dossier des données).
  2. Collez le bloc #import ci-dessous dans votre EA ou script.
  3. Facultatif : TOG_Configure dans OnInit (défaut 20, 3, 300, true, false).
  4. Appelez TOG_ProcessQueue dans OnTick ou OnTimer.
  5. Tradez avec TOG_Open, TOG_Modify, TOG_Close. Sur 0 ou false, affichez TOG_ReasonText(TOG_LastReason()).
  6. Vérification : lancez l'exemple ci-dessous dans le testeur de stratégie ; le journal affiche le ticket et le motif. En réel, activez Algo Trading sinon les contrôles renvoient -3.

Déclaration d'import (prête à copier)

#import "Turnstile_Order_Gateway.ex5"
   void   TOG_Configure(int deviation, int retries, int delay_ms, bool adjust_stops, bool verbose);
   double TOG_NormalizeVolume(string symbol, double volume);
   double TOG_NormalizePrice(string symbol, double price);
   double TOG_RiskVolume(string symbol, ENUM_ORDER_TYPE type, double entry, double sl, double risk_money);
   double TOG_MaxVolume(string symbol, ENUM_ORDER_TYPE type, double share);
   ENUM_ORDER_TYPE_FILLING TOG_FillingMode(string symbol);
   int    TOG_CheckMarket(string symbol, ENUM_ORDER_TYPE type);
   int    TOG_CheckStops(string symbol, ENUM_ORDER_TYPE type, double price, double sl, double tp);
   int    TOG_CheckFreeze(ulong ticket);
   int    TOG_Preflight(string symbol, ENUM_ORDER_TYPE type, double volume, double price, double sl, double tp);
   ulong  TOG_Open(string symbol, ENUM_ORDER_TYPE type, double volume, double price, double sl, double tp, ulong magic, string comment);
   bool   TOG_Modify(ulong ticket, double price, double sl, double tp);
   bool   TOG_Close(ulong ticket, double volume);
   int    TOG_CloseAll(string symbol, long magic, bool pending);
   int    TOG_ProcessQueue();
   int    TOG_QueueCount();
   void   TOG_ClearQueue();
   int    TOG_LastReason();
   uint   TOG_LastRetcode();
   string TOG_ReasonText(int reason);
   int    TOG_RetcodeClass(uint retcode);
   int    TOG_GetStats(long &stats[]);
#import 

Codes de motif

TOG_LastReason donne le code, TOG_ReasonText le texte en majuscules.

  • 0 OK ; 1 NO CHANGE (mêmes valeurs, rien envoyé) ; 2 DEFERRED (en file).
  • -1 BAD PARAMETERS : symbole ou type inconnu, prix en attente 0, volume 0.
  • -2 NO CONNECTION : déconnecté ou sans cotations.
  • -3 TRADING DISABLED : Algo Trading ou trading du compte désactivé.
  • -4 SYMBOL MODE : désactivé, clôture seule, achats seuls ou ventes seules.
  • -5 MARKET CLOSED : hors des sessions de trading.
  • -6 INVALID VOLUME : hors min/max, hors pas ou au-delà de la limite de volume.
  • -7 INVALID STOPS : SL, TP ou prix en attente du mauvais côté ou dans le niveau des stops.
  • -8 FREEZE ZONE : prix dans le niveau de gel.
  • -9 NO MARGIN : marge de l'ordre au marché supérieure à la marge libre.
  • -10 ORDER TYPE BLOCKED : type ou SL/TP non autorisés, ou limite d'ordres en attente atteinte.
  • -11 ORDERCHECK FAILED et -12 SERVER REJECTED : voir TOG_LastRetcode.
  • -13 TICKET NOT FOUND ; -14 QUEUE FULL (256 en attente).

Référence de l'API

type : ORDER_TYPE_BUY, ORDER_TYPE_SELL, ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP ou ORDER_TYPE_SELL_STOP (stop-limit renvoie -1). Prix absolus ; sl ou tp 0 signifie aucun.

TOG_Configure

deviation : slippage en points, 0 ou plus (invalide : 20). retries : 0-10 (invalide : 3). delay_ms : 0-5000 entre essais (invalide : 300). adjust_stops : true déplace un SL/TP du bon côté mais dans le niveau des stops vers le prix légal le plus proche plus un tick (plus le spread si le serveur refuse encore) ; false renvoie -7. verbose : journalise blocages, essais et reports avec le préfixe [TOG].

TOG_NormalizeVolume

Arrondit vers le bas au pas de volume et plafonne au maximum. 0.0 sous le minimum, pour un volume 0 ou un symbole inconnu.

TOG_NormalizePrice

Arrondit à la taille du tick et aux décimales. 0.0 pour un prix 0, un SL vide reste donc 0.

TOG_RiskVolume

Volume qui perd risk_money (devise du compte) au sl, via OrderCalcProfit (correct pour croisés, métaux, indices, actions), arrondi vers le bas. entry 0 = Ask pour les achats, Bid pour les ventes. 0.0 avec -6 si le volume minimum risque déjà plus, -7 si sl est du mauvais côté, -1 pour des entrées invalides.

double lots = TOG_RiskVolume(_Symbol, ORDER_TYPE_BUY, 0, sl, AccountInfoDouble(ACCOUNT_BALANCE) * 0.01); 

TOG_MaxVolume

Plus grand volume valide dont la marge tient dans marge libre x share (0-1, sinon 1), dans le maximum et la limite de volume restante. 0.0 avec -9 si même le minimum ne tient pas.

TOG_FillingMode

Remplissage au marché : FOK si autorisé, sinon IOC, sinon RETURN. TOG_Open change de mode si le serveur le refuse.

TOG_CheckMarket

Contrôles 1-4 à l'ouverture : connexion et cotations, Algo Trading, mode du symbole pour ce sens, session (heure serveur contre la table des sessions ; sans table, considéré ouvert). Renvoie 0 ou -1 à -5.

TOG_CheckStops

Marché : sl et tp du bon côté du Bid (achat) ou de l'Ask (vente), à au moins SYMBOL_TRADE_STOPS_LEVEL. En attente : le prix de même par rapport au marché, sl et tp depuis le prix. Renvoie 0, -7, -1 ou -2.

TOG_CheckFreeze

-8 quand le Bid (achat) ou l'Ask (vente) est à moins de SYMBOL_TRADE_FREEZE_LEVEL du SL ou TP de la position, ou que le marché est aussi proche du prix d'un ordre en attente. 0 si le niveau vaut 0, -13 pour un ticket inconnu.

TOG_Preflight

Les 9 contrôles dans l'ordre, sans envoi : contrôles de marché, types d'ordre et limite des ordres en attente, volume, stops, marge (marché), OrderCheck. Renvoie le premier échec ou 0.

if(TOG_Preflight(_Symbol, ORDER_TYPE_SELL, 0.10, 0, sl, tp) != 0) Print(TOG_ReasonText(TOG_LastReason())); 

TOG_Open

Normalise volume et prix, ajuste les stops si activé, exécute TOG_Preflight, envoie. Les ordres au marché (price 0) réessaient sur requotes, changements de prix, délais dépassés et erreurs de connexion avec des prix frais. Les ordres en attente utilisent GTC, ou DAY si GTC est interdit. Renvoie le ticket de position (marché), d'ordre (en attente) ou 0. Jamais mis en file.

TOG_Modify

SL/TP d'une position, ou prix/SL/TP d'un ordre en attente (price 0 garde le prix). Mêmes valeurs : true, motif 1. Bloqué par la zone de gel, une session fermée ou sans connexion : false, motif 2, en file ; un appel plus récent pour le ticket le remplace.

TOG_Close

Clôture une position ou supprime un ordre en attente. volume 0 ou le volume entier clôture tout ; moins clôture une partie (arrondi vers le bas) ; un reste sous le minimum clôture tout. Blocage comme ci-dessus : false, motif 2, en file (remplace une modification en file).

TOG_CloseAll

TOG_Close pour chaque position (et ordre en attente si pending) correspondant à symbol ("" = tous) et magic (-1 = tous). Renvoie le nombre clôturé maintenant.

TOG_ProcessQueue

Envoie les actions en file une fois débloquées ; appelez-la dans OnTick ou OnTimer. Une action quitte la file en cas de succès, si son ticket a disparu ou sur un autre échec ; après un refus serveur elle attend une seconde. Renvoie le nombre terminé.

TOG_QueueCount et TOG_ClearQueue

Actions en attente (maximum 256) ; tout supprimer sans envoyer.

TOG_LastReason, TOG_LastRetcode et TOG_ReasonText

Motif du dernier appel ; dernier retcode serveur (0 si rien n'a été envoyé) ; texte d'un code de motif ("UNKNOWN" sinon).

TOG_RetcodeClass

0 DONE (placé, exécuté, partiel, aucun changement, position clôturée), 1 RETRY (requote, rejet, erreur, délai, prix changé ou invalide, pas de cotations, trop de requêtes, verrouillé, connexion), 2 FIX (requête, volume, stops, expiration, remplissage ou ordre invalides), 3 WAIT (marché fermé, gelé), 4 FATAL (autres, ex. pas d'argent).

TOG_GetStats

Remplit stats[] avec 10 compteurs, renvoie 10 : 0 requêtes, 1 envoyées, 2 réussies, 3 bloquées, 4 réessais, 5 reportées, 6 réussies depuis la file, 7 refusées, 8 stops ajustés, 9 abandonnées.

Exemple d'intégration fonctionnel

#import "Turnstile_Order_Gateway.ex5"
   double TOG_RiskVolume(string symbol, ENUM_ORDER_TYPE type, double entry, double sl, double risk_money);
   ulong  TOG_Open(string symbol, ENUM_ORDER_TYPE type, double volume, double price, double sl, double tp, ulong magic, string comment);
   bool   TOG_Close(ulong ticket, double volume);
   int    TOG_ProcessQueue();
   int    TOG_LastReason();
   string TOG_ReasonText(int reason);
#import

ulong ticket = 0;
bool  tried  = false;

void OnTick()
{
   TOG_ProcessQueue();
   if(!tried)
   {
      tried = true;
      double sl   = SymbolInfoDouble(_Symbol, SYMBOL_BID) - 300 * _Point;
      double lots = TOG_RiskVolume(_Symbol, ORDER_TYPE_BUY, 0, sl, 10.0);
      ticket = TOG_Open(_Symbol, ORDER_TYPE_BUY, lots, 0, sl, 0, 7001, "turnstile");
      Print("open ", ticket, ": ", TOG_ReasonText(TOG_LastReason()));
   }
   if(ticket > 0 && PositionSelectByTicket(ticket) && PositionGetDouble(POSITION_PROFIT) > 5.0)
      Print("close: ", TOG_Close(ticket, 0), " ", TOG_ReasonText(TOG_LastReason()));
} 

Architecture et remarques

  • Chaque programme qui importe la bibliothèque a ses propres réglages, statistiques et file en mémoire (perdue si l'EA est retiré ou le terminal redémarré).
  • Les contrôles ne font que lire les données du terminal ; seuls TOG_Open, TOG_Modify, TOG_Close, TOG_CloseAll et TOG_ProcessQueue envoient, de façon synchrone.
  • Réglages : sécurité validateur = valeurs par défaut plus TOG_ProcessQueue dans OnTick ; stops stricts = adjust_stops false ; développement = verbose true et TOG_GetStats sur votre panneau.
  • MetaTrader 5, netting et hedging, tout symbole ; EAs et scripts uniquement. Sûre dans le testeur de stratégie, l'optimisation et le MQL5 Cloud Network (pas de DLL, fichiers ni requêtes web ; pas de pause entre essais dans le testeur).
  • Aucun objet graphique, timer, fichier ni variable globale ; peut ajouter un symbole à l'Observation du marché pour lire les cotations.
  • Un jour férié absent de la table des sessions est détecté par la réponse du serveur comme -5.
  • Non pris en charge : ordres stop-limit, close-by, OrderSendAsync.

Avertissement sur les risques

La bibliothèque contrôle et envoie les requêtes de votre code. Elle ne choisit pas les entrées et ne garantit ni exécutions, ni prix, ni profits. Testez d'abord sur un compte démo.

Plus de l'auteur
EA Budak Ubat
Syarief Azman Bin Rosli
4 (3)
Comment ça fonctionne Lorsque l'EA est actif, il analysera le graphique en fonction du paramètre Mode d'exécution. S'il n'y a pas de positions existantes sur le graphique, l'EA entrera dans un trade en fonction du paramètre. Si la tendance est haussière, il entrera dans un trade d'achat, et s'il est baissier, il entrera dans un trade de vente. Il définira également un ordre de stop loss à une certaine distance du prix d'ouverture du trade s'il existe une valeur de stop loss supérieure à 0. 0 s
EA Budak Ubat MT5
Syarief Azman Bin Rosli
EA Budak Ubat MT5 est un Expert Advisor de trading automatisé en grille (Grid Martingale) développé pour MetaTrader 5. Il associe analyse technique de tendance, adaptation dynamique à la volatilité et gestion stricte des risques pour performer en marchés de range et de tendance. Optimisé pour l'unité de temps M5 sur les paires majeures et l'Or (XAUUSD). ### Fonctionnalités Clés • 4 Méthodes d'Analyse au Choix :   1. Classic Candle : Dynamique directionnelle des bougies.   2. SMA20 : Croisemen
Indi RBO
Syarief Azman Bin Rosli
Input: Range Start Time : The starting time of the range creation Range End Time : The ending time of range creation Trade End Time : The time where the line of range zone high/low will be extended to Minimum Size : The minimum size of the range in point Maximum Size : The maximum size of the range in point If the range size is between the minimum and maximum, indicator will print the 1st color (blue).
Apex Flow Reversion
Syarief Azman Bin Rosli
# Apex Flow Reversion MT4 Apex Flow Reversion est un système de trading automatisé pour MetaTrader 4 exécutant une stratégie statistique intrajournalière de retour à la moyenne. Le système surveille l'écart des cours par rapport au prix moyen pondéré par les volumes (VWAP) et identifie les zones d'épuisement grâce à des bandes d'écart-type, un filtre de momentum RSI et des contraintes de volatilité ATR. ## Présentation de la Stratégie L'algorithme calcule une courbe VWAP glissante pondérée p
Vortex Confluence Radar
Syarief Azman Bin Rosli
Vortex Confluence Radar MT4 Vortex Confluence Radar est un moteur d'évaluation de confluence multi-oscillateurs développé nativement pour MetaTrader 4. Il fusionne trois oscillateurs techniques de référence — Relative Vigor Index (RVI), Commodity Channel Index (CCI) et Williams Percent Range (WPR) — en un histogramme de momentum unifié, complété par une ligne de signal lissée et des alertes automatiques lors des croisements. Architecture et signaux visuels de l'indicateur L'indicateur fonctionne
Kinetix Speed Commander
Syarief Azman Bin Rosli
Kinetix Speed Commander MT4 Kinetix Speed Commander   est un cockpit d'exécution d'ordres en un clic, un calculateur dynamique de taille de position et un terminal de gestion du ratio risque/rendement conçu nativement pour MetaTrader 4. Développé spécifiquement pour les traders de sociétés de prop trading (Prop Firms), les scalpers et les day traders systématiques, Kinetix Speed Commander élimine les retards de calcul manuel, les erreurs de saisie de volume et l'exposition à un effet de levier e
Prism Candle Forge
Syarief Azman Bin Rosli
Prism Candle Forge — Moteur de Reconnaissance de Figures en Chandeliers pour MT4 Prism Candle Forge est une bibliothèque MQL4 native qui détecte et valide plus de 20 figures en chandeliers japonais par analyse géométrique pondérée par l'ATR. Elle fournit l'identification des figures, l'évaluation de confiance directionnelle, la classification morphologique et la validation du contexte de tendance via 8 fonctions exportées pour EA, Indicateurs ou Scripts. Zéro DLL, aucune dépendance externe, calc
Sigma Squeeze Reactor
Syarief Azman Bin Rosli
Sigma Squeeze Reactor Expert Advisor de Cassure par Compression de Volatilite Bollinger-Keltner Sigma Squeeze Reactor est un Expert Advisor pour MetaTrader 4 concu pour identifier et exploiter les phases d'explosion de volatilite directionnelle. Le systeme detecte la contraction des Bandes de Bollinger a l'interieur des Canaux de Keltner (le celebre squeeze de volatilite) et prend position des la liberation du flux avec confirmation par oscillateur de momentum. L'EA integre une   Architecture de
Fulcrum Value Profile
Syarief Azman Bin Rosli
Fulcrum Value Profile est un indicateur MetaTrader 4 qui construit un profil de volume en ticks pour chaque session, marque son Point of Control (POC) et sa zone de valeur, trace les POC/VAH/VAL en développement sous forme de lignes, suit les POC vierges (naked POC) et signale deux configurations sur bougies clôturées : retour dans la zone de valeur précédente (règle des 80%) et acceptation hors de celle-ci (cassure). Il n'ouvre, ne modifie et ne ferme jamais de positions. Démarrage rapide Place
Filament Tripline Console transforme vos propres lignes horizontales et lignes de tendance en « fils de déclenchement » (triplines) armés. Quand le prix touche une ligne, ou qu'une bougie clôture au-delà, le tripline exécute son action : une alerte, un achat BUY ou une vente SELL au marché avec lot, stop loss et take profit automatiques, ou un EXIT qui ferme des positions. Il ne trade jamais selon sa propre analyse ; il n'agit que sur les lignes que vous armez. Démarrage rapide Attachez l'utilit
Spectra Trend Ribbon
Syarief Azman Bin Rosli
# Spectra Trend Ribbon MT5 Spectra Trend Ribbon est un indicateur natif pour MetaTrader 5 conçu pour déterminer la direction de tendance et identifier les phases d'expansion de volatilité. Il associe une ligne de base centrale adaptative lissée à des bandes de volatilité dynamiques et des signaux de cassure de momentum automatisés. ## Interprétation des Signaux Visuels L'indicateur projette cinq éléments graphiques distincts sur le graphique : 1. Ligne de Base Adaptative Centrale (Ligne Mul
Aegis Risk Sentinel
Syarief Azman Bin Rosli
Aegis Risk Sentinel MT5 Aegis Risk Sentinel   est un utilitaire professionnel de gestion des risques et de protection de capital en temps réel développé nativement pour MetaTrader 5. Conçu pour les traders de sociétés de prop trading (Prop Firms), les gestionnaires de fonds et les day traders, Aegis applique une discipline mathématique stricte sur votre compte de trading afin d'éviter les drawdowns excessifs, le trading émotionnel et les appels de marge. L'utilitaire intègre un tableau de bord g
Stratos Momentum Engine
Syarief Azman Bin Rosli
Stratos Momentum Engine MT5 Stratos Momentum Engine est un Expert Advisor algorithmique pour MetaTrader 5, conçu pour exploiter les mouvements directionnels du marché via une approche de cassure de momentum multi-unités de temps (MTF). Le système combine l'analyse de régression linéaire sur l'horizon H1 pour déterminer la tendance de fond, la synchronisation fine des points d'entrée sur l'unité M15 à l'aide d'oscillations stochastiques, et une confirmation structurelle de cassure via les canaux
Nexus Quant Matrix
Syarief Azman Bin Rosli
Nexus Quant Matrix MT5 Nexus Quant Matrix   est une bibliothèque de calcul quantitatif et d'analyse statistique en flux continu de niveau institutionnel, développée nativement pour MetaTrader 5. Conçue pour les développeurs quantitatifs, les hedge funds systématiques et les concepteurs d'algorithmes, Nexus Quant Matrix assure un traitement numérique à ultra-haute vitesse directement dans l'environnement MQL5 sans nécessiter de bibliothèques dynamiques externes (DLL), de Python ou d'extensions C+
Quasar Regime Cloud
Syarief Azman Bin Rosli
Quasar Regime Cloud est un indicateur de régime de marché pour MetaTrader 5. Il détermine si le prix est en tendance ou en range et affiche le résultat directement sur le graphique grâce à un nuage fractal adaptatif. Les signaux ne sont produits que lorsque le marché est classé comme tendanciel, ce qui filtre de nombreux faux croisements en conditions latérales. Fonctionnement 1. Estimation de la dimension fractale Pour chaque barre, l'indicateur estime la dimension fractale (D) du prix sur une
Isobar Event Shield
Syarief Azman Bin Rosli
Isobar Event Shield protège vos positions contre les annonces économiques dans MetaTrader 5. Il lit le calendrier économique intégré au terminal, affiche le compte à rebours de chaque publication qui concerne vos symboles et, peu avant chacune, applique la protection choisie aux positions et ordres en attente que vous ou d'autres Expert Advisors détenez déjà. Il n'ouvre jamais de position lui-même. Démarrage rapide Attachez l'utilitaire à un graphique (une copie par terminal) et activez Algo Tr
Riptide Sweep Reclaimer
Syarief Azman Bin Rosli
Riptide Sweep Reclaimer est un Expert Advisor MetaTrader 5 qui trade les balayages de liquidité d'un range de session calme : il mesure le plus haut et le plus bas d'une fenêtre choisie (par défaut 00:00-08:00 heure serveur), attend que la session suivante perce un côté et joue le retour dès qu'une bougie clôture à nouveau dans le range, avec pour cibles le milieu puis le côté opposé. Une position à la fois sur le symbole du graphique ; ni grille, ni martingale, ni moyennage. Démarrage rapide A
Filtrer:
Aucun avis
Répondre à l'avis