Jeder Zeitfilter in einem Expert Advisor, jede Regel „Vor dem Rollover schließen“ und jedes Sitzungsfeld in einem Chart stützt sich auf eine einzige Sache: die Sitzungstabelle des Symbols, also die Zeiten, die der Broker über „SymbolInfoSessionQuote“ und „SymbolInfoSessionTrade“ angibt. Dieses Tool gleicht diese Tabelle mit den historischen Daten ab. Über die letzten N ganzen Tage zählt es für jede Minute der Woche, an wie vielen dieser Tage das Symbol einen M1-Balken aufweist, und stellt das Ergebnis neben die Angaben der Tabelle: anggebene Minuten, die normalerweise leer sind, Balken in Minuten, die die Tabelle als geschlossen ausweist, Minuten, in denen die Handels- und Kurs-Tabellen voneinander abweichen, sowie einmalige Ausfälle in angegebenen Minuten, die normalerweise nicht leer sind.

Fünf Market-Watch-Symbole, jeweils 35 volle Tage (01.09.2026 bis 06.10.2026, Serverzeit), ein Durchlauf in 62 ms. „Table h/wk“ und „Real h/wk“ sind die von der Sitzungstabelle angegebenen Stunden pro Woche bzw. die Stunden, in denen an mindestens der Hälfte der Tage dieses Wochentags Balken vorhanden sind. „Dead min/wk“ zählt deklarierte Minuten, in denen an höchstens einem Viertel der Tage Balken vorhanden sind; „Outages“ zählt Lücken von fünf Minuten oder mehr in deklarierten Minuten, die nicht als „Dead“ gelten. Angepasst an die Panel-Schriftgröße 4, um auf die Seite zu passen; die Standardeinstellung ist 8.
Das Problem
Eine Session-Tabelle ist eine Deklaration, keine Messung. Das Terminal zeigt sie in der Symbolspezifikation an und ein EA kann sie lesen, aber es findet keine Überprüfung anhand der tatsächlich eintreffenden Kurse statt. Auf dem unten gemessenen Demo-Server werden EURUSD, GBPUSD und USDJPY als von Montag bis Donnerstag von 00:00 bis 24:00 Uhr notiert deklariert. Die M1-Historie zeigt, dass direkt nach 21:00 Uhr Serverzeit oft überhaupt kein Kurs vorliegt. Gold auf demselben Server gibt eine Pause von 20:58 bis 22:00 Uhr an, und seine Balken stimmen minutengenau mit der Tabelle überein – außer am Montag, dem 7. September 2026, einem US-Feiertag, an dem der letzte Balken vor der Unterbrechung um 18:27 Uhr liegt und zweieinhalb Stunden einer angegebenen Handelssitzung leer sind.
Nichts davon ist in der Tabelle ersichtlich, und all das ist für den automatisierten Handel von Bedeutung. Ein anhand der Tabelle erstellter Zeitfilter wird versuchen, in Minuten zu handeln, in denen oft kein Kurs vorliegt. Auch der Strategietester verfügt dort über keine Ticks, sodass eine Regel, die „um 21:01 Uhr“ ausgelöst wird, an den meisten Tagen möglicherweise gar nicht ausgelöst wird. Und eine Eingabe zu den „Handelszeiten“, die jemand einmal aus der Spezifikation kopiert hat, ist nur so korrekt wie die Spezifikation selbst.
Was er misst
Das Fenster ist [D0, D1): D1 ist 00:00 Uhr Serverzeit des Tages, an dem der neueste M1-Balken des Symbols liegt; somit wird der noch nicht abgeschlossene heutige Tag ausgelassen, und D0 liegt InpDays ganze Tage früher (verschoben auf den ersten ganzen Tag, falls die M1-Historie später beginnt). Für jede Minute der Woche zählt das Tool die Daten dieses Wochentags im Fenster – im Kalender, sodass ein Feiertag ohne einen einzigen Balken als Datum zählt, bei dem jede Minute fehlt – sowie die Treffer, also die Daten, an denen in dieser Minute ein M1-Balken vorhanden ist. Eine Minute gilt als real, wenn ihr Beginn innerhalb einer Kurssitzung ihres Wochentags liegt, wobei derselbe Sitzungstest angewendet wird, den auch der „Tick Integrity Auditor“ verwendet.
Das Journal gibt die Berechnung als Identität pro Symbol aus: findings_rows == dead_windows + outside_windows + trade_no_quote_windows + quote_no_trade_windows + outages. Eine Prüfung, die nicht gemessen wurde, bleibt in der CSV-Datei leer und wird im Panel als „-“ angezeigt, niemals als „0“.
Beispiel für eine Messung
Exness-Demo-Server, Serverzeit = UTC, fünf Market-Watch-Symbole, InpDays=35, alle anderen Eingaben auf Standardwerten.
| Symbol | Tabelle h/Woche | tatsächliche h/wk | tote Minuten / Fenster | Minuten außerhalb | Handel ≠ Kurs-Min. | Ausfälle | Längster Ausfall |
|---|---|---|---|---|---|---|---|
| XAUUSD | 114,82 | 114,82 | 0 / 0 | 0 | 0 | 1 | 150 Min., Mo., 07.09.2026, 18:28 Uhr |
| EURUSD | 119,90 | 119,70 | 7 / 5 | 0 | 0 | 4 | 7 Min., Mi., 02.09.2026, 11:39 Uhr |
| BTCUSD | 168,00 | 168,00 | 0 / 0 | 0 | 0 | 1 | 13 Min., So, 13.09.2026, 07:16 Uhr |
| GBPUSD | 119,90 | 119,62 | 9 / 6 | 0 | 0 | 5 | 9 Min., Do, 01.10.2026, 21:03 Uhr |
| USDJPY | 119,90 | 119,57 | 14 / 5 | 0 | 0 | 9 | 10 Min., So, 04.10.2026, 21:05 Uhr |
Der Rollover ist eine Lücke, die in der Tabelle nicht ausgewiesen wird. An allen 20 Abenden von Montag bis Donnerstag innerhalb des Zeitfensters liegt der letzte Balken vor dem Rollover bei 20:59. Danach fehlt an 16 Abenden für EURUSD, an 19 für GBPUSD und an 20 für USDJPY mindestens eine Minute zwischen 21:00 und 21:19 Uhr, und an 10, 10 bzw. 14 dieser Abende fehlen vier oder mehr dieser Minuten. Die Dauer variiert von Abend zu Abend, sodass sich dies auf zwei Arten zeigt: als „tote Minuten“, bei denen die meisten Abende übereinstimmen (USDJPY am Montag und Dienstag, 21:00 bis 21:05 Uhr, Balken an höchstens einem von fünf Tagen) und als Ausfälle, bei denen dies nur an einigen Abenden der Fall ist (GBPUSD an drei Abenden, gezählt ab 21:03 Uhr, wo die „toten Minuten“ enden, jeweils sieben bis neun Minuten). Achtundzwanzig der 36 Feststellungen beginnen zwischen 21:00 und 21:15 Uhr; zwei davon sind die Sonntagseröffnungen von USDJPY, bei denen der erste Balken 6 bzw. 10 Minuten nach der angegebenen Zeit von 21:05 Uhr erschien.

Links: Anteil der 20 Abende von Montag bis Donnerstag innerhalb des Zeitfensters, an denen EURUSD einen M1-Balken aufweist, Minute für Minute von 20:50 bis 21:15 Uhr; die Sitzungstabelle gibt jede dieser Minuten als Eröffnung an. Rechts: XAUUSD am Montag, den 07.09.2026, im Vergleich zu den anderen vier Montagen des Zeitraums; der schattierte Bereich entspricht dem in der Tabelle angegebenen Handelsbeginn. Die Daten stammen aus M1-Balken, die über die MCP-Schnittstelle des Terminals ausgelesen wurden, nicht aus der eigenen Ausgabe des Tools.
Die Tabelle für Gold ist bis auf den Feiertag korrekt. Die tatsächlichen und ausgewiesenen Handelssitzungen von XAUUSD stimmen an jedem Wochentag minutengenau überein: 00:00 bis 20:58 Uhr und 22:00 bis 24:00 Uhr von Montag bis Donnerstag, 22:01 bis 24:00 Uhr am Sonntag, 00:00 bis 20:58 Uhr am Freitag. Die einzige Abweichung betrifft den 07.09.2026, den US-Labor-Day, an dem von 18:28 Uhr bis zur Handelsunterbrechung um 20:58 Uhr – also 150 Minuten lang – kein Kursbalken angezeigt wird. Die Tabelle kann nicht angeben, dass der Handel an diesem Tag vorzeitig beendet wurde; die historischen Daten tun dies jedoch.
Zwei Ausfälle tagsüber betrafen alle drei Währungspaare gleichzeitig: am Mittwoch, den 02.09.2026, ab 11:39 Uhr und am Mittwoch, den 09.09.2026, ab 10:37 Uhr: jeweils sieben Minuten, genau dieselben Minuten bei EURUSD, GBPUSD und USDJPY, während XAUUSD und BTCUSD in jeder dieser Minuten einen Balken aufweisen. Was auch immer die Ursache war – sie betraf die drei Währungspaare gleichzeitig und ließ Gold und Bitcoin unberührt, und es handelt sich um die Art von Ereignis, die ein Backtest dieser Tage wortlos wiedergibt.
Was einwandfrei ist: Kein Symbol weist einen einzigen Balken in einer Minute auf, die in seiner Tabelle als geschlossen ausgewiesen ist, und die Handelstabelle stimmt bei allen fünf mit der Kursnotierungstabelle überein, sodass C2 und C3 hier nichts gefunden haben. BTCUSD, das als 24/7 deklariert ist, ist tatsächlich rund um die Uhr verfügbar; der einzige Ausfall beträgt 13 Minuten am Sonntag, dem 13.09.2026, ab 07:16 Uhr.
Unabhängige Überprüfung des Berichts
Der Bericht lässt sich außerhalb von MetaTrader nachverfolgen. Das für diese Seite verwendete Skript liest nur das aus, was Python nicht selbst abrufen kann – das Fenster, die drei Schwellenwerte, ob die Handelsprüfung aktiviert war, sowie die Sitzungstabellen aus den Zusammenfassungs- und Sitzungsdateien –, ruft die M1-Balkenzeiten über die MCP-Schnittstelle des Terminals ab und berechnet die 22 Ergebnisspalten der Zusammenfassung neu, alle 10.080 Zellen der Karte jedes Symbols, die effektiven Sitzungen sowie die Ergebniszeilen aus den obigen Definitionen neu. Bei dem hier gezeigten Durchlauf stimmt es bei jedem Wert aller fünf Symbole mit dem Tool überein. Zwei manuell in eine Kopie der Dateien eingefügte Fehler (ein Zähler, eine Map-Zelle) wurden beide gemeldet. Seine eigenen Definitionen wurden zunächst anhand von zwei manuell erstellten synthetischen Wochen überprüft.
So wird es verwendet
Fügen Sie den Expert Advisor einem beliebigen Chart hinzu. Ist „InpSymbols“ leer, überprüft er das Chart-Symbol; „*“ überprüft den gesamten Market Watch; eine durch Kommas getrennte Liste überprüft die entsprechenden Symbole. Die Überprüfung läuft einmal (oder alle „InpRefreshMinutes“), schreibt den Vergleich pro Wochentag und die Ausfälle in das Expert-Journal, zeichnet die Tabelle auf das Chart und erstellt die CSV-Dateien. Es liest ausschließlich Verlaufs- und Sitzungstabellen: Der Code enthält keine Handelsfunktion, keine DLL und keinen Netzwerkzugriff. Bei Eingabe von * werden nur Symbole berücksichtigt, die bereits im Market Watch vorhanden sind; ein in der Liste genanntes Symbol, das noch nicht vorhanden ist, wird vom Terminal beim Einlesen der Historie ausgewählt, wie bei jeder Historieabfrage.
Lesen Sie zunächst die Journalzeilen. Eine Zeile wie
USDJPY Mo Tabelle 00:00–24:00 | real 00:00–21:00 21:05–24:00 | dead 21:00–21:05 (1/5) | outside none
bedeutet, dass montags der „Table“-Modus den ganzen Tag abdeckt, Balken von 00:00 bis 21:00 Uhr und ab 21:05 Uhr vorhanden sind und jede Minute von 21:00 bis 21:05 Uhr an höchstens einem von fünf Montagen einen Balken aufwies. Verwende für Zeitfilter die tatsächlichen Sitzungen, nicht die deklarierten; erweitere „InpDays“, um mehr Wochen zu sehen, und verringere „InpOutageMinutes“, um kürzere Lücken zu erkennen.
Eingaben
| Eingabe | Standard | Bedeutung |
|---|---|---|
| InpSymbols | "" | Symbole: leer = Chart-Symbol, * = Market Watch, ansonsten CSV-Liste |
| InpDays | 28 | Gesamtzahl der Server-Tage der M1-Historie, die geprüft werden sollen (vor dem heutigen Tag endend) |
| InpLivePct | 50 | Eine Minute gilt als real, wenn an mindestens diesem Prozentsatz ihrer Wochentage Balken vorhanden sind |
| InpDeadPct | 25 | Eine deklarierte Minute gilt als ungültig, wenn auf höchstens diesem Prozentsatz dieser Minuten Balken vorhanden sind |
| InpOutageMinutes | 5 | Meldet einmalige Lücken in normalerweise aktiven deklarierten Minuten ab dieser Länge |
| InpCheckTrade | true | Vergleiche die Handelssitzungstabelle mit der Kursnotierungstabelle |
| InpMaxExamples | 5 | Journal: Ausfälle, die pro Symbol ausgegeben werden |
| InpWriteCsv | true | CSV-Dateien mit Zusammenfassung, Sitzungen, Karte, Wirksamkeit und Ergebnissen schreiben |
| InpShowPanel | true | Ergebnistabelle im Diagramm darstellen |
| InpPanelCorner | CORNER_LEFT_UPPER | Panel-Ecke |
| InpPanelFontSize | 8 | Schriftgröße des Panels |
| InpPanelX | 10 | X-Versatz des Panels, px |
| InpPanelY | 18 | Y-Versatz des Panels, px |
| InpRefreshMinutes | 0 | Alle N Minuten erneut prüfen (0 = einmal prüfen) |
Werte der Überprüfungs-Eingaben, die außerhalb des zulässigen Bereichs liegen, werden jeweils mit einer Journalzeile begrenzt (das Panel nimmt die Eingaben ohne Fehlermeldung entgegen); der Expert Advisor verweigert niemals den Start.
Ausgabedateien
Alle Dateien werden im Verzeichnis „MQL5\Files\SessionRealityAuditor\“ abgelegt, durch Semikolons getrennt und mit einer Kopfzeile versehen. Sie tragen den Namen <Symbole>_<Tage>d_<Chart-ID>_…, sodass sich zwei Charts niemals gegenseitig überschreiben.
Einschränkungen, klar formuliert
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/78079
ATS Trade Management Library - break-even, trailing stop and partial closes for any EA
Verwaltet offene Positionen in einem Expert Advisor: Break-Even, Trailing Stop, zwei Teilschließungen sowie ein Stop und ein Kursziel für Positionen, für die noch keine festgelegt sind. Es eröffnet niemals einen Trade.
ATS Prop Rules Monitor - prop firm challenge scoreboard with the room left on every rule
Ein Fenster für die Regeln eines Prop-Firm-Wettbewerbs: Tagesverlust, Maximalverlust (statisch oder gleitend), Gewinnziel, Mindestanzahl an Handelstagen und die „Best-Day“-Regel (Konsistenz). Für jede dieser Größen wird angezeigt, wie viel bereits verbraucht wurde und wie viel Spielraum noch verbleibt, ausgedrückt in Geld. „One more trade“ zeigt Ihnen die größte Lotgröße an, bei der ein Stop-out noch innerhalb des heute verbleibenden Spielraums und des Spielraums für den Maximalverlust bleibt. Nur-Lese-Modus: Es werden niemals Trades eröffnet, geändert oder geschlossen. Die Voreinstellungen enthalten typische Werte; da Unternehmen ihre Regeln ändern, sollten Sie Ihre eigenen Regeln überprüfen und die benutzerdefinierte Voreinstellung verwenden. Basiert auf der ATS Risk Library (ATS_RiskLib.mqh, im Lieferumfang enthalten).
CajasTF – Integriertes Seitenpanel mit mehreren Zeitrahmen für MT5
Echtzeit-Mini-Chart für mehrere Zeitrahmen im Seitenbereich mit intelligenter Farbanpassung, unabhängiger Kursskala und Countdown-Timer für Kerzen.
Advanced Prop-firm Trade Panel based on S-R
Ein Panel für den manuellen Handel mit integriertem Risikoschutz für Prop-Firmen und einem versteckten Support-/Resistance-Finder für MetaTrader 5.