5분 오픈 돌파 ATR 동적 손절매 및 손절매 양적 거래 전략

BREAKOUT ATR NYSE
생성 날짜: 2025-02-20 15:47:35 마지막으로 수정됨: 2025-02-27 17:33:35
복사: 0 클릭수: 519
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

5분 오픈 돌파 ATR 동적 손절매 및 손절매 양적 거래 전략 5분 오픈 돌파 ATR 동적 손절매 및 손절매 양적 거래 전략

개요

이 전략은 5분 오픈 브레이크를 기반으로 한 양적 거래 시스템으로 ATR 지표와 결합하여 동적 스톱 스톱 손실 관리를 수행합니다. 전략은 주로 오픈 후 첫 번째 5분 K 선의 높은 낮은 점을 중요한 가격 범위로 식별하여 가격이 이 범위를 돌파 할 때 거래 신호를 유발하고 ATR 기반의 동적 스톱 손실을 사용하여 위험을 제어합니다.

전략 원칙

전략의 핵심 논리에는 다음과 같은 주요 단계가 포함됩니다.

  1. 거래시간의 시작점을 결정하기 (예: 뉴욕 증권거래소 (NYSE) 의 9:30 개시)
  2. 개시 후 첫 5 분 K 라인을 캡처하고 개시 가격, 최고 가격 및 최저 가격을 기록합니다.
  3. 가격이 첫 번째 K선 고점을 돌파할 때, 더 많은 신호를 트리거; 낮은 점을 돌파할 때, 빈 신호를 트리거
  4. 14주기 ATR 지표를 사용하여 동적 스톱피스를 설정하기 위해 변동률을 계산합니다.
  5. 1:1.5의 리스크 수익률을 사용하여 1배의 ATR의 스톱 스톱 거리와 1.5배의 브레이크 간격의 스톱 스톱 거리를 가진 스톱 스톱 스톱 세팅

전략적 이점

  1. 시간 프레임 정밀성: 오픈 후 가장 활발한 5 분 거래 시간에 집중하여 시장의 초기 변동을 포착합니다.
  2. 리스크 관리를 개선: ATR을 통해 역동적으로 스톱 포지션을 조정하여 시장의 변동성에 적응하십시오.
  3. 실행 표준화: 명확한 브레이크 신호와 고정된 리스크 수익률을 사용하여 주관적인 판단을 줄이십시오.
  4. 자기 적응력: ATR 지표는 시장의 변동에 따라 자동으로 중지 범위를 조정합니다.
  5. 운영이 간단하고 직관적입니다. 전략 논리가 명확하고 실제 실행과 피드백 검증이 용이합니다.

전략적 위험

  1. 가짜 돌파 위험: 오픈 시간 변동으로 인해 가짜 돌파 신호가 발생할 수 있다.
  2. 슬라이드 포인트 영향: 높은 변동 기간 동안의 주문 실행은 더 큰 슬라이드 포인트에 직면 할 수 있습니다.
  3. ATR 파라미터 민감: 14 주기 설정은 모든 시장 환경에 적합하지 않을 수 있습니다.
  4. 고정 인수 제한:1:1.5의 리스크 수익 비율은 품종 특성에 따라 조정할 필요가 있다
  5. 거래 비용 고려: 자주 거래하는 것은 높은 거래 비용을 초래할 수 있습니다.

전략 최적화 방향

  1. 신호 필터링: 교류량 확인 또는 운동량 지표를 도입하여 가짜 돌파를 줄인다.
  2. 변수 적응: ATR 주기의 동적 조정 메커니즘을 개발
  3. 시간 필터링: 특정 시간대에 거래 제한을 추가하고, 비효율적인 시간을 피합니다.
  4. 스톱로스 최적화: 시장 미시 구조에 기반한 스톱로스 방법을 연구
  5. 종목별 최적화: 서로 다른 거래 종목의 특성에 따라 리스크/이익 비율을 조정

요약하다

이 전략의 핵심 장점은 간단하고 효과적인 설계 개념이지만, 다양한 시장 환경과 거래 유형에 대한 지속적인 최적화가 필요합니다. 거래자는 실제 사용 전에 충분한 피드백 검증을 수행하고 실제 상황에 따라 매개 변수 설정을 조정하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2025-02-13 00:00:00
end: 2025-02-19 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("5-Min Open Candle Breakout", overlay=true)

// Get the current bar's year, month, and day
currentYear = year
currentMonth = month
currentDay = dayofmonth

// Define session start time (adjust based on market)
sessionStart = timestamp(currentYear, currentMonth, currentDay, 9, 30) // 9:30 AM for NYSE

// Identify the first 5-minute candle
isFirstCandle = (time >= sessionStart and time < sessionStart + 300000)  // 5 min = 300,000 ms

var float openPrice = na
var float highPrice = na
var float lowPrice = na

if isFirstCandle
    openPrice := open
    highPrice := high
    lowPrice := low

// Breakout Conditions
longEntry = ta.crossover(close, highPrice)
shortEntry = ta.crossunder(close, lowPrice)

// Define Stop Loss & Take Profit (Ratio 1:1.5)
slFactor = 1.0  // Stop Loss Multiplier
tpFactor = 1.5  // Take Profit Multiplier

atrValue = ta.atr(14)  // Fix: Use ta.atr() instead of atr()

longSL = lowPrice - atrValue * slFactor
longTP = highPrice + (highPrice - lowPrice) * tpFactor

shortSL = highPrice + atrValue * slFactor
shortTP = lowPrice - (highPrice - lowPrice) * tpFactor

// Execute Trades
strategy.entry("Long", strategy.long, when=longEntry)
strategy.exit("Exit Long", from_entry="Long", stop=longSL, limit=longTP)

strategy.entry("Short", strategy.short, when=shortEntry)
strategy.exit("Exit Short", from_entry="Short", stop=shortSL, limit=shortTP)

// Plot High/Low of First Candle
plot(highPrice, title="First 5m High", color=color.green, linewidth=2)
plot(lowPrice, title="First 5m Low", color=color.red, linewidth=2)