Diese Strategie ist für einen Long-Position-Eintrag mit einem datenspezifischen Trigger und einem Trailing-Stop-Loss-Mechanismus für das Risikomanagement konzipiert. Sie ist besonders nützlich für Händler, die ihre Einträge basierend auf bestimmten Kalenderdaten automatisieren und ihre Positionen mit einer dynamischen Risikokontrollmethode wie einem Trailing-Stop-Loss verwalten möchten.
Die Strategie erfasst zunächst spezifische Eintrittstermine, einschließlich Monat und Tag, berechnet dann den genauen Eintrittszeitstempel auf der Grundlage dieser Termine.
Am Eingangstag wird eine Long-Position eröffnet. Gleichzeitig werden der höchste Preis (highestPrice) und der Stop-Loss-Preis (stopLoss) erfasst. Der höchste Preis aktualisiert sich im Laufe der Zeit, während der StopLoss ihn um einen bestimmten Prozentsatz nach unten verfolgt.
Wenn der Preis unter den StopLoss fällt, wird die Position geschlossen, andernfalls bleibt die Position offen und der StopLoss verfolgt den höchsten Preis, um Gewinne zu erzielen und das Risiko zu kontrollieren.
Die wichtigsten Vorteile dieser Strategie sind:
Es gibt auch einige Risiken:
Mögliche Verbesserungen:
Mögliche Optimierungsrichtungen:
Diese Strategie bietet einen automatisierten, datenbasierten Eintrag und ein dynamisches Risikomanagement über Trailing Stop Loss. Einfach und intuitiv zu bedienen, geeignet für langfristige Bestände. Weitere Optimierungen können es zu einer sehr praktischen Quant-Handelsstrategie machen.
/*backtest start: 2024-01-24 00:00:00 end: 2024-01-31 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Trailing Stop Loss Percent", overlay=true, pyramiding=1) // Input for the specific entry date entryDay = input.int(defval = 1, title = "Entry Day", minval = 1, maxval = 31) entryMonth = input.int(defval = 1, title = "Entry Month", minval = 1, maxval = 12) entryYear = input.int(defval = 2023, title = "Entry Year", minval = 1970) // Calculate the entry date timestamp entryDate = timestamp(entryYear, entryMonth, entryDay, 00, 00) // Trailing Stop Loss Percentage trailStopPercent = input.float(defval = 5.0, title = "Trailing Stop Loss (%)", minval = 0.1) // Entry Condition enterTrade = true // Variables to track the highest price and stop loss level since entry var float highestPrice = na var float stopLoss = na // Update the highest price and stop loss level if strategy.position_size > 0 highestPrice := math.max(highestPrice, high) stopLoss := highestPrice * (1 - trailStopPercent / 100) // Enter the strategy if enterTrade strategy.entry("Long Entry", strategy.long) highestPrice := high stopLoss := highestPrice * (1 - trailStopPercent / 100) // Exit the strategy if the stop loss is hit if strategy.position_size > 0 and low <= stopLoss strategy.close("Long Entry") // Plotting the stop loss level for reference plot(strategy.position_size > 0 ? stopLoss : na, "Trailing Stop Loss", color=color.red)