다중 주문 돌파 추세 추종 전략

ATR BB EMA SAR
생성 날짜: 2024-07-30 17:18:11 마지막으로 수정됨: 2024-07-30 17:18:11
복사: 0 클릭수: 619
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 주문 돌파 추세 추종 전략

개요

다중 주문 돌파 트렌드 추적 전략은 기술 분석 지표에 기반한 정량 거래 전략으로 시장의 흐름을 포착하고 유리한 시기에 여러 번 입장을 취한다. 이 전략은 브린 밴드, 평균 실제 범위 ((ATR), 패러폴리 라인 전환 지표 ((SAR) 및 지수 이동 평균 ((EMA) 등 여러 지표를 결합하여 여러 조건을 선별하여 입점과 퇴출 시간을 결정한다. 기회 전략의 핵심 아이디어는 브린 밴드를 돌파하고 다른 조건을 충족하면 더 많은 위치를 열고, 동시에 역동적인 포지션 관리와 고정 손실 비율을 사용하여 위험을 통제한다.

전략 원칙

  1. 입장 조건:

    • 가격 돌파구 브린 랩
    • SAR보다 높은 가격
    • EMA보다 높은 가격
    • ATR은 100주기 간단한 이동 평균보다 높습니다.
    • 현재 개설된 포지션은 최대 허용 포지션보다 작습니다.
  2. 출전 조건:

    • 부린 반도에서 하락
    • 가격 하락 SAR
  3. 포지션 관리:

    • 다이내믹 포지션 계산을 사용하여, 계정 이자, 거래당 위험 비율 및 중지 비율을 기반으로
    • 최대 포지션 제한을 설정합니다.
  4. 위험 관리:

    • 각 주문에 대한 고정 비율 정지
    • ATR 지표를 사용하여 낮은 변동률 상황을 필터링하십시오.
  5. 지표의 적용:

    • 브린 띠: 가격 돌파구와 회귀를 판단하는 도구
    • SAR: 트렌드 방향과 출전 시기를 판단하는 보조
    • EMA: 중·장기 추세를 확인하는 데 쓰인다.
    • ATR: 시장의 변동성을 판단하고 낮은 변동성을 필터링하는 방법

전략적 이점

  1. 다중 확인 메커니즘: 여러 기술 지표를 결합하여 입력 신호의 신뢰성을 높이고, 가짜 침입으로 인한 위험을 줄인다.

  2. 동적 위치 관리: 계정 권리 이익, 위험 견인 능력 및 시장 변동성에 따라 위치 크기를 조정하여 위험을 효과적으로 제어 할 수 있으며 유리한 상황에서 더 큰 수익을 얻을 수 있습니다.

  3. 트렌드 추적과 위험 제어 균형을 맞추는 방법: 전략은 트렌드 추적과 동시에 스톱 로즈와 최대 보유 금액을 설정하여 위험을 제어하여 수익과 위험을 균형을 맞추는 방법을 사용한다.

  4. 적응력: 변수 설계로 전략은 다양한 시장 환경과 거래자의 위험 선호도에 따라 유연하게 조정할 수 있습니다.

  5. 변동성 필터: ATR 지표를 사용하여 낮은 변동성 상황을 필터링하여 시장의 명확한 방향이없는 상황에서 자주 거래하는 것을 피하는 데 도움이됩니다.

  6. 다중 입점 기회: 강한 추세에서 더 많은 수익을 얻기 위해 같은 추세에서 여러 번 입장을 허용합니다.

전략적 위험

  1. 과도한 거래 위험: 불안한 시장에서, 과도한 거래와 거래 비용을 증가시키는 잘못된 브레이크 신호가 자주 발생할 수 있습니다.

  2. 슬라이드 포인트 및 유동성 위험: 빠른 시점에 심각한 슬라이드 포인트 또는 유동성 부족 문제가 발생할 수 있으며, 이는 전략 실행의 효과에 영향을 미칩니다.

  3. 트렌드 역전 위험: 스톱로스가 설정되어 있지만, 급격한 트렌드 역전에서 큰 손실이 발생할 수 있습니다.

  4. 매개 변수 민감성: 전략의 성능은 매개 변수 설정에 민감할 수 있으며, 다른 시장 환경에서 매개 변수를 자주 조정해야 할 수 있다.

  5. 체계적 위험: 동시에 여러 개의 연관성이 높은 포지션을 보유하면 시장이 급격하게 변동할 때 체계적 위험에 노출 될 수 있습니다.

  6. 철수 위험: 장기적인 수평 또는 불안정한 시장에서 철수 위험은 더 커질 수 있다.

전략 최적화 방향

  1. 시장 체제 인식 도입: 시장 상태 인식 모듈을 개발하여 다양한 시장 환경에 따라 전략 매개 변수를 동적으로 조정하거나 거래 모드를 전환합니다.

  2. 출구 메커니즘을 최적화하십시오. 수익을 더 잘 고정하고 시장의 변동에 적응하기 위해 트레일링 스톱 또는 ATR 기반의 동적 스톱을 도입하는 것을 고려하십시오.

  3. 거래 시간 필터를 늘리십시오: 다른 기간의 시장 특성을 분석하여 비효율적인 거래 시간을 피하고 전략의 전반적인 효율성을 향상시킵니다.

  4. 반동 트렌드 조작에 참여: 주요 트렌드 전략에 기초하여, 단기 반동에 대한把握을 증가시키며, 예를 들어, 부린 강하 궤도에 닿을 때 반동 거래를 고려한다.

  5. 포지션 관리를 최적화한다: 트렌드 강도에 따라 포지션을 동적으로 조정하는 것을 고려하고, 더 강한 트렌드에서 포지션을 증가시키고, 약한 경우 포지션을 감소시킨다.

  6. 기본 요소를 도입: 기본 지표와 결합하여 (경제 데이터 발표, 주요 이벤트 등) 거래 신호를 필터링하거나 강화합니다.

  7. 다주기 분석: 다주기 분석을 도입하여 더 큰 시간 프레임에서도 트렌드 방향에 부합하는 것을 보장합니다.

  8. 연관성 관리: 위험 분산을 위해 다른 거래 품종 간의 연관성을 모니터링하고 관리하는 모듈을 개발합니다.

  9. 기계 학습 최적화: 기계 학습 알고리즘을 사용하여 매개 변수 선택 및 신호 생성 프로세스를 최적화하여 전략의 적응성과 성능을 향상시킵니다.

요약하다

다중 주문 돌파 트렌드 추적 전략은 엄격한 입시 조건과 위험 관리 조치를 통해 시장 추세를 포착하고 위험을 통제하기 위해 여러 기술적 지표가 결합된 정량 거래 시스템입니다. 이 전략의 핵심 장점은 다중 확인 메커니즘, 동적 포지션 관리 및 시장 변동에 대한 적응성입니다. 그러나 과다 거래, 파라미터 민감성 및 시스템 위험과 같은 과제에 직면합니다.

시장 체제 식별, 출구 메커니즘 개선, 거래 시간 필터링을 추가하는 것과 같은 방법을 추가하여 전략의 안정성과 수익성을 향상시킬 수 있습니다. 또한 기본 요소를 추가하고 기계 학습 기술을 활용하면 전략이 다른 시장 환경에 더 잘 적응 할 수 있습니다.

전체적으로, 이 전략은 트렌드 추적 거래에 좋은 출발점을 제공하며, 지속적인 모니터링, 재검토 및 최적화를 통해, 신뢰할 수 있는 양적 거래 전략이 될 잠재력을 가지고 있다. 그러나, 투자자는 이 전략을 사용할 때 자신의 위험 감수성을 신중하게 평가하고 실제 거래 전에 충분한 시뮬레이션 테스트를 수행해야합니다.

전략 소스 코드
/*backtest
start: 2024-06-29 00:00:00
end: 2024-07-29 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Multi-Order Breakout Strategy", overlay=true)

// Parameters
risk_per_trade = input.float(1.0, "Risk Per Trade")
lookback = input(20, "Lookback Period")
breakout_mult = input.float(2.0, "Breakout Multiplier")
stop_loss_percent = input.float(2.0, "Stop Loss Percentage")
max_positions = input(5, "Maximum Open Positions")
atr_period = input(14, "ATR Period")
ma_len = input(100, "MA Length")

// Calculate Bollinger Bands and other indicators
[middle, upper, lower] = ta.bb(close, lookback, breakout_mult)
atr = ta.atr(atr_period)
sar = ta.sar(0.02, 0.02, 0.2)

ma = ta.ema(close, ma_len)
plot(ma, color=color.white)

// Entry conditions
long_condition = close > upper and close > sar and close > ma

// Exit conditions
exit_condition = ta.crossunder(close, middle) or ta.crossunder(close, sar)

// Count open positions
var open_positions = 0

// Dynamic position sizing
position_size = (strategy.equity * risk_per_trade/100) / (close * stop_loss_percent / 100)


// Strategy execution
if (long_condition and open_positions < max_positions and atr > ta.sma(atr, 100) and position_size > 0)
    strategy.entry("Long " + str.tostring(open_positions + 1), strategy.long, qty=position_size)
    open_positions := open_positions + 1

// Apply fixed stop loss to each position
for i = 1 to max_positions
    strategy.exit("SL " + str.tostring(i), "Long " + str.tostring(i), stop=strategy.position_avg_price * (1 - stop_loss_percent/100))

// Close all positions on exit condition
if (exit_condition and open_positions > 0)
    strategy.close_all()
    open_positions := 0

// Plot
plot(upper, "Upper BB", color.blue)
plot(lower, "Lower BB", color.blue)
plot(middle, "Middle BB", color.orange)
plot(sar, "SAR", color.purple, style=plot.style_cross)