Der Handel-Kontext ist damit beschäftigt Fehler-Ursachen-Alpträume für Spekulanten und Hochfrequenz-Händler. MetaTrader Drosseln, wenn sie zu viele Diagramme zu öffnen oder zu viele bestellen. Die Probleme ergeben sich aus wie MT4 verarbeitet und erhält Informationen aus dem Sitzungsbrokerserver.
Die OrderSend() Befehl, die MMS-Programmierer Verwenden Sie, um einen Handel zu öffnen, auch sagt den MT4 Client-terminal auf eine Serverantwort warten. Alles stürzt ab. Der Code kann nicht nichts tun, bis der Server den Client-terminal weiterhin zulässt. Noch wichtiger ist, Das Handelsterminal lässt keine zusätzliche Geschäfte öffnen.
Beispiel
Ein Szenario, in dem Sie EURUSD handeln, AUDUSD und USDJPY Währungspaare auf H1-charts. MT4 muss eine eingehende Tick abwarten, bevor MQL Handel entscheiden können. Ich habe dieses Problem mit vor einigen Monaten zeitbasierte Bestellungen.
Die Zecken mehrerer Währungen gruppieren häufig während flüssige Stunden. Wenn das Terminal die eingehenden Zecken innerhalb von ein paar hundert Millisekunden voneinander empfängt, MetaTrader erstellt seinen eigenen Engpass.
Die Zecke AUDUSD kommt in erster. Der Expert Advisor sieht eine trading-Chance und beschließt, eine AUDUSD Handel mit OrderSend öffnen(). 150 MS später ein Tick EURUSD hereinkommt und schafft eine andere trading Chance. Die EURUSD-EA, Das läuft auf ein völlig anderes Bild, darf nicht für den Handel.
Verzögerung für Handel-Kontext ist ausgelastet
Unsere Expert Advisor-Programmierer Überprüfen Sie, ob “Handel-Kontext ist ausgelastet” Fehler vor dem senden Bestellungen an den broker. Wenn die Situation verlässt, die EA prüft Zusammenhang mit Handel jedes 50 MS bis zu 50 Mal.
Es ist nicht ungewöhnlich für MetaTrader Bestellungen nach einer Sekunde oder länger ausführen dauern. Der ursprüngliche AUDUSD Handel aus unserem Beispiel noch hängt draußen. Die EURUSD EA tritt ein 50 MS-Zyklus wo es ständig fragt, “Der Handel-Kontext erschließen?”
Dann kommt die USDJPY-tick 70 MS nach der EURUSD-tick. USD/JPY trifft das gleiche Handel-Kontext-Problem, treten sie in eine eigene, “Ist der Handel-Kontext beschäftigt” Schleife.
Wenn der Handel AUDUSD schließlich ausgeführt wird, Er lässt den EURUSD und USDJPY Fachberater in einem verzweifelten Rennen neueröffnete Handelsfenster entdecken. Die erste EA, die entdeckt, dass der Handel Kontext beschäftigt Fehler verschwunden schickt seine Anfrage zunächst. Die zweite EA, Leider, nicht kommunizieren mit dem ersten.. Obwohl die zweite EA entdecken werden, dass Handel Rahmen eröffnet, Sie erhalten einen Handel Stadtklima ist damit beschäftigt Fehler beim Versuch, den Handel; die Tannen EA hat bereits eine handelnde Anforderung gesendet.. Die zweite Fachberaterin Bereitstellung sich maximal 10 Fehler, bevor es über den Handel aufgibt.
Davon aus, dass die EURUSD neue Handelsfenster zuerst entdeckt, Die USDJPY erhält dann den ersten Versuch der fehlgeschlagenen Auftrag. Die USDJPY erkundigt sich noch einmal über den Handel Kontext jedes 50 MS. Der EURUSD-Handel führt schließlich, so dass die USDJPY schließlich der Markteinstieg.
Die meisten unserer Kunden bemerken nie diese Verzögerung, Was bedeutet, dass wir unseren Job getan haben. Es gibt, jedoch, eine Sollbruchstelle, wo MetaTrader einfach genug mit der Geschwindigkeit den Händler Anordnungsbefugnis kann nicht, begehrt. Beliebige Kombination der Charts wo 10 oder mehr Bestellungen gehen aus nahe-gleichzeitig führt verpasste Handelsmöglichkeiten.
MetaQuotes entworfen MT4 mit den Handel Kontextfehler, um die Verarbeitungsanforderungen der Vermittler zu begrenzen. Ich habe wiederholt festgestellt, Makler erhalten MetaQuotes’ bevorzugte Behandlung weil sie diejenigen Zahlen MetaQuotes sind’ Gebühr. MetaTrader ist keine hohe Frequenz Handelsplattform. Es ist nicht im Interesse des Maklers, high-Speed Handel unterstützen. Es öffnet sich in der Regel ihnen bis zu zu viele Händler nutzen Arbitrage Chancen.
Ron sagt
Die “Handel-Kontext ist besetzt” Fehler wird nur Occure, die je nach die Broker, die Sie verwenden. Und dies ist auch mit der gleichen EAS arbeiten gemeinsam die gleichen Geschäfte abschließen. Der Handel-Kontext ist gebucht kann Ihr Geld tilgen, weil es die Auslosung nach unten verursacht, zu vergrößern. Sie sollten eine Broker wählen, die Handel ermöglichen.
dMM() Michal sagt
Gut,
lassen Sie mich ein paar Worte auf MT4 Multi-Thread-Design fallen.
Die Hallo-Frequenz & Skalpieren, Startegists und alle manuellen Händler sind ganz bewusst sein, die MT4 teilt nur ein gemeinsamen-Logik-Thread für den Handel mit OPS. Dies vereinfacht das MT4 Kern-Design auf MetaQuotes (verzeihen Sie mir auf die Quelle der realen Probleme bemerkt unten zeigen ), aber kompliziert unser Leben, unser aller Bestreben, Leben in eine nahe-Echtzeit-Ausführung Schleifen zum Crawlen der FOREX Markt Veranstaltungen.
Also, Sobald ein Händler vorbei ein Wahrzeichen von ein paar manuelle Trades pro Woche bewegt, die nahe-Echtzeit-Probleme wachsen und werden weitere schmerzhafte.
Als Faustregel, man überwacht kontinuierlich die QoS des Brokerage Services, die nach eigener Aussage zugezogen hat, verwenden.
Die End-To-End-Natur der Trading-OPS führt die folgenden Engpässe / Single-Point-of-failure(s):
ein) ein MT4_Terminal Thread Konflikte — Ref. MQL4 IsTradeContextBusy() Test. Ich persönlich bevorzuge kontinuierlich überwachen / Maßnahme / Melden Sie dies, Ordnen Sie die Fähigkeit von meinem Makler ( die Anbieter der Zugriff auf den FOREX-Markt ) zu akzeptieren + Transact + Meine Bestellungen in nahe-Echtzeit-Modus ausführen. ( fordern Sie detaillierte Statistiken in LDF()/GDF() Graphen & RT-Messwerkzeuge )
b) ein auf MT4-Serverpfad Comms — Ref. IP-networking / E2E-Latenz / erste Meile vorgeschalteten Verkehrsüberlastung / Verkehr-Konzentrator ( Aggregator ) Pflege-Faktor / FUP-Richtlinien usw. ( für nicht-Rechenzentrum gehostet MT4-Terminal )
c) eine MT4-Server-Auslastung / Load balancing — Ref. GetLastError() / ERR_TRADE_TIMEOUT / ERR_SERVER_BUSY / ERR_TOO_MANY_REQUESTS / ERR_TOO_FREQUENT_REQUESTS
d) ein MT4_Terminal Comms Pfad — Ref. IP-networking / E2E-Latenz / Letzte-Meile DownStream Staus ( für nicht-Rechenzentrum gehostet MT4-Terminal )
Für alle in der Nähe von Echtzeit-Szenarien, Es ist klug, Messen und Erfassen von RT-Daten über die Kommunikation mit dem Makler .
Statistiken über diese E2E-Transaktionen sind lebenswichtige Vorwissen,
ob eine auf einen Broker EDV-Fähigkeiten verlassen und Handel OPS innerhalb von ein paar Dutzend ausführen kann [msec], oder warten Hunderte von [msec] oder ( ob Sie es glauben oder nicht ) ob Sie zu erwarten haben mehr als 2 – 6 Sekunden, um Ihr Trading MT4 Terminal Thread bereit ( kostenlos freigegeben aus aTradingContextBUSY.state Rücken wieder bereit zu studieren und dienen anderen Handel Betrieb “in Warteschlange”.
Angenommen, man kann sich vorstellen, wie schmerzvoll dies sein kann, sobald Sie einige verwalten 10, 20, 50 Bestellungen unter gewissen engen Bedingungen unter Ihre intensive Auftragsverwaltung-Technik und wie spannend unter dieser Voraussetzung wäre zu warten 20 – 60 Sekunden für jeden von ihnen geändert werden / geschlossen an der Seite an Ihren leistungsschwachen Broker-Maschine(s).
Denken – Maßnahme – Protokoll – Bewerten – Akt
(
Ändern Sie Ihres Providers Konnektivität / Ihr hosting-provider / Ihr broker — Alles dreht sich um das Geld
Der einzige, Wer Geld riskiert, ist Sie,
Sie riskieren
( aber nicht so viel riskieren müssen )
Beim Implementieren eines richtigen Satz von kluge und präventiven Maßnahmen, die Sie einführen können diese notwendigen Verbesserungen zu gegebener Zeit Sie können vermeiden, Gefahr, nur durch einen blinden Glauben zu verlieren, während eine leistungsschwache End2End Transaction Processing-Kette Ihre Trading-Ops nicht nur während der grundlegenden Marktereignisse droht, aber systematisch 24/5/365
)
Alles Gute
dMM() Michal / msLIB.*
dMM() Michal sagt
( Hoppla, der Text hat einige Wörter durch eingebettete Pseudo-HTML-Formatierungsprogramm verloren. & So haben einige Hinweise den Punkt verloren habe … Sorry für die Unannehmlichkeiten, keine Option Vorschau / Bearbeiten der post. Meine Schuld nicht zu erkennen, dass — bei Interesse, Verwenden Sie meine e-Mail, um es fest )
Ron sagt
Trade Kontext beschäftigt ist"können nicht von hand schließen Sie ein Gewinn-Trade Sie.