In diesem Artikel
Nach diesem Artikel kannst du …
- Du sicherst zwei vollständige Laufstände vor Änderungen.
- Du verwendest dreizehn konsistente Manifestfelder.
- Du unterscheidest identische Deklaration von überprüfter Dateiidentität.
- Du stimmst eine Kostenänderung mit unverändertem Preisresultat ab.
Begriffe direkt erklärt
Expert Advisor (EA) Spread Drawdown„Derselbe Roboter“ kann denselben Dateinamen und trotzdem einen anderen kompilierten Inhalt bedeuten. Auch Daten, Kontrakt und Ausführungsannahmen können sich ändern, während sichtbare Parameter gleich aussehen. Bewahre zwei unterschiedliche Ergebnisse deshalb zuerst als getrennte Läufe. Eine Beschreibung im Manifest hilft beim Vergleich, ersetzt aber die dahinterliegenden Berichte und Archive nicht.
Vor dem erneuten Test beide Stände sichern
Speichere Berichte, Ausführungslisten, Journale und Parametersätze einschließlich des schlechteren Ergebnisses. Eine Equitykurve zeigt weder ersten Fill noch tatsächlichen Testbeginn oder Anzahl der Teilfills. Du brauchst die Verbindung von Einstellungen über Operationen bis zum Endwert.
Unterscheide Einzeltest, Optimierungssuche und spätere Evaluation. Bewahre Terminalbuild, Programm und verwendete Bibliotheken. Ein Dateiname identifiziert keine Bytes. Wer vor dem Archivieren neu kompiliert oder Historie entfernt, erschwert die Rekonstruktion des ursprünglichen Vorgangs.
Vergleiche angeforderten und tatsächlichen Anfang. MetaQuotes beschreibt, dass fehlende vorbereitende Historie den Beginn verschieben kann. Ein ganzer Monat und ein verkürzter Zeitraum sind verschiedene Untersuchungen. Der Datenlückencheck prüft den Export; hier kommen weitere Laufbedingungen hinzu.
Dreizehn Manifestfelder unverändert benennen
Der vorhandene Vergleicher erwartet zwei JSON-Objekte mit denselben dokumentierten Feldnamen. Übersetze die technischen Schlüssel nicht. version ist die Zahl 1 und bezeichnet das Manifestformat, nicht die EA-Version. Andere Werte sind Zeichenfolgen. inputs, costs und initialState dürfen zusätzlich einfache Objekte mit ihren Einstellungen sein.
- version, platform, build, codeRevision: Format, Plattform, Build und Code samt Abhängigkeiten.
- inputs, dataSnapshot: Parameter und gesicherter Datenstand.
- symbolSpecification, executionModel, costs: Kontrakt, Simulation und Kosten.
- requestedStart, actualStart, end: angeforderte und tatsächliche Zeitgrenzen.
- initialState: Anfangssaldo, Positionen und relevante Initialisierung.
dataSnapshot kann ein Archivkennzeichen oder separat berechneter Hash sein. „data-v 1“ bleibt eine Deklaration; das Formular liest keine Datei. Auch ein als Hash bezeichneter Codewert wird nicht überprüft. Verbinde Kennzeichen mit den entsprechenden privaten Archiven. Unbekanntes bleibt offen statt eine erfundene Autorität zu erhalten.
Schreibe Zeit mit ausdrücklicher Zone, möglichst einheitlich in UTC. Europe/Berlin am Arbeitsplatz und die Uhr des Handelsservers können abweichen. Ein angehängtes Z konvertiert Serverzeit nicht nach UTC. Derselbe Moment in verschiedenen Formaten wird vom Werkzeug nicht automatisch normalisiert.
Für maschinenlesbare Spezifikationszahlen verwende Dezimalpunkt-Zeichenfolgen, etwa "1.5"; die deutsche Ergebnisdarstellung darf weiterhin Dezimalkomma verwenden. Leere oder ausgelassene Angaben bedeuten unbekannt. Doppelte Schlüssel und nicht dokumentierte oberste Felder werden zurückgewiesen. Ein Datensatz ist auf 64 KiB, acht Ebenen und 2.000 Werte begrenzt. Verschachtelte Zahlen dürfen höchstens 15 signifikante Ziffern haben; unsichere große Ganzzahlen sind ausgeschlossen.
Was der vorhandene Vergleich tatsächlich prüft
Bearbeite die beiden Beispielobjekte und vergleiche Felder, Unterschiede sowie fehlende Deklarationen. Die Auswertung läuft lokal im Browser, sendet Daten nicht weiter, importiert keine Dateien und speichert Einträge nicht dauerhaft. Du kannst Ergebnis zurücksetzen oder herunterladen. Verwende keine Passwörter, Zugangscodes oder persönlichen Angaben.
Das Werkzeug startet weder MT5 noch liest es ein Konto. Gleiche Objekte bedeuten gleiche eingegebene Werte, nicht identische Marktbedingungen oder vollständig beschriebene Umgebung. Ohne JavaScript bleiben Erklärung und Rechenbeispiel nutzbar, der interaktive Vergleich benötigt dagegen die vorhandene Browserfunktion. Prüfe Ergebnisse mit ihren Berichten, statt eine Übereinstimmung als Zertifikat zu behandeln.
Zwei Backtestprotokolle vergleichen
Ein Trade mit zwei Kostenannahmen
Eigenes hypothetisches EUR-Modell: ein linearer Vertrag, ein abgeschlossener Trade mit zwei Fills und 10 EUR Preisresultat. Preise, Menge und Zeitraum stimmen überein; Finanzierung und andere Gebühren fehlen. Lauf A nimmt 1 EUR Kommission je Fill an, Lauf B 2 EUR. Es sind Modelleingaben, keine Anbieterpreise.
Kommission erklärt2EURUnterschied;Deklarationen bleibenam Berichtzuprüfen.
- Lauf A
- 10−2×1=8 EUR – 1 EURKommission je Fill
- Lauf B
- 10−2×2=6 EUR – 2 EURKommission je Fill
- Differenz
- 2 EUR – Keine Signaländerung angenommen
A ergibt 10−2×1=8 EUR netto, B 10−2×2=6 EUR. Die 2-EUR-Differenz ist unter diesen Annahmen vollständig durch Kommission erklärt. Sie beweist weder schlechtere Signale noch Datenfehler oder Slippage. Der Vergleicher muss den geänderten Kostenbereich markieren; Bedeutung und Wirklichkeit der Deklaration werden weiterhin am Bericht geprüft.
Bei EUR-Feldern kannst du im freien costs-Unterobjekt ausdrücklich commissionPerFillEUR verwenden, zusammen mit fills, financingEUR und otherEUR. Die obersten dreizehn Schlüssel bleiben gleich. Vermische keine USD- und EUR-Beträge in einer Summe. Zwei gleiche Nettowerte können bei anderen Operationen ebenfalls entstehen; der Endsaldo ersetzt keinen Fillvergleich.
Bei gleichen Deklarationen das erste Ereignis suchen
Vergleiche erste abweichende Signalzeit, Symbol, Kursseite, Menge und Eintritts- oder Ausstiegsgrund. Notiere auch Entscheidungen ohne Trade. Ein ähnlicher Endwert kann einen Fehler schon beim ersten Indikatorinput verdecken. Ändere im kontrollierten Folgetest einen dokumentierten Faktor und behalte den vorigen Bericht.
Prüfe Abhängigkeiten und Initialisierung. Die Testerumgebung mit Agenten, Dateien und globalen Variablen unterscheidet sich vom Terminal. Nutzt Code Zufall, dokumentiere dessen Initialisierung. Schiebe Unterschiede nicht pauschal auf Cache und entferne nicht die einzige Datenkopie als ersten Diagnoseschritt.
Ein Manifest kann eine Abhängigkeit auslassen oder Daten falsch beschreiben. Keine Unterschiede im Formular grenzen die Frage ein, schließen diese Möglichkeiten aber nicht aus. Wähle nicht automatisch das bessere Resultat und nenne das schlechtere nicht ohne Beleg einen Plattformfehler. Der MT4/MT5-Testleitfaden behandelt weitere Einstellungen.
Nach dem Vergleich zur Methode zurückkehren
Bei Startverschiebung identifizierst du den ersten verfügbaren Input, bei Gebührenänderung tatsächliche Fills und Buchungen. Ist die Ursache offen, erweitere die Belege. Historische Nettorendite beweist weder korrekte Annahmen noch künftigen Gewinn.
- Bewahre beide Laufpakete und ergänze die zwölf RUN-Felder samt Version, insgesamt dreizehn obersten Schlüsseln. Verbinde jede deklarierte Kennung mit dem tatsächlich erhaltenen Archiv; der lokale Vergleich zeigt Unterschiede der Angaben, nicht eigenständig die Echtheit eines Daten-, Symbol- oder Codehashes.
- Wähle einen Unterschied und untersuche ihn in einem kurzen kontrollierten Test bei unveränderten übrigen Bedingungen. Rechne im Gebührenmodell acht und sechs EUR netto sowie zwei EUR Differenz nach; erhalte auch Versuche, die deine vermutete Erklärung nicht bestätigen, statt nur passende Wiederholungen zu speichern.
- Prüfe bei einem verschobenen Start den ersten verfügbaren Input und bei anderen Gebühren die tatsächlichen Fills samt Buchungen. Wenn die Ursache offen bleibt, ergänze Belege vor der Strategieevaluation; historische Nettorendite bestätigt weder geklärte Annahmen noch einen Handelsvorteil unter späteren Bedingungen.
Prüfe dein Verständnis
Etwa 3 Minuten Übung.
Antwort und Erklärung anzeigen
Zwei Fills verursachen zusammen 2 EUR zusätzliche Kosten.
Weitere Fragen
Zertifizieren gleiche Manifeste einen reproduzierbaren Test?
Nein. Verglichen wird die eingegebene Beschreibung, nicht die ganze laufende Umgebung. Derselbe dataSnapshot-Wert beweist keine gleichen Dateien. Bewahre Code, Einstellungen, Berichte und Datenkopien und rechne Datei-Hashes bei Bedarf separat. Unbekannte Werte bleiben offen. Gleichheit grenzt die Untersuchung ein, schließt aber ausgelassene Abhängigkeiten, falsche Initialisierung oder unzutreffende Deklarationen nicht aus.
Soll ich zuerst Cache löschen oder den EA neu kompilieren?
Sichere zunächst beide Laufstände. Änderungen vor dem Archivieren machen den ursprünglichen Unterschied schwerer rekonstruierbar. Vergleiche Manifest, Bericht und erstes abweichendes Ereignis, dann teste eine dokumentierte Veränderung. Bei Neukompilation bewahrst du vorherige Datei, Codeversion und Umgebung. Lösche nicht die einzige Historie, die du zur Untersuchung brauchst, und unterstelle keinen Cachefehler ohne Beleg.
Warum kann actualStart von requestedStart abweichen?
Der Tester benötigt vor dem gewünschten Beginn vorbereitende Historie. Bei zu wenig Daten beschreibt MetaQuotes eine mögliche Startverschiebung. Bewahre deshalb beide Felder, statt dieselbe Zeit ungeprüft einzutragen. Vergleiche Log, Bericht, Datenbereich und Modell. Eine Datumdifferenz bedeutet unterschiedliche Bedingungen bis zur Klärung. Ähnliche Endkurven ersetzen den Abgleich der tatsächlichen Zeitgrenzen nicht.
Soll ich den Lauf mit mehr Gewinn auswählen?
Kläre zuerst unterschiedliche Bedingungen. Im eigenen Modell entsteht der größere Nettobetrag allein durch geringere Kommission, nicht durch bessere Signale. Auch Daten, Zeitraum oder Fills können variieren. Reproduziere die Ursache und wähle passende Untersuchungsannahmen, bevor du Strategiequalität mit Kosten, Drawdown und getrennten Daten beurteilst. Ein historisches Ergebnis bestätigt keine Zukunftsrendite.
Quellen und Nachvollziehbarkeit
- MetaTrader5 — Strategietester
Getrennte Tests/Optimierung,Tickmodi,Ausführungsannahmen und Mehrsymboltests.
- MetaTrader5 — Besonderheiten des Strategietesters
Agenten,Initialisierung und Testumgebung vomlokalen Terminal unterscheiden.
- MQL5 — Testen von Handelsstrategien
Testerumgebung,Dateien,globale Variablen undchronologisches Testverhalten.
Rechenfälle sind ausdrücklich angenommene Beispiele. Sie ersetzen weder aktuelle Marktdaten noch die Spezifikation deines Anbieters.
