
Die Hauptidee dieser Strategie ist die Kombination von Zeit und ATR-Indikatoren, um eine automatisierte Stop-Loss-Stop zu erreichen. Die Strategie eröffnet Positionen zu einem festen Zeitpunkt zu kaufen oder zu verkaufen und berechnet einen angemessenen Stop-Loss-Preis in Kombination mit ATR-Indikatoren. Auf diese Weise können effiziente automatisierte Geschäfte realisiert werden, die Häufigkeit von manuellen Operationen reduziert wird, während das Risiko durch ATR-Indikatoren effektiv kontrolliert werden kann.
Diese Strategie verwendet die hour und minute Variablen in Kombination mit den if-Bedingungen, um die Positionseröffnung zu einem Zeitpunkt auszulösen, der von der Strategieparameter tradeTime angegeben ist. Zum Beispiel, wenn sie auf 0700 gesetzt wird, bedeutet dies, dass die gesamte Position um 7 Uhr morgens in Peking ausgelöst wird.
Nach der Eröffnung der Position berechnet die Strategie mit der Funktion ta.atr () den ATR-Wert innerhalb der letzten 5 Minuten und dient als Grundlage für den Stop-Loss. Zum Beispiel nach dem Kauf ist der Stop-Preis = Kaufpreis + ATR-Wert; nach dem Verkauf ist der Stop-Preis = Verkaufspreis - ATR-Wert.
Dies ermöglicht eine zeitbasierte automatische Positionseröffnung und eine Stop-Loss-Sperre basierend auf den ATR-Indikatoren. Dies reduziert die Häufigkeit von manuellen Operationen und kontrolliert gleichzeitig das Risiko.
Diese Strategie hat folgende Vorteile:
Hohe Automatisierungsstufe. Unbemannte Automatisierungen können zu bestimmten Zeiten durchgeführt werden, wodurch die Häufigkeit von manuellen Operationen erheblich reduziert wird.
Die Stop-Loss-Schwelle basiert auf dem ATR-Indikator, der den Einzelschaden wirksam kontrolliert. Der ATR-Indikator kann dynamisch die Schwankungen des Marktes erfassen und so eine angemessene Stop-Loss-Distanz festlegen.
Erweiterbarkeit: Es kann leicht mit mehr Indikatoren oder maschinellen Lernalgorithmen kombiniert werden, um die Entscheidungsfindung zu unterstützen.
Es ist einfach, mehrere Sorten zu arbitragieren. Es ist einfach, eine Arbitrage-Strategie zu implementieren, die einen offenen Vertrag eröffnet, indem man die gleichen Handelszeiten für verschiedene Sorten einrichtet.
Einfache Integration in automatisierte Handelssysteme. In Kombination mit der zeitlichen Aufgabenverwaltung kann der 24-Stunden-Strategieprogramm unbemannt ausgeführt werden, um vollständig automatisierte Geschäfte zu realisieren.
Die Strategie birgt auch Risiken:
Risiken von Marktausbrüchen. Große Schwarze Schwimmereignisse können zu extremen Preisschwankungen führen, die einen Stop-Loss auslösen und zu größeren Verlusten führen.
Liquiditätsrisiken der Marke. Einige Sorten sind schwach liquide und können nicht vollständig am Limit-Stopp-Punkt gehandelt werden.
ATR-Parameter Optimierungsrisiken. ATR-Parameter müssen wiederholt getestet werden. Wenn sie zu groß oder zu klein gesetzt werden, beeinträchtigt dies die Effektivität der Strategie.
Zeitpunkt-Optimierung des Risikos. Ein fester Zeitpunkt für die Eröffnung einer Position kann eine Marktchance verpassen und erfordert eine Anpassung der Zeitpunkte in Verbindung mit weiteren Indikatoren.
Diese Strategie kann in folgenden Dimensionen weiter optimiert werden:
Vermeiden Sie, Positionen in einem ungünstigen Marktumfeld zu eröffnen, indem Sie mehr Indikatoren verwenden, um den Markt zu beurteilen.
Mit Hilfe von Machine Learning-Algorithmen kann der optimale Zeitpunkt für die Eröffnung der Lagerbestände vorhergesagt werden. Weitere historische Daten können gesammelt und mit LSTM und anderen Modellen trainiert werden.
Nutzung von Plattformen wie Heartbeat, um Arbitrage für mehrere Arten zu erweitern.
Optimierung der ATR-Parameter und der Einstellungen für die Stop-Loss. Die optimalen Parameter können durch mehr Wiederholungs-Retest gefunden werden.
Die Strategie läuft auf dem Server, integriert zeitgesteuerte Aufgaben, vollständig automatisierte Betrieb 7x24 Stunden.
Diese Strategie integriert die Zeitpunkte und ATR-Indikatoren, um einen effizienten automatisierten Stop-Loss-Stopp-Handel zu ermöglichen. Durch die Optimierung der Parameter kann ein stabiler Alpha erzielt werden. Sie ist auch sehr skalierbar und integrierbar und ist eine der empfohlenen Quantifizierungsstrategien.
/*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)")