Die Bedeutung und Bedeutung von Backtesting ist unbestreitbar. Beim quantitativen Backtesting sollte die Strategie in die historische Umgebung so real und nah wie möglich gestellt werden. Wenn einige Details in der historischen Umgebung ignoriert werden, kann das gesamte quantitative Backtesting ungültig sein. Dieser Artikel wird erklären, wie man das entsprechende quantitative Trading-Backtesting durchführt.
Backtesting ist gleichbedeutend mit Datenwiedergabe. Durch das Wiedergeben historischer K-Linie-Daten und die Ausführung von Handelsregeln auf dem realen Markt, wie z. B. Sharpe-Verhältnis, maximale Retracement-Rate, jährliche Rendite und Kapitalkurven, gibt es derzeit viele Software, die all dies tun können, wie z. B.
Die FMZ Quant als kommerzielle quantitative Handelssoftware, kommt mit der Hochleistungs-Backtest-Engine, mit For-Loop (Polling) Backtest-Rahmen, um die Berechnung schneller zu quantifizieren.
Wir nehmen zum Beispiel die Zeitstrategie FMZ Quant
In der Backtest-Konfigurationsoberfläche können Sie es an Ihre tatsächlichen Bedürfnisse anpassen. Zum Beispiel: Backtest-Zeitraum, K-Linienzyklus, Datentyp (Simulations-Niveau-Daten oder reale Markt-Niveau-Daten). Im Gegensatz dazu ist die Simulations-Niveau-Daten-Backtesting-Geschwindigkeit schneller, die reale Markt-Niveau-Daten-Backtesting ist genauer). Darüber hinaus können Sie auch die Provisionsgebühr für den Backtest und die anfänglichen Mittel des Kontos festlegen.
Klicken Sie auf die
Es wird immer eine Abweichung zwischen dem tatsächlichen Handelspreis und dem geplanten Handelspreis geben. Dieser Offset bewegt sich im Allgemeinen in eine Richtung, die für den Händler nicht günstig ist, was zu zusätzlichen Verlusten im Handel führt. Daher ist es notwendig, eine Verschiebung hinzuzufügen, um das reale Handelsumfeld zu simulieren.
Füllen Sie den
Spot-Handel Option ist in erster Linie für den Handel mit Kryptowährung, wenn Backtesting, halten Sie es in den Standard-Einstellungen in Ordnung sein wird. Wenn Sie möchten, können Sie alle Parameter in diesen Einstellungen angeben. Darüber hinaus, für einige Kryptowährungsbörsen, können Sie auch Hebelwirkung Größen und andere verwandte Einstellungen festlegen.
Vor dem Backtesting, bestimmen Sie Ihre Handelsstrategie. Hier nehmen wir die
// Calculate CMI indicator to distinguish between Oscillating and trend market
CMI:=ABS(C-REF(C,29))/(HHV(H,30)-LLV(L,30))*100;
// Define key prices
KOD:=(H+L+C)/3;
// In the Oscillating market, the closing price is greater than the key price is suitable for selling market, otherwise it is for buying market
BE:=IFELSE(C>KOD,1,0);
SE:=IFELSE(C<=KOD,1,0);
// Define 10-day ATR indicator
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR10:=MA(TR,10);
// Define the highest and lowest price 3-day moving average
AVG3HI:=MA(H,3);
AVG3LO:=MA(L,3);
// Calculate the entry price of the Oscillating market
LEP:=IFELSE(C>KOD,O+ATR10*0.5,O+ATR10*0.75);
SEP:=IFELSE(C>KOD,O-ATR10*0.75,O-ATR10*0.5);
LEP1:=MAX(LEP,AVG3LO);
SEP1:=MIN(SEP,AVG3HI);
// Calculate the entry price of the trend market
UPBAND:=MA(C,50)+STD(C,50)*2;
DNBAND:=MA(C,50)-STD(C,50)*2;
// Calculate the quit price of the trend market
MA50:=MA(C,50);
// Oscillating strategy logic
CMI<20&&C>=LEP1,BK;
CMI<20&&C<=SEP1,SK;
CMI<20&&C>=AVG3HI,SP;
CMI<20&&C<=AVG3LO,BP;
// Trend strategy logic
CMI>=20&&C>=UPBAND,BK;
CMI>=20&&C<=DNBAND,SK;
CMI>=20&&C<=MA50,SP;
CMI>=20&&C>=MA50,BP;
AUTOFILTER;
In der Simulations-Backtesting-Schnittstelle klicken Sie nach Konfiguration der Backtest-Einstellungen auf die Schaltfläche Start Backtest, und die Backtest-Ergebnisse werden sofort nach wenigen Sekunden angezeigt. Im Backtest-Log wird angezeigt, wie viele Sekunden für den Backtest, die Protokolle und die Gesamtzahl der Transaktionen verwendet wurden. Die Kontoinformationen drucken die endgültigen Ergebnisse des Strategie-Backtests aus: durchschnittlicher Gewinn und Verlust, Positionsgewinn und Verlust, Marge, Provisionsgebühren und geschätzte Renditen.
Die Statusleiste erfasst die Handelsvielfalt, Positionen, Positionspreise, den neuesten Preis, die vorherigen Handelssignaltypen, den höchsten und niedrigsten Kurs der Positionen, die Anzahl der Aktualisierungen sowie Kapital- und Zeitinformationen.
Unter ihnen ist der wichtigste Leistungsindikator: Sharpe-Ratio. Es war bei der Umsetzung eines umfassenden Index berücksichtigen Sie die Vorteile und Risiken, und es ist ein wichtiger Index, um ein Fonds Produkte zu messen. Im Allgemeinen ist es, wie viel Risiko Sie tragen, jedes Mal, wenn Sie Gewinn machen, so ist der Sharpe-Ratio Wert höher, desto besser.
Die jährliche Volatilität, einfach ausgedrückt, annalisiert eine Zahl geht davon aus, dass Beobachtungen über einen kurzen Zeitrahmen im Laufe eines Jahres fortgesetzt werden. Es ist ein Maß für das Risiko des Fonds, aber es ist definitiv nicht das volle Risiko. Zum Beispiel hat Strategie A eine größere Volatilität, aber es war Volatilität nach oben, der Gewinn ist gut; Strategie B hat eine geringe Volatilität, aber es hat sich stetig bewegt ((kaum nicht bewegt). Können wir sagen, dass Strategie B besser ist als Strategie A? Strategie A wie unten gezeigt:
Schließlich ist in den Protokollinformationen eine detaillierte Aufzeichnung jeder Handelsvermittlungssituation beim Backtesting zu finden, einschließlich der spezifischen Zeit des Handels, der Börseninformationen, der Art der offenen und geschlossenen Positionen, des Mechanismus für die Übereinstimmung von Auftragsmechanismen mit dem Backtest-Motor sowie der Anzahl der Transaktionen und der ausgedruckten Informationen.
Die Ergebnisse von Backtesting sind oft und in den meisten Fällen weit entfernt von den Erwartungen. Schließlich ist eine langfristige, stabile und profitable Strategie nicht so einfach zu bekommen, was Ihre Fähigkeit erfordert, den Markt zu verstehen.
Wenn Ihre Strategie-Backtest-Ergebnisse Geld verlieren, lassen Sie sich nicht entmutigen. Dies ist eigentlich ganz normal. Überprüfen Sie, ob die Strategie-Logik vom Code falsch interpretiert wurde, ob es einige extreme Parameter verwendet, ob es zu viele Eröffnungspositionsbedingungen verwendet usw. Es ist auch notwendig, die Handelsstrategien und Handelsideen aus einem anderen Blickwinkel zu überprüfen.
Wenn Ihre Strategie-Backtest-Ergebnisse sehr gut sind, ist die Finanzierungskurve perfekt, mit einem Sharpe-Verhältnis von mehr als 1. Bitte haben Sie keine Eile. In diesem Fall verwenden die meisten Situationen die zukünftigen Funktionen, stehlen Preise, übermäßige Anpassung oder keine Schlupfpreise hinzugefügt, usw. Sie können die Daten außerhalb der Stichprobe und den Simulations-Echtmarkthandel verwenden, um diese Probleme auszuschließen.
Das oben genannte ist der gesamte Prozess des Trading-Strategie-Backtestings, man kann sagen, dass er auf jedes Detail spezifisch ausgerichtet war. Es sollte beachtet werden, dass das historische Daten-Backtesting ein ideales Umfeld ist, in dem alle Risiken bekannt sind. Daher ist es am besten, für die Backtestzeit der Strategie einen Runde des Bullen- und Bärenmarktes zu durchlaufen. Die effektive Anzahl der Trades sollte nicht weniger als 100 Mal betragen, um einige Überlebende-Vorurteile zu vermeiden.
Der Markt befindet sich immer im Prozess des Wandels und der Entwicklung. Die historische Backtesting-Strategie bedeutet nicht, dass die Zukunft die gleiche sein wird. Es geht nicht nur darum, die Strategie mit den bekannten möglichen Risiken im Backtesting-Umfeld umzugehen, sondern auch mit den unbekannten Risiken in der Zukunft umzugehen. Daher ist es sehr notwendig, die Risikobereitschaft und Universalität der Strategie zu erhöhen.
Versuchen Sie, die Strategie in diesem Abschnitt zu kopieren und zu testen.
Versuchen Sie, die Strategie in diesem Abschnitt auf der Grundlage Ihrer Handelserfahrung zu verbessern und zu optimieren.