Anpassbare Startzeitstrategie für Backtest

Schriftsteller:ChaoZhang, Datum: 2023-09-26 20.53:15
Tags:

Übersicht

Ziel dieser Strategie ist es, den Nutzern die Möglichkeit zu geben, den Startzeitpunkt des Backtesting für ein flexibleres und individuellere Backtesting anzupassen.

Strategie Logik

Diese Strategie verwendet die Zeit- und Zeitstempelfunktionen von Pine Script, um eine anpassbare Startzeit für Backtests zu implementieren.

Es ermöglicht den Benutzern zunächst, ein benutzerdefiniertes Backtest-Startjahr, Monat, Datum, Stunde und Minute in die Einstellungen einzugeben.

Die Strategie wird nur dann gestartet, wenn die aktuelle Zeit größer oder gleich der Startzeit ist.

Zum Beispiel:

longCondition = crossover(sma(close, 14), sma(close, 28))

if (longCondition and startTime)

  strategy.entry("My Long Entry Id", strategy.long) 

Dies ermöglicht die Implementierung einer anpassbaren Backtest-Startzeit. Benutzer können die Startzeit des Backtestings flexibel konfigurieren, anstatt auf fest codierte Zeiten beschränkt zu sein.

Analyse der Vorteile

Diese anpassbare Strategie für die Startzeit von Backtests hat folgende Vorteile:

  1. Flexibler: Benutzer können die Startzeit des Backtests vollständig anpassen, anstatt sich auf einen festen Zeitpunkt zu beschränken.

  2. Realistischer: Die Startzeit kann auf die tatsächliche Laufzeit der Strategie eingestellt werden, wodurch der Backtest realistischer wird.

  3. Bequem für Event-gesteuertes Backtesting: Die Startzeit kann basierend auf der Auftretungszeit eines Ereignisses für das Backtesting bestimmter Ereignisse festgelegt werden.

  4. Einfache Anpassung der Bedingungen: Die Startbedingungen für die Rückprüfung können leicht für eine gezielte Rückprüfung verschiedener Stufen angepasst werden.

  5. Wiederholbarkeit und Zuverlässigkeit: Die Parametrierung der Startzeit des Backtests ermöglicht wiederholbare und zuverlässige Rücktestergebnisse.

Risikoanalyse

Die Verwendung einer anpassbaren Startzeit für Backtests birgt ebenfalls einige Risiken:

  1. Die Ergebnisse hängen von der Startzeit ab: Unterschiedliche Startzeiten können zu sehr unterschiedlichen Rückprüfungsergebnissen führen.

  2. Startzeit erfordert eine sorgfältige Auswahl: Unvernünftige Startzeiten können zu Verzerrungen bei den Rückprüfungsergebnissen führen.

  3. Erhöhtes Risiko für Kurvenanpassung: Leicht überanpasst durch Anpassung der Startzeit an historische Daten.

  4. Verringerte Vergleichbarkeit: Die Ergebnisse dieser Strategie sind weniger vergleichbar mit den Rücktests mit fester Startzeit.

Lösungen:

  1. Mehrfacher Backtest zur Bewertung der Auswirkungen von Änderungen der Startzeit auf die Ergebnisse.

  2. Wählen Sie als Startzeit die Zeit des signifikanten Ereignisses, um Verzerrungen zu minimieren.

  3. Die Startzeiten müssen sorgfältig angepasst werden, um zu vermeiden, dass die historischen Daten überlappen.

  4. Beibehalten Sie feste Startzeit-Backtests als Benchmark für den Vergleich mit individuell angepassten Backtests.

Optimierungsrichtlinien

Diese anpassbare Strategie für die Startzeit von Backtests kann auch in folgenden Aspekten verbessert werden:

  1. Unterstützung der Anpassung von Start- und Endzeiten für eine vollständige flexible Konfiguration des Backtestzeitfensters.

  2. Unterstützung mehrerer Zeitmodi: spezifische Daten, relative Daten, ereignisgesteuerte Daten usw. für eine intelligentere und bequemere Zeitkonfiguration.

  3. Unterstützung einer grafischen Konfigurationsoberfläche für eine intuitivere Einstellung der Zeitparameter.

  4. Unterstützung der Konfiguration verschiedener Zeitgranularitäten: Jahr, Monat, Tag, Stunde, Minute, Sekunde usw.

  5. Aufzeichnung der Backtestzeitkonfiguration für reproduzierbare, nachvollziehbare und vergleichbare Ergebnisse.

  6. Hinzufügen von Validierung von falschen Zeitkonfigurationen, um Backtests mit geringer Qualität aufgrund unangemessener Zeit Einstellungen zu vermeiden.

  7. Bereitstellung von Startzeitbindungen zur einfachen Synchronisierung von Startzeiten in mehreren Strategien.

Zusammenfassung

Diese Strategie ermöglicht eine anpassbare und flexible Konfiguration von Backtest-Startzeiten, um Einschränkungen zu reduzieren und Backtests realistischer zu gestalten. Die Abhängigkeit der Ergebnisse von Startzeiten muss jedoch bei der Verwendung mehrerer Backtests, ereignisgesteuerter Modelle usw. beachtet werden, um die Verzerrung zu reduzieren. Diese Strategie hat auch viele Verbesserungsrichtungen, um in Zukunft eine intelligentere und bequemere Backtest-Zeitkonfiguration zu erreichen.


/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("C320up Strategy Tester Start Time", overlay = true)
// Copy and paste below into your strategy
// Strategy Tester Start Time
xYear = input(2018, title = "Start Year")
xMonth = input(01, title = "Start Month", minval = 01, maxval = 12)
xDay = input(01, title = "Start Day", minval = 01, maxval = 31)
xHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
xMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = time >= timestamp(xYear, xMonth, xDay, xHour, xMinute)
// End copy and paste
// Add (and startTime) at the end of your condition/s to activate

// The strategy below is just an example
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and startTime)
    strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition and startTime)
    strategy.entry("My Short Entry Id", strategy.short)
// Happy trading!


Mehr