Dies ist eine Range-Breakout-Handelsstrategie, die auf den Höhen und Tiefen des vorherigen Tages basiert. Die Strategie sucht Handelsmöglichkeiten, indem Preisbreaks oder -Ausbrüche jenseits der Höhen oder Tiefen des vorherigen Tages identifiziert werden, wobei nur ein Handel pro Breakout- oder Breakout-Richtung ausgeführt wird. Die Strategie verwendet feste 50-Punkte-Take-Profit- und Stop-Loss-Einstellungen und setzt Handelsflaggen zu Beginn jedes Handelstages zurück, um einen geordneten Handel zu gewährleisten. Der Kern dieser Strategie besteht darin, einseitige Preisbreakoff-Bewegungen innerhalb des Tages zu erfassen und gleichzeitig das Risiko durch strenges Handelsmanagement zu kontrollieren.
Die Kernlogik der Strategie umfasst folgende Aspekte:
Diese Strategie ist ein klassisches Handelssystem, das auf täglichen Breakouts basiert und geeignet ist, um einseitige Markttrends durch strenges Handelsmanagement und Risikokontrolle zu verfolgen. Während es einige inhärente Risiken gibt, können die Stabilität und Rentabilität der Strategie durch angemessene Optimierung und Verbesserung verbessert werden. Der Schlüssel zum Erfolg liegt im richtigen Umgang mit falschen Breakout-Risiken, der Festlegung angemessener Gewinn- und Stop-Loss-Level und der Aufrechterhaltung der Anpassungsfähigkeit der Strategie unter verschiedenen Marktbedingungen.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("US 30 Daily Breakout Strategy (Single Trade Per Breakout/Breakdown, New York Time)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, trim_orders = true) // Set pip size for US 30 (1 pip = 1 point) var float pip = 1.0 // Set take profit and stop loss in points (1 pip = 1 point) take_profit_pips = 50 stop_loss_pips = 50 // Calculate the previous day's high and low (assumes chart timezone is set to New York) prevDayHigh = request.security(syminfo.tickerid, "D", high[1]) prevDayLow = request.security(syminfo.tickerid, "D", low[1]) // Initialize flags to track if a breakout/breakdown trade has been taken var bool breakout_traded = false var bool breakdown_traded = false // Reset flags at the start of a new day in New York timezone (as per chart setting) if (ta.change(time("D"))) breakout_traded := false breakdown_traded := false // Condition for a long entry: candle closes above the previous day's high and no breakout trade has been taken longCondition = close > prevDayHigh and strategy.opentrades == 0 and not breakout_traded // Condition for a short entry: candle closes below the previous day's low and no breakdown trade has been taken shortCondition = close < prevDayLow and strategy.opentrades == 0 and not breakdown_traded // Execute long trade if the condition is met, and set the breakout flag if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", limit=close + take_profit_pips * pip, stop=close - stop_loss_pips * pip) breakout_traded := true // Set breakout flag // Execute short trade if the condition is met, and set the breakdown flag if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit/Stop Loss", "Short", limit=close - take_profit_pips * pip, stop=close + stop_loss_pips * pip) breakdown_traded := true // Set breakdown flag // Plotting the previous day's high and low for visualization plot(prevDayHigh, color=color.green, linewidth=1, title="Previous Day High") plot(prevDayLow, color=color.red, linewidth=1, title="Previous Day Low")