Trading Window and Spread Guard MT4
- Utilitys
-
Kazuma Uezono
MQL5 / MQL4 / Pine Script v6 developer and active trader.
Seller on the MQL5 Market (indicators for MT4/MT5).
Services:
- TradingView Pine Script to MT5/MT4 conversion (bar-by-bar matching, with tester report)
- MT4 to MT5 migration - Version: 1.1
- Aktivierungen: 5
Trading Window and Spread Guard ist ein Hilfsprogramm für MetaTrader 4, das Ihren eigenen Expert Advisors mitteilt, wann sie keine neuen Trades eröffnen sollen. Sie legen bis zu fünf Stoppfenster fest (Wochentag und Uhrzeit, zum Beispiel den täglichen Rollover, liquiditätsarme Nachtstunden oder Stunden, in denen die Spreads Ihres Brokers weit sind) sowie ein Spread-Limit. Solange ein Fenster aktiv ist oder der Spread eines Symbols über Ihrem Limit liegt, setzt der Guard ein Flag, das Ihre EAs lesen können. Optional kann er auch Positionen schließen, die eröffnet wurden, während neue Trades gesperrt waren.
Es ist ein Werkzeug zum Pausieren des Handels, keine Handelsstrategie. Es sucht keine guten Handelszeiten, gibt keine Kauf- oder Verkaufssignale und eröffnet niemals eine Position oder platziert eine Order auf einem Real- oder Demokonto. Es verhindert keine Verluste: Es kann Ihre EAs nur neue Einstiege auslassen lassen oder eine neue Position schließen, nachdem sie eröffnet wurde. Welche Stunden Sie meiden und ob und wie Sie handeln, bleibt Ihre Entscheidung.
Mit den Standardeinstellungen ist nichts aktiv: keine Fenster, Spread-Limit AUS, Schließen AUS. Bis Sie die Eingaben ausfüllen, zeigt der Guard nur sein Panel.
Wichtig: Ihre EAs müssen das Flag lesen. Ein EA, der das Flag nicht prüft, handelt weiter wie bisher. Die Prüfung besteht aus wenigen Codezeilen (unten). Bei einem EA, den Sie nicht ändern können, funktioniert nur die Option „Während der Sperre eröffnete Positionen schließen“, und sie schließt die Position erst nach der Eröffnung, was Spread und Kommission kostet.
Funktionen
- Bis zu 5 Stoppfenster. Formate: 12:00-12:30 (jeden Tag), Mon-Fri 23:50-01:15 (beginnt an jedem genannten Tag und kann über Mitternacht gehen), Mon,Wed,Fri 08:00-08:30, Fri 21:00-Mon 01:00 (eine Spanne über mehrere Tage). Wochentage auf Englisch (Mon oder Monday, Groß-/Kleinschreibung egal) oder Japanisch; All = jeden Tag. Das Ende darf 24:00 sein. Fenster, die sich berühren oder überlappen, werden verbunden.
- Fensterzeiten in Serverzeit (Standard) oder in der Zeit dieses Computers.
- Spread-Limit in Punkten: ein Wert für alle Symbole und optional Werte je Symbol (zum Beispiel GOLD=50,US30=300).
- Symbole: das Chartsymbol (Standard), eine Liste oder * = alle Symbole in der Marktübersicht (bis 100).
- Flags für Ihre EAs als globale Variablen des Terminals, mit fertigen Lesefunktionen (TWG_Reader.mqh).
- Optional: Positionen schließen, die während der Sperre eröffnet wurden, nur für die von Ihnen gewählten Symbole und Magic Numbers. Positionen, die beim Start des Guards bereits bestanden, werden nie berührt.
- Panel: Zustand (OK oder BLOCKED und der Grund), nächstes Fenster mit Countdown, Ihre Fenster, Spread und Limit, Schließ-Einstellungen, Flag-Namen und die letzte Meldung. Englisch oder Japanisch (automatisch nach Terminalsprache). Einklapp-Taste.
- Optionale Popup-Alarme und Push-Benachrichtigungen, wenn eine Sperre beginnt oder endet, ein Spread zu weit wird oder eine Position geschlossen wird.
Wichtige Eingaben
- Stop windows: Zeitbasis der Fenster (Serverzeit / Computerzeit), Window 1 bis Window 5 (leer = AUS).
- Spread limit: EIN/AUS (Standard AUS), maximaler Spread in Punkten (Standard 30), Maximum je Symbol.
- Symbols and positions: Symbole (leer = dieser Chart, * = alle in der Marktübersicht, oder eine Liste), während der Sperre eröffnete Positionen schließen (Standard AUS), nur diese Magic Numbers schließen (leer = alle, 0 = manuelle Trades).
- Flags: Namenspräfix der globalen Variablen (Standard "TWG").
- Alerts (Popup, Push), Panel (anzeigen, Sprache, Ecke, Abstände, Schriftgröße), maximale Slippage beim Schließen, Demo im Strategietester.
- 23 Eingaben. MetaTrader 4 zeigt sie als eine Liste ohne Gruppentitel, in der obigen Reihenfolge.
Funktionsweise
- Der Guard prüft alle 250 ms und schreibt die Flags etwa einmal pro Sekunde, daher sieht Ihr EA eine Änderung nach etwa 1 bis 2 Sekunden.
- Flags (globale Variablen des Terminals; Werte sind UTC-Zeiten in Sekunden; "TWG" ist das Standardpräfix):
- TWG.TIME: Ende des aktuellen Stoppfensters, 0 außerhalb von Fenstern.
- TWG.SPR.<Symbol> (zum Beispiel TWG.SPR.EURUSD): größer als die aktuelle Zeit, solange der Spread dieses Symbols über dem Limit liegt. Ein Flag je beobachtetem Symbol.
- TWG.NEXT: Beginn des nächsten Stoppfensters. TWG.HB: letzte Aktualisierung (zeigt, dass der Guard läuft).
- Ein Flag ist EIN, solange sein Wert größer als TimeGMT() ist.
- Grundprüfung für Ihren EA (gleiche Logik wie TWG_Reader.mqh mit dem Standardpräfix):
bool GuardBlocks(const string sym)
{
if(MQLInfoInteger(MQL_TESTER)) return false;
double now = (double)TimeGMT();
if(GlobalVariableGet("TWG.HB") < now - 30) return false; // guard not running
return GlobalVariableGet("TWG.TIME") > now || GlobalVariableGet("TWG.SPR." + sym) > now;
}
Vor jedem neuen Einstieg: if(GuardBlocks(_Symbol)) return;
- TWG_Reader.mqh bietet TWG_IsBlocked, TWG_TimeBlocked, TWG_SpreadBlocked, TWG_SecondsLeft und TWG_GuardRunning. Der Market-Download enthält nur den EA; der vollständige Text dieser Datei steht in den Kommentaren zu diesem Produkt. Im Strategietester antworten diese Funktionen immer mit „nicht gesperrt“, Ihre Backtests ändern sich also nicht.
- Der Wochentag ist der Tag, an dem das Fenster beginnt. "Mon-Fri 23:50-01:15" ergibt fünf Fenster, die Montag 23:50 … Freitag 23:50 beginnen und um 01:15 am Folgetag enden. Montag 00:00–01:15 ist nicht abgedeckt, weil dieser Teil am Sonntag beginnen würde. Um das Wochenende und den Montagmorgen abzudecken, fügen Sie ein zweites Fenster hinzu, etwa Fri 21:00-Mon 01:15. (Mit Fri 21:00-Mon 01:00 bleibt Montag 01:00–01:15 offen.)
- „Während der Sperre eröffnet“ bedeutet: Die Eröffnungszeit der Position liegt in einem Stoppfenster, oder der Spread ihres Symbols lag in diesem Moment über dem Limit (geprüft für Positionen bis 10 Minuten alt).
- Das Schließen wird bei der nächsten Prüfung gesendet (alle 250 ms oder beim nächsten Tick).
- Sie können den Guard auf mehreren Charts mit demselben Präfix betreiben (zum Beispiel für verschiedene Symbole). Die Flags behalten dann den längsten Wert. Verwenden Sie verschiedene Präfixe, wenn Gruppen von EAs unterschiedliche Regeln brauchen.
Hinweise und Grenzen
- Keine Garantie. Der Guard sperrt Orders nicht selbst. Nur EAs, die das Flag prüfen, lassen neue Einstiege aus.
- Das Entfernen des letzten Guards hebt die Sperre auf. Wenn Sie ihn entfernen oder seinen Chart schließen, löscht er seine Flags sofort. Stoppt das Terminal unerwartet, betrachten die Lesefunktionen den Guard nach 30 Sekunden als gestoppt. Standardmäßig erlauben sie dann den Handel. Soll Ihr EA warten, wenn der Guard nicht läuft, rufen Sie TWG_IsBlocked(_Symbol, "TWG", true) auf (blockIfGuardStopped = true).
- Die Flags hinken etwa 1 bis 2 Sekunden hinterher. Eine Order in der ersten Sekunde eines Fensters oder einer Spread-Spitze kann noch durchgehen. Spread-Spitzen, die kürzer als eine Prüfung sind, können übersehen werden.
- Pending Orders werden weder gelöscht noch geändert. Eine Pending Order, die während einer Sperre ausgeführt wird, eröffnet eine neue Position, die nur geschlossen wird, wenn die Schließ-Option EIN ist und die Position im Geltungsbereich liegt.
- Ist der Magic-Number-Filter leer, schließt die Option auch Trades, die Sie im Geltungsbereich von Hand eröffnen (Magic 0 = manuelle Trades). Jedes Schließen kostet Spread und Kommission und kann mit Verlust enden. Der Guard kann einen anderen EA nicht daran hindern, Orders zu senden; eröffnet ein EA während einer Sperre immer wieder Trades, wird jeder davon geschlossen.
- Spread-Flags gibt es nur für die beobachteten Symbole. Handelt Ihr EA andere Symbole, fügen Sie diese der Liste hinzu oder verwenden Sie *.
- Die Fensterzeiten folgen der gewählten Uhr. Die Serverzeit verschiebt sich mit der Sommerzeit Ihres Brokers; die Computerzeit folgt diesem PC.
- Globale Variablen gehören zu einem Terminal. Betreiben Sie den Guard im selben MetaTrader-4-Terminal wie Ihre EAs.
- Der Guard arbeitet nur, solange MetaTrader 4 läuft und verbunden ist. Zum Schließen muss außerdem AutoTrading EIN sein (Taste in der Symbolleiste) und Live-Trading in den EA-Einstellungen erlaubt sein.
- Direkt nach einem Neustart des Terminals kann MetaTrader 4 den Timer manchmal einige Sekunden lang nicht erstellen. Der Guard versucht es alle 3 Sekunden beim nächsten Tick oder Chart-Ereignis erneut, und bis dahin zeigt das Panel eine rote Zeile "Timer not created - updates on ticks only (retrying)".
- MetaTrader 4 hat keine Funktion für die Serveruhr. Der Guard schätzt die Serverzeit aus eingehenden Ticks; direkt nach dem Start, bis ein neuer Tick kommt, verwendet er die Zeit des letzten Kurses. Wählen Sie die Computerzeit, wenn Sie die PC-Uhr bevorzugen.
- Das Panel wird mit eingehenden Ticks neu gezeichnet. Wenn keine Ticks kommen (zum Beispiel am Wochenende), kann es älter aussehen, als es ist; die Flags werden trotzdem per Timer aktualisiert. Panelzeilen werden bei etwa 63 Bytes abgeschnitten (japanischer Text früher).
- Strategietester: Die Flags liegen nur im Speicher. Ist die Eingabe "Tester only: demo window and small demo positions" EIN (Standard), eröffnet der Guard kleine Demo-Positionen (Mindestlot, Magic 73190): eine vor einem Fenster, die der Guard offen lässt, und eine darin, die der Guard sofort schließt (die Demo räumt ihre Positionen einige Minuten später auf). Ist kein Fenster gesetzt, verwendet er ein Demo-Fenster (30 Minuten oder 2 Balken, höchstens einmal pro Tag). Der Testerbericht zeigt nur diese Demonstration und ist kein Handelsergebnis; er kann einen kleinen Verlust zeigen. Bei sehr kleinen Einlagen (zum Beispiel 10 USD) gibt es eventuell keine Demo-Trades. Die Demonstration läuft niemals auf einem Real- oder Demokonto.
Kompatibilität und Support
- Nur MetaTrader 4. Die MetaTrader-5-Version wird separat verkauft. Auf einen Chart ziehen; weitere Charts nur bei Bedarf.
- Keine DLLs, kein Internet, kein externer Server.
- Testen Sie alle Einstellungen zuerst auf einem Demokonto.
- Support über MQL5-Nachrichten, Antwort innerhalb von 3 Werktagen: Installation, Einstellungen, Fehlermeldungen und der Aufruf der Lesefunktionen. Wir können nicht beraten, welche Stunden oder Spreads Sie meiden sollten, keine Markteinschätzungen oder Handelsentscheidungen geben und Ihren EA nicht für Sie ändern.
- Kein Ergebnis Ihres Handels wird versprochen oder angedeutet.
