강화된 피보나치 추세 추종 및 위험 관리 전략

ATR SMA FIBO RM
생성 날짜: 2024-12-27 14:10:14 마지막으로 수정됨: 2024-12-27 14:10:14
복사: 4 클릭수: 386
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

강화된 피보나치 추세 추종 및 위험 관리 전략

개요

이 전략은 피포나치 리트랙, 트렌드 추적 및 위험 관리를 결합한 통합 거래 시스템입니다. 그것은 주로 0.65 피포나치 리트랙 수준을 핵심 가격 기준점으로 기반으로 하고 있으며, 이동 평균과 결합하여 시장 추세를 확인하며, ATR 기반의 동적 스톱 스톱 메커니즘을 통합합니다. 이 전략은 15 분 시간 주기에서 작동하며, 현재 시장 추세에 부합하는 높은 확률의 거래 기회를 잡기 위해 고안되었습니다.

전략 원칙

전략의 핵심 논리는 다음과 같은 핵심 구성 요소를 기반으로 합니다.

  1. 38주기의 역사적 데이터를 사용하여 최고점과 최저점을 계산하고, 이 범위를 기반으로 0.65 피보나치 회귀 수준을 결정한다.
  2. 181 주기의 간단한 이동 평균 ((SMA) 을 트렌드 필터로 사용하여 시장의 전반적인 방향을 결정합니다.
  3. 12주기의 평균 실제 진폭 ((ATR) 을 1.8의 계수로 사용하여 동적 스톱 및 스톱 레벨을 설정한다.
  4. 상승 추세에서, 가격이 아래에서 0.65 피포나치 수준을 돌파 할 때 다중 신호를 트리거; 하향 추세에서, 가격이 위에서 그 수준을 돌파 할 때 다리 신호를 트리거.

전략적 이점

  1. 여러 기술 분석 도구를 통합하여 더 신뢰할 수 있는 거래 신호를 제공합니다.
  2. 동적 스톱 스 레벨을 사용하여 시장의 변동성에 따라 리스크 관리 매개 변수를 조정할 수 있다.
  3. 트렌드 필터를 통해 거래 방향이 주 트렌드와 일치하도록 보장하여 거래 성공률을 높였습니다.
  4. 백분율 포지션 관리 방식을 채택하고, 기본으로 5%의 계정 권익을 사용하며, 위험을 효과적으로 제어한다.
  5. 전략 논리가 명확하고, 매개 변수가 조정 가능하며, 다양한 시장 환경에 적합하다.

전략적 위험

  1. 상자 시장에서 거래 비용을 증가시키는 빈번한 가짜 브레이크 신호가 발생할 수 있습니다.
  2. 181 주기의 이동 평균은 시장 변화에 느리게 반응하여 급격한 시장 전환에서 손실을 초래할 수 있습니다.
  3. 고정된 ATR 곱수는 다른 시장 변동 환경 하에서 일관되지 않을 수 있다.
  4. 이 전략은 정확한 최고 및 최저점 계산에 의존하며, 데이터 품질이 좋지 않은 경우 잘못된 판단이 발생할 수 있습니다.

전략 최적화 방향

  1. 거래량 지표가 추가 확인으로 도입되어, 브레이크 신호의 신뢰성을 높인다.
  2. 동적 ATR 곱하기 조정 메커니즘을 추가하는 것을 고려하여 현재 시장 환경에 더 적합하게 스톱 스톱을 만듭니다.
  3. 시장 변동율 필터를 추가하여 높은 변동율 동안 거래를 조정하거나 일시 중지 할 수 있습니다.
  4. 트렌드 판단 메커니즘을 최적화하기 위해, 다중 주기 이동 평균 조합을 사용하는 것을 고려할 수 있다.
  5. 거래 시간 필터를 추가하여 시장의 큰 변동성을 피할 수 있습니다.

요약하다

이것은 합리적으로 설계된 중기 트렌드 추적 전략으로, 피보나치 이론, 트렌드 추적 및 위험 관리를 결합하여 완전한 거래 시스템을 구축한다. 전략의 주요 특징은 시장 추세를 식별하는 것을 기반으로, 가격 돌파의 중요한 수준을 활용하여 거래 신호를 생성하고, 동적 인 스톱 스톱 메커니즘을 통해 위험을 관리한다. 일부 최적화가 필요한 곳이 있지만, 전체적으로 실용적인 가치가있는 전략 프레임 워크이다.

전략 소스 코드
/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-25 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Refined Fibonacci Strategy - Enhanced Risk Management", overlay=true)

// Input parameters
fibonacci_lookback = input.int(38, minval=2, title="Fibonacci Lookback Period")
atr_multiplier = input.float(1.8, title="ATR Multiplier for Stop Loss and Take Profit")
sma_length = input.int(181, title="SMA Length")

// Calculating Fibonacci levels
var float high_level = na
var float low_level = na
if (ta.change(ta.highest(high, fibonacci_lookback)))
    high_level := ta.highest(high, fibonacci_lookback)
if (ta.change(ta.lowest(low, fibonacci_lookback)))
    low_level := ta.lowest(low, fibonacci_lookback)

fib_level_0_65 = high_level - ((high_level - low_level) * 0.65)

// Trend Filter using SMA
sma = ta.sma(close, sma_length)
in_uptrend = close > sma
in_downtrend = close < sma

// ATR for Risk Management
atr = ta.atr(12)
long_stop_loss = close - (atr * atr_multiplier)
long_take_profit = close + (atr * atr_multiplier)
short_stop_loss = close + (atr * atr_multiplier)
short_take_profit = close - (atr * atr_multiplier)

// Entry Conditions
buy_signal = close > fib_level_0_65 and close[1] <= fib_level_0_65 and in_uptrend
sell_signal = close < fib_level_0_65 and close[1] >= fib_level_0_65 and in_downtrend

// Execute Trades
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Exit Conditions
if (strategy.position_size > 0)
    strategy.exit("Exit Long", "Buy", stop=long_stop_loss, limit=long_take_profit)
if (strategy.position_size < 0)
    strategy.exit("Exit Short", "Sell", stop=short_stop_loss, limit=short_take_profit)

// Plotting
plot(fib_level_0_65, color=color.blue, title="Fibonacci 0.65 Level")
plot(sma, color=color.orange, title="SMA")