CoinScriptBacktest
Backtest
Teste die Signale deines Scripts als Strategie auf den Kerzen des Charts, lies Kennzahlen, Kapitalkurve und Trade-Liste und optimiere bis zu zwei Parameter.
Der Reiter Backtest im MantaAi-Panel macht aus den Signalen deines Scripts eine Strategie und rechnet durch, was sie auf den Kerzen des Charts gebracht hätte.
- Ein
signal()mitpos: 'below'ist ein Long-Einstieg. - Ein
signal()mitpos: 'above'ist ein Short-Einstieg.
Ein Script ohne signal() kann der Backtest nicht testen. Er meldet dann: „Kein signal() im Script. Long-Einstiege kommen aus signal(…, { pos: 'below' }), Short-Einstiege aus pos: 'above'.“
Worauf der Backtest rechnet
Der Backtest nimmt genau die Kerzen, die der Chart gerade geladen hat: dasselbe Symbol, derselbe Timeframe. Oben im Reiter stehen der Name des Scripts und der Zeitraum, etwa „5000 Kerzen · 1h“. Scrollst du im Chart weiter zurück, lädt er ältere Kerzen nach, und der Backtest rechnet über den längeren Zeitraum. Im Replay endet er am Replay-Zeitpunkt.
Er rechnet von selbst neu, sobald du den Code, die Richtung oder den Ausstieg änderst oder eine neue Kerze dazukommt. Ein Lauf darf bis zu 2 Sekunden dauern.
Die Regeln
- Ein- und Ausstieg finden zum Schlusskurs der Kerze statt.
- Es gibt immer nur eine Position. Weitere Einstiegssignale in dieselbe Richtung werden ignoriert, solange sie offen ist.
- Jeder Trade kostet 0,05 % Gebühren je Seite, zusammen also 0,1 %. Sie sind im Ergebnis jedes Trades schon abgezogen.
- Jeder Trade setzt das ganze Kapital ein, ohne Hebel. Die Ergebnisse verzinsen sich: Ein Trade mit +2 % nach einem mit +2 % ergibt rund +4,04 %.
- Auf der letzten Kerze eröffnet der Backtest nichts mehr.
Richtung und Ausstieg
| Richtung | Bedeutung |
|---|---|
| Long + Short | Beide Seiten werden gehandelt. |
| Nur Long | Nur Long-Einstiege. Short-Signale können eine Long-Position trotzdem schließen (bei Ausstieg Gegensignal). |
| Nur Short | Nur Short-Einstiege, umgekehrt. |
| Ausstieg | Bedeutung |
|---|---|
| Gegensignal | Ein Long schließt beim nächsten Short-Signal, ein Short beim nächsten Long-Signal. Bei Long + Short wird dabei gleich die Gegenrichtung eröffnet. |
| Nach 10 Kerzen | Die Position schließt zum Schlusskurs 10 Kerzen nach dem Einstieg. |
| TP 2 % · SL 1 % | Take-Profit 2 % und Stop-Loss 1 % vom Einstiegspreis, geprüft mit Hoch und Tief der folgenden Kerzen. Ausstieg genau auf dem Niveau. |
Bei TP 2 % · SL 1 % weiß der Backtest nicht, was innerhalb einer Kerze zuerst passiert ist. Berührt eine Kerze beide Marken, zählt der Stop-Loss. Bei Nach 10 Kerzen und TP 2 % · SL 1 % schließen Gegensignale keine Position.
Richtung und Ausstieg merkt sich das Terminal in deinen Einstellungen.
Die Kennzahlen
| Kennzahl | Bedeutung |
|---|---|
| Netto | Ergebnis der Strategie über den ganzen Zeitraum, nach Gebühren |
| Buy & Hold | Kursveränderung vom ersten bis zum letzten Schlusskurs, zum Vergleich |
| Trades | Zahl der abgeschlossenen Trades |
| Trefferquote | Anteil der Trades, die nach Gebühren im Gewinn geschlossen haben |
| Profit-Faktor | Summe aller Gewinne geteilt durch die Summe aller Verluste. Über 1 verdient die Strategie, ∞ heißt: kein Verlusttrade |
| Max. Drawdown | Größter Rückgang der Kapitalkurve von einem Hoch aus, offene Positionen eingerechnet |
Ohne abgeschlossene Trades zeigen Trefferquote und Profit-Faktor „–“.
Kapitalkurve
Die Kurve Strategie zeigt das Kapital Kerze für Kerze, offene Positionen zum jeweiligen Schlusskurs bewertet. Sie ist türkis, wenn die Strategie am Ende im Plus liegt, sonst rot. Gestrichelt daneben läuft Buy & Hold, eine waagrechte Linie markiert den Startwert. Darunter steht zur Erinnerung „Gebühren 0,05 % je Seite · Ein- und Ausstieg zum Kerzenschluss“.
Trade-Liste
Unten stehen die letzten 40 abgeschlossenen Trades, der neueste zuerst:
| Spalte | Inhalt |
|---|---|
| # | Laufende Nummer |
| Seite | Long oder Short |
| Einstieg | Datum und Uhrzeit des Einstiegs, darunter Einstiegs- und Ausstiegspreis |
| Dauer | Haltedauer in Kerzen, etwa „7 K.“ |
| Ergebnis | Ergebnis des Trades in Prozent, nach Gebühren |
Gibt es keine, steht dort „Keine abgeschlossenen Trades im Zeitraum.“
Optimierung
Die Optimierung probiert viele Werte für deine Eingaben durch und zeigt, welche Kombination am besten abgeschnitten hätte. Sie ist ab dem Pro-Plan enthalten.
- Das Script braucht mindestens ein
input(), zum Beispielconst len = input('Länge', 21). Optimiert werden die ersten beiden Eingaben mit Zahlen. - Für jede Eingabe schlägt das Terminal Von, Bis und Schritt rund um den aktuellen Wert vor. Du kannst sie ändern, Komma und Punkt gehen beide. Oben steht, wie viele Kombinationen das ergibt.
- Wähle unter Sortieren nach, was „am besten“ heißt: Netto, Profit-Faktor, Trefferquote oder Drawdown (der kleinste zuerst).
- Klicke auf Optimierung starten. Der Fortschritt läuft mit, etwa „Optimierung läuft … 120 / 400“.
Pro Eingabe sind bis zu 30 Werte möglich, insgesamt bis zu 400 Kombinationen. Richtung und Ausstieg gelten wie oben eingestellt.
Ergebnis lesen
- Heatmap (bei zwei Eingaben): Jede Zelle ist eine Kombination, Zeilen sind die zweite Eingabe, Spalten die erste. Türkis heißt Gewinn, Rot Verlust, je kräftiger, desto größer. Die beste Kombination ist umrandet. Fährst du über eine Zelle, siehst du Werte, Netto und Zahl der Trades.
- Rangliste: die besten acht Kombinationen mit Netto, Trades und Profit-Faktor (PF).
- Übernehmen schreibt die Werte einer Zeile als neue Standards in deine
input()-Aufrufe, etwa „Parameter übernommen: Schnell 12 · Langsam 30“.
Das funktioniert, wenn der Standard als Zahl direkt im Aufruf steht, wie in input('Schnell', 9). Änderst du danach den Code, die Richtung oder den Ausstieg, verschwindet das Ergebnis, weil es nicht mehr dazu passt. Kombinationen, bei denen das Script einen Fehler wirft, fehlen im Ergebnis.
Was der Backtest nicht abbildet
- Kein Slippage und kein Spread: Ausgeführt wird genau zum Schlusskurs bzw. auf der TP- oder SL-Marke.
- Keine Funding-Zahlungen, kein Hebel, keine Positionsgrößen, keine Teil-Ausführungen.
- Signale auf der laufenden Kerze können sich bis zum Kerzenschluss noch ändern.
delta,cvd,buyVolundsellVolkönnen im Backtest leicht von den Werten im Chart abweichen.- Ein gutes Ergebnis in der Vergangenheit ist keine Garantie für die Zukunft.