이 전략은 전날의 높은 점과 낮은 점에 기반한 범위 브레이크아웃 거래 전략이다. 전략은 전날의 높은 점 또는 낮은 점 이상에서 가격 브레이크아웃 또는 파장을 식별하여 거래 기회를 찾고, 브레이크아웃 또는 파기 방향으로 단 하나의 거래를 수행합니다. 전략은 고정된 50 포인트 수익 및 스톱 로스 설정을 고용하고 규칙적인 거래를 보장하기 위해 각 거래의 시작에서 무역 플래그를 재설정합니다. 이 전략의 핵심은 엄격한 거래 관리를 통해 위험을 제어하면서 하루 내에서 단일 방향 가격 브레이크아웃 움직임을 포착하는 것입니다.
이 전략의 핵심 논리는 다음과 같은 측면을 포함합니다.
이 전략은 일일 범위 브레이크아웃을 기반으로 한 고전적인 거래 시스템으로, 엄격한 무역 관리 및 위험 통제를 통해 단방향 시장 트렌드를 추적하는 데 적합합니다. 일부 고유한 위험이 있지만 합리적인 최적화 및 향상으로 전략의 안정성과 수익성이 향상 될 수 있습니다. 성공의 열쇠는 잘못된 브레이크아웃 위험을 적절히 처리하고 적절한 수익 및 스톱 로스 수준을 설정하고 다른 시장 조건에 대한 전략 적응력을 유지하는 데 있습니다.
/*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")