Die Hauptidee dieser Strategie besteht darin, Zeit und ATR-Indikator zu kombinieren, um einen automatisierten Stop-Loss und Take-Profit zu erzielen. Die Strategie eröffnet Positionen zu festen Zeitpunkten für den Kauf oder Verkauf und verwendet den ATR-Indikator, um angemessene Stop-Loss- und Take-Profit-Preise zu berechnen. Dies ermöglicht einen effizienten automatisierten Handel, reduziert die Häufigkeit von manuellen Operationen und kontrolliert die Risiken effektiv durch den ATR-Indikator.
Diese Strategie verwendet die Stunden- und Minutenvariablen in Kombination mit "if"-Bedingungen, um die Eröffnung von Positionen zu dem im Parameter "tradeTime"-Strategie angegebenen Zeitpunkt auszulösen.
Nach Eröffnung von Positionen wird die Strategie die Funktion ta.atr() verwenden, um den ATR-Indikatorwert in den letzten 5 Minuten zu berechnen und dies als Grundlage für Stop-Loss und Take-Profit zu verwenden.
Dies ermöglicht eine automatisierte Öffnung basierend auf Zeitpunkten und einen Stop-Loss und Take-Profit basierend auf dem ATR-Indikator, wodurch die Häufigkeit manueller Operationen reduziert und die Risiken effektiv kontrolliert werden.
Diese Strategie hat folgende Vorteile:
Hohe Automatisierungsgrad, die Position ohne Aufsicht zu der angegebenen Zeit eröffnen kann, was die Häufigkeit manueller Operationen erheblich reduziert.
Der ATR-Indikator kann die Marktvolatilität dynamisch erfassen, um eine angemessene Stop-Loss-Distanz festzulegen.
Starke Skalierbarkeit. Es ist einfach, mehr Indikatoren oder Machine-Learning-Algorithmen zu kombinieren, um Entscheidungen zu unterstützen. Zum Beispiel kombinieren gleitende Durchschnitte, um Trends zu bestimmen.
Einfache Implementierung von Inter-Commodity-Arbitrage. Einfach die gleiche Handelszeit für verschiedene Produkte festlegen, um Spread-Handelsstrategien einfach zu implementieren.
Einfach in automatisierte Handelssysteme zu integrieren. Kombiniert mit geplanten Aufgabenmanagement kann das Strategieprogramm 24 Stunden unbeaufsichtigt laufen, um eine vollständige Automatisierung zu erreichen.
Diese Strategie birgt auch einige Risiken:
Marktereignisrisiko: Große schwarze Schwanereignisse können extreme Kursschwankungen verursachen, die Stops und größere Verluste auslösen.
Liquiditätsrisiko: Einige Produkte weisen eine geringe Liquidität auf und können nicht vollständig am Limit Take Profit Point geschlossen werden.
ATR-Parameter müssen wiederholt getestet und optimiert werden, und falsche Einstellungen beeinträchtigen die Strategieleistung.
Zeitpunktoptimierungsrisiko. Festgefasste Öffnungszeiten können Marktchancen verpassen, müssen anhand mehrerer Indikatoren angepasst werden.
Diese Strategie kann in folgenden Dimensionen weiter optimiert werden:
Kombinieren Sie mehr Indikatoren, um die Marktbedingungen zu beurteilen, vermeiden Sie das Öffnen in ungünstigen Umgebungen.
Verwenden Sie maschinelle Lernalgorithmen, um optimale Zeitpunkte vorherzusagen. Sammeln Sie mehr historische Daten, verwenden Sie LSTM-Modelle usw.
Erweitern Sie den Handel mit Waren mit Plattformen wie Heartbeat.
Optimierung der ATR-Parameter und Stop-Loss/Take-Profit-Einstellungen durch mehr Backtesting.
Laufen Sie die Strategie auf einem Server aus, integrieren Sie zeitgesteuerte Aufgaben, erreichen Sie einen vollautomatisierten 24-Stunden-Trading.
Diese Strategie integriert Timing und ATR, um einen effizienten automatisierten Stop-Loss und Take-Profit-Handel zu erzielen. Durch Parameteroptimierung kann ein stabiles Alpha erzielt werden.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Time-based Strategy with ATR Take Profit Sell", overlay=true) // Initialize take profit levels var float takeProfitLevel = na var float takeProfitLevelForSell = na var float buyprice = na var float sellprice = na // Input for the time when the trade should be executed tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings") // Calculate ATR for the last 5 minutes atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings") atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength)) // Define conditions for buy and sell buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0 sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0 // Execute Buy and Sell orders // if (buyCondition) // strategy.entry("Buy", strategy.long) // buyprice := close // takeProfitLevel := buyprice + atrValue // strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel) if (sellCondition) strategy.entry("Sell", strategy.short) sellprice := close takeProfitLevelForSell := sellprice -atrValue strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell) // Plot horizontal lines for take profit levels plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)") plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")