모멘텀 임계값 주도 균형 파워 트레이딩 전략

BOP TA MA RSI THRESHOLD momentum LEVERAGE EQUITY
생성 날짜: 2025-02-24 09:35:40 마지막으로 수정됨: 2025-02-27 16:50:22
복사: 1 클릭수: 368
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

모멘텀 임계값 주도 균형 파워 트레이딩 전략 모멘텀 임계값 주도 균형 파워 트레이딩 전략

개요

이 전략은 동력 기반의 거래 시스템으로, 주로 균형 힘 ((Balance of Power) 지표를 사용하여 4 시간 시간 주기에서 거래한다. 구매자와 판매자의 힘 대립을 측정하여 지표가 미리 설정된 경계를 돌파 할 때 거래 신호를 유발한다. 전략에는 동적 위치 관리, 조정 가능한 레버리지 및 시각적 거래 추적 등의 기능이 포함되어 있으며, 시장 추세 전환점을 효과적으로 포착 할 수 있습니다.

전략 원칙

전략의 핵심은 ((폐쇄 가격-폐쇄 가격) / ((최고 가격-최저 가격) 을 계산하여 시장의 매매 힘의 균형을 측정하는 것이다. 이 값이 1에 가까워지면 강렬한 낙점 동력을 나타내고, 1에 가까워지면 강렬한 낙점 압력을 나타낸다. 구체적인 거래 논리는 다음과 같다:

  • 입점 조건: 0.8의 균형 힘 지표에 입는 것은 구매자의 힘이 강하다는 것을 나타냅니다.
  • 평형 상태: 평형 힘 지표 아래에서 -0.8을 통과하면, 판매자의 압력이 커지고 평형 상태에서 출장
  • 포지션 관리: 계정 이해관계 기반의 동적 조정 및 레버리지 배수를 설정할 수 있습니다.

전략적 이점

  1. 신호 명확성: 고정 값 트리거를 사용, 빈번한 거래를 피하고, 높은 확신도 신호에 집중
  2. 위험 제어: 동적인 위치와 조정 가능한 레버리지를 통해 유연한 위험 관리
  3. 시각화: 전략적 추적 및 최적화를 위한 거래 마크와 역사 기록을 제공합니다
  4. 적응력: 변동성이 높은 시장 환경에 적합하며, 동향 전환을 신속하게 파악할 수 있습니다.

전략적 위험

  1. 미끄러지 위험: 급격한 변동이 있을 때 더 큰 미끄러짐이 발생할 수 있습니다.
  2. 가짜 침입 위험: 가짜 침입 신호로 인해 손실이 발생할 수 있습니다.
  3. 추세 의존성: 불안정한 시장에서 부진할 수 있다
  4. 리베이트 위험: 너무 높은 리베이트가 심각한 손실을 초래할 수 있습니다.

전략 최적화 방향

  1. 트렌드 필터 도입: 다른 기술 지표와 결합하여 큰 트렌드 방향을 판단합니다.
  2. 최적화 값 설정: 다른 시장 환경의 동력에 따라 값을 조정
  3. 손해제도 개선: 손해제도 추적과 같은 위험 관리 수단의 증강
  4. 시간 필터: 중요한 경제 데이터 발표와 같은 시간 요소를 고려합니다.

요약하다

이 전략은 균형 힘 지표를 통해 시장 동력의 변화를 포착하고, 동적인 포지션 관리 및 위험 통제와 결합하여, 비교적 완전한 거래 시스템을 구축한다. 약간의 위험이 있지만, 지속적인 최적화와 개선을 통해 전략의 안정성과 수익성을 더욱 향상시킬 수 있다. 동력 거래에 관심이 있는 거래자의 사용과 연구에 적합하다.

전략 소스 코드
/*backtest
start: 2024-02-25 00:00:00
end: 2025-02-22 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy(title="Balance of Power for US30 4H", format=format.price, precision=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=true, commission_value=0.01, max_labels_count=500, max_lines_count = 500)

leverage = input.float(5, "Leverage 1:", tooltip="Multiply your equity (100%) times the leverage.")

p = (close - open) / (high - low)
qty = strategy.equity * leverage / close

if ta.crossover(p, 0.8)
    strategy.entry("L", strategy.long, qty=qty)

if ta.crossunder(p, -0.8)
    strategy.close("L")

green   = color.new(#0097a7, 0)
red     = color.new(#ff195f, 0)
green90 = color.new(#0097a7, 85)
red90   = color.new(#ff195f, 85)

if strategy.position_size > strategy.position_size[1]
    label.new(bar_index, low * 0.999, text="▲", textcolor=green, size=size.normal, textalign=text.align_center, color=green90, style=label.style_text_outline)
    label.new(bar_index, low * 0.999, text="Buy", textcolor=green, size=size.tiny, textalign=text.align_center, color=green90, style=label.style_label_up)

if strategy.position_size < strategy.position_size[1]
    label.new(bar_index, high * 1.001, text="▼", textcolor=red, size=size.normal, textalign=text.align_center, color=red90, style=label.style_text_outline)
    label.new(bar_index, high * 1.001, text="Close", textcolor=red, size=size.tiny, textalign=text.align_center, color=red90, style=label.style_label_down)


var float tradeEntryPrice = na
var int   tradeEntryBar   = na

if strategy.position_size > 0 and strategy.position_size[1] == 0
    tradeEntryPrice := close
    tradeEntryBar   := bar_index


if strategy.position_size == 0 and strategy.position_size[1] > 0
    exitPrice = close
    exitBar   = bar_index
    tradeColor = (exitPrice - tradeEntryPrice > 0) ? green : red

    topPrice    = math.max(tradeEntryPrice, exitPrice)
    bottomPrice = math.min(tradeEntryPrice, exitPrice)

    box.new(tradeEntryBar, topPrice, exitBar, bottomPrice, border_width=0, bgcolor=color.new(tradeColor, 85))
    line.new(tradeEntryBar, topPrice, exitBar, topPrice, color=tradeColor, width=1)
    line.new(tradeEntryBar, bottomPrice, exitBar, bottomPrice, color=tradeColor, width=1)