この戦略は,前日の高値と低値に基づいたレンジブレイクトレード戦略である.この戦略は,前日の高値や低値を超えて価格ブレイクや破綻を特定し,ブレイクまたは破綻方向ごとに1取引のみを実行することによって,取引機会を探します.この戦略は,固定50ポイントの利益とストップロスの設定を採用し,規則的な取引を確保するために,各取引日の初めにトレードフラグをリセットします.この戦略の核心は,厳格な取引管理を通じてリスクを制御しながら,一方向の価格ブレイク動きを1日以内に捕捉することです.
戦略の基本論理には以下の側面が含まれます.
この戦略は,日々のレンジブレイクに基づいたクラシックな取引システムであり,厳格な取引管理とリスク管理を通じて単方向市場動向を追跡するのに適しています.固有のリスクがある一方で,合理的な最適化と強化によって戦略の安定性と収益性が向上できます.成功の鍵は,偽ブレイクリスクを適切に処理し,適切な利益とストップ損失レベルを設定し,さまざまな市場条件に適応性を維持することです.
/*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")