피벗 포인트 기반 거래량 가중 돌파/반전 전략

Pivot VOLUME SMA BREAKOUT Reversal STOP LOSS TAKE PROFIT
생성 날짜: 2025-04-24 17:08:39 마지막으로 수정됨: 2025-04-24 17:08:39
복사: 0 클릭수: 353
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

피벗 포인트 기반 거래량 가중 돌파/반전 전략 피벗 포인트 기반 거래량 가중 돌파/반전 전략

개요

이 전략은 지지/저항 ((S/R) 브레이크/반전, 거래량 필터링 및 경보 시스템을 결합하여 시장의 중요한 전환점을 잡기 위해 고안되었습니다. 이 전략은 가격의 브레이크 또는 반전 신호를 식별하여 거래 신호의 신뢰성을 높이기 위해 비정상적인 거래량 확인과 결합합니다.

전략 원칙

  1. 지원/저항 인식사용:ta.pivothigh()그리고ta.pivotlow()이 함수는 지정된 주기 ([[pivotLen]]) 내에 중요한 가격 수준을 식별한다. 가격이 저항 지점을 돌파했을 때 ([[1%) 상향 또는 지지 지점에서 반발했을 때 ([[하향 후 회수)) 신호를 유발한다.
  2. 수송량 필터: 계산된 거래량 SMA ((volSmaLength 주기), 현재 거래량이 SMA의 volMultiplier배를 초과했을 때 유효한 확인으로 간주된다.
  3. 다중 공간 논리
    • 다목적 조건가격 부진 (close > resZone)*1.01) 과 함께 높은 거래량, 또는 가격 가까이 지원 지역 ((± 1% 범위) 에 “거짓한 하락”이 발생 ((low ≤ supZone 하지만 종결 회수) 과 거래량이 증가.
    • 빈 머리 조건“가격이 지지권 아래로 떨어졌다”*0.99) 와 함께 높은 거래량, 또는 가격 저항 지역 근처 (± 1% 범위) 에 “거짓 돌파” (high ≥ resZone 하지만 상장 후퇴) 가 발생하고 거래량이 커진다.
  4. 위험 관리: 고정 2%의 중지 및 조정 가능한 (설정 3%) 통과strategy.exit()성취하다.

우위 분석

  1. 다중 인자 검증가격 구조 (S/R), 거래량 및 시장 동작 (fake breakout/fake breakdown) 을 결합하여, 가짜 신호의 확률을 현저하게 감소시킨다.
  2. 동적 적응: 자동으로 업데이트 지원/저항 지점, 시장 변화에 적응.
  3. 위험 통제: 고정된 스톱로스는 단일 거래의 과도한 손실을 방지하고, 스톱로스 비율은 다양한 변동성 시장에 적응할 수 있다.
  4. 시각화 강: 실시간으로 지지/저항선을 그리고, 거래 신호를 명확하게 표시한다.
  5. 알람 통합: 다양한 거래 시나리오에 적합한 연결 가능한 자동 거래 시스템.

위험 분석

  1. 위기에 처한 도시: 트렌드 없는 시장에서 빈번하게 가짜 브레이크를 유발하여 여러 번의 스톱을 초래한다. 해결 방법: ADX 또는 EMA와 같은 트렌드 필터 지표를 추가한다.
  2. 매개 변수 민감: pivotLen와 volMultiplier는 시장에 따라 조정해야 한다. ◎ 해결 방법: 파라미터 최적화와 워크-포워드 테스트를 수행한다.
  3. 미흡한 납품량: 비정상적인 거래량이 가격 변동 이후에 나타날 수 있다. 해결 방법: 코팅 데이터를 결합하거나 volSmaLength를 줄여라.
  4. 비행기의 위험성: 오픈 디스크 폭파는 스톱 로드를 뛰어넘을 수 있다. 해결 방법: 제한 가격 단위를 사용하거나 높은 변동 시간을 피한다.

최적화 방향

  1. 트렌드 필터: ADX>25 조건 또는 200 EMA 방향 필터링을 추가하여 역경 거래를 피하십시오.
  2. 동적 변수: 시장의 변동율에 따라 (ATR처럼) 자동으로 pivotLen과 volMultiplier를 조정한다.
  3. 순차적으로 멈춰: 두 배의 스톱을 설정 (예를 들어, 2% 평반도 상장, 잔여 추적 스톱 손실), 상자 손실 비율을 향상 .
  4. 기계 학습 최적화: 역사 데이터 트레이닝 모델을 사용하여 volMultiplier와tpPerc 파라미터를 최적화한다.
  5. 주기 간 검증: 더 높은 시간 프레임의 S/R 확인을 도입하여 신호 품질을 향상시킵니다.

요약하다

이 전략은 삼중 검증 (가격 위치, 거래량, 가격 행동) 을 통해 높은 확률 거래 프레임워크를 설계하여 트렌드 초기에 특히 적합합니다. 핵심 장점은 논리 투명성, 위험 제어 가능하지만, 불안정한 시장에서 한계를 주의하십시오. 미래 최적화는 변수 자조와 트렌드 필터링에 초점을 맞출 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-04-24 00:00:00
end: 2024-12-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("S/R Breakout/Reversal + Volume + Alerts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === INPUTS ===
pivotLen       = input.int(10, "Pivot Lookback for S/R")
volSmaLength   = input.int(20, "Volume SMA Length")
volMultiplier  = input.float(1.5, "Volume Multiplier")
tpPerc         = input.float(3.0, "Take Profit %", step=0.1)
slPerc         = 2.0  // Stop Loss fixed at 2%

// === S/R ZONES ===
pivotHigh = ta.pivothigh(high, pivotLen, pivotLen)
pivotLow  = ta.pivotlow(low, pivotLen, pivotLen)

var float resZone = na
var float supZone = na
if not na(pivotHigh)
    resZone := pivotHigh
if not na(pivotLow)
    supZone := pivotLow

plot(supZone, title="Support", color=color.green, linewidth=2, style=plot.style_linebr)
plot(resZone, title="Resistance", color=color.red,   linewidth=2, style=plot.style_linebr)

// === VOLUME FILTER ===
volSma     = ta.sma(volume, volSmaLength)
highVolume = volume > volSma * volMultiplier

// === LONG LOGIC ===
priceAboveRes     = close > resZone * 1.01
nearSupport       = close >= supZone * 0.99 and close <= supZone * 1.01
rejectSupport     = low <= supZone and close > supZone
longBreakoutCond  = priceAboveRes and highVolume
longReversalCond  = nearSupport and rejectSupport and highVolume
longCondition     = longBreakoutCond or longReversalCond

// === SHORT LOGIC ===
priceBelowSup     = close < supZone * 0.99
nearResistance    = close >= resZone * 0.99 and close <= resZone * 1.01
rejectResistance  = high >= resZone and close < resZone
shortBreakoutCond = priceBelowSup and highVolume
shortReversalCond = nearResistance and rejectResistance and highVolume
shortCondition    = shortBreakoutCond or shortReversalCond

// === ENTRIES WITH LABELS ===
if (longCondition)
    strategy.entry("Long", strategy.long)
    label.new(bar_index, low * 0.995, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    label.new(bar_index, high * 1.005, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white)

// === TP/SL ===
longTP  = close * (1 + tpPerc / 100)
longSL  = close * (1 - slPerc / 100)
shortTP = close * (1 - tpPerc / 100)
shortSL = close * (1 + slPerc / 100)

strategy.exit("Long TP/SL",  from_entry="Long",  limit=longTP,  stop=longSL)
strategy.exit("Short TP/SL", from_entry="Short", limit=shortTP, stop=shortSL)

// === ALERT CONDITIONS ===
alertcondition(longCondition,  title="Buy Alert",  message="🔔 BUY signal: S/R + Volume breakout/reversal")
alertcondition(shortCondition, title="Sell Alert", message="🔔 SELL signal: S/R + Volume breakout/reversal")