리소스 로딩... 로딩...

일일 범위 파업 단방향 거래 전략

저자:차오장, 날짜: 2024-12-11 15:23:37
태그:OHLCADXATRMARSIBB

img

전반적인 설명

이 전략은 전날의 높은 점과 낮은 점에 기반한 범위 브레이크아웃 거래 전략이다. 전략은 전날의 높은 점 또는 낮은 점 이상에서 가격 브레이크아웃 또는 파장을 식별하여 거래 기회를 찾고, 브레이크아웃 또는 파기 방향으로 단 하나의 거래를 수행합니다. 전략은 고정된 50 포인트 수익 및 스톱 로스 설정을 고용하고 규칙적인 거래를 보장하기 위해 각 거래의 시작에서 무역 플래그를 재설정합니다. 이 전략의 핵심은 엄격한 거래 관리를 통해 위험을 제어하면서 하루 내에서 단일 방향 가격 브레이크아웃 움직임을 포착하는 것입니다.

전략 원칙

이 전략의 핵심 논리는 다음과 같은 측면을 포함합니다.

  1. 거래 신호 생성: 시스템은 현재 폐쇄 가격이 전날의 최고 또는 낮은 수준을 넘을 수 있는지 확인함으로써 거래 방향을 결정합니다. 가격이 전날의 최고보다 높을 때 시스템은 긴 신호를 생성합니다. 가격이 전날의 최저보다 낮을 때 시스템은 짧은 신호를 생성합니다.
  2. 거래 주파수 제어: 전략은 플래그를 사용하여 하루에 한 방향으로 한 거래만 보장합니다.이 디자인은 동일한 가격 영역에서 반복 거래를 방지하고 거래 비용을 줄입니다.
  3. 리스크 관리: 각 거래는 고정된 50 포인트 취득 및 스톱 로스를 가지고 있으며, 단일 거래 위험을 효과적으로 제어하는 대칭 리스크 관리를 제공합니다.
  4. 매일 재설정 메커니즘: 시스템은 새로운 거래 기회를 준비하기 위해 각 거래 하루의 시작에서 무역 플래그를 재설정합니다. 이 메커니즘은 전략이 새로운 거래 기회를 포착 할 수 있도록합니다.

전략적 장점

  1. 명확한 거래 논리: 전략은 이해하기 쉽고 실행하기 쉬운 명확한 거래 규칙과 간단한 가격 브레이크 아웃 이론에 기반합니다.
  2. 엄격한 리스크 제어: 고정된 수익점 및 스톱-러스 포인트 및 단방향 거래 제한을 통해 각 거래에 대한 위험을 효과적으로 제어합니다.
  3. 오버 트레이딩을 방지합니다. 하루에 한 가지 거래만 허용하면 불안한 시장에서 빈번한 거래로 인한 손실을 피할 수 있습니다.
  4. 높은 자동화: 전략은 인간의 개입없이 완전히 자동화 될 수 있습니다.
  5. 높은 적응력: 전략은 다른 시장 환경에 적용 될 수 있으며 트렌드 시장에서 특히 잘 수행됩니다.

위험 분석

  1. 가짜 브레이크업 위험: 시장은 거래 손실로 이어지는 거짓 브레이크업을 보일 수 있습니다. 다른 기술 지표로 확인하는 것을 고려하십시오.
  2. 혼란 시장 위험: 시장의 빈번한 파업 및 붕괴는 연속적인 정지로 이어질 수 있습니다. 필터링 조건을 추가하여 개선 할 수 있습니다.
  3. 고정 스톱 로스 위험: 고정 스톱 로스 포인트는 모든 시장 조건에 적합하지 않을 수 있으며 매우 변동적인 시장에서 너무 일찍 작동 할 수 있습니다.
  4. 미끄러짐 위험: 극심한 시장 변동성 동안, 실제 스톱 로스 포인트는 미끄러짐으로 인해 예상 수준에서 벗어날 수 있습니다.

최적화 방향

  1. 동적 스톱 로스 설정: 시장 변동성 (예를 들어, ATR 지표) 에 따라 수익점 및 스톱 로스 포인트를 동적으로 조정합니다.
  2. 트렌드 필터 추가: 트렌드 표시기 (동도 평균 또는 ADX와 같은) 를 포함하여 거래 신호를 필터링합니다.
  3. 브레이크아웃 확인을 최적화: 브레이크아웃 신뢰성을 높이기 위해 볼륨 확인 또는 다른 기술적 지표를 추가합니다.
  4. 시간 필터링: 매우 변동적인 기간 동안 거래를 피하기 위해 시간 필터링 조건을 추가합니다.
  5. 포지션 관리 최적화: 시장 변동성 및 계정 리스크 용량에 따라 포지션 크기를 동적으로 조정합니다.

결론

이 전략은 일일 범위 브레이크아웃을 기반으로 한 고전적인 거래 시스템으로, 엄격한 무역 관리 및 위험 통제를 통해 단방향 시장 트렌드를 추적하는 데 적합합니다. 일부 고유한 위험이 있지만 합리적인 최적화 및 향상으로 전략의 안정성과 수익성이 향상 될 수 있습니다. 성공의 열쇠는 잘못된 브레이크아웃 위험을 적절히 처리하고 적절한 수익 및 스톱 로스 수준을 설정하고 다른 시장 조건에 대한 전략 적응력을 유지하는 데 있습니다.


/*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")


관련

더 많은