피보나치 수정에 기반한 적응형 추세 추종 전략

FIBONACCI FIB MA TA
생성 날짜: 2024-07-31 14:14:04 마지막으로 수정됨: 2024-07-31 14:14:04
복사: 7 클릭수: 741
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

피보나치 수정에 기반한 적응형 추세 추종 전략

개요

이 전략은 피보나치 회귀 원칙에 기반한 트렌드 추적 거래 시스템이다. 그것은 피보나치 수준을 사용하여 시장의 추세와 잠재적인 반전점을 결정하고, 이러한 수준에 따라 거래를 실행한다. 전략의 핵심은 가격과 중요한 피보나치 수준의 교차점을 식별하는 데 있다.

전략 원칙

  1. 피포의 계절별 계산: 이 전략은 우선 지난 20개의 도표의 최고 가격과 최저 가격을 기반으로 피보나치 회귀 수준을 계산한다. 61.8%와 38.2%의 두 가지 핵심 수준에 초점을 맞추고 있다.

  2. 거래 신호 생성:

    • 가격 상승이 61.8%의 수준을 넘으면 더 많은 신호가 발생한다.
    • 가격이 38.2%의 하향 경계를 통과하면 하위 신호가 발생한다.
  3. 포지션 관리: 전략은 신호가 나타나면 바로 해당하는 다중 머리 또는 공허 머리 입구를 한다.

  4. 정지 손해 설정:

    • 다중 거래: 정지점 = 입장료 + target_points 스톱로스 = 입시 가격 - stop_loss_points
    • 공허 거래: 정지점 = 입점 가격 - target_points Stop Loss = 입시 가격 + stop_loss_points
  5. 시각화: 이 전략은 61.8%와 38.2%의 피보나치 레벨을 차트에 그려서 거래자가 직관적으로 관찰할 수 있도록 해준다.

전략적 이점

  1. 적응력: 동적으로 피보나치 레벨을 계산함으로써, 전략은 다양한 시장 환경과 변동성에 적응할 수 있다.

  2. 트렌드 추적과 반전: 이 전략은 트렌드의 지속을 포착하고 (6.1.8%의 수준을 돌파하는 것) 잠재적인 반동에 주의를 기울이며 (3.8.2%의 수준을 넘어가는 것) 거래의 포괄성을 높였다.

  3. 위험관리: 내장된 다이내믹 스티프/스트로드 메커니즘으로, 거래의 위험 노출을 효과적으로 제어한다.

  4. 플렉시블 변수: 사용자들에게 다양한 거래 스타일과 시장 특성에 맞게 역사 의 수, 목표 포인트, 그리고 스톱포인트의 수를 사용자 정의할 수 있게 해줍니다.

  5. 시각화 지원: 피보나치 레벨의 그래픽 상영은 거래자가 시장 구조와 잠재적인 지지 저항점을 직관적으로 이해하는데 도움이 됩니다.

전략적 위험

  1. 가짜 해킹 위험: 가로 시장에서, 가격은 종종 피보나치 수준을 넘어서서 여러번의 잘못된 신호를 유발할 수 있다.

  2. 슬라이드 포인트 영향: 급격한 변동이 있는 시장에서 실제 거래 가격은 신호 가격과 큰 편차가 있을 수 있다.

  3. 고정 정지 손실의 한계: 고정된 점수를 사용하는 스톱 스톱 손실은 모든 시장 환경에 적합하지 않을 수 있으며, 특히 변동성이 크게 변할 때 그렇습니다.

  4. 과도한 거래 위험: 일부 시장 조건에서, 전략은 거래 신호를 과다하게 만들어 거래 비용을 증가시킬 수 있습니다.

  5. 단일 시간 프레임의 한계: 단일 시간 프레임에만 의존하는 신호는 더 큰 주기 시장의 추세를 무시할 수 있습니다.

전략 최적화 방향

  1. 트렌드 필터를 소개합니다. 더 긴 기간의 이동 평균 또는 ADX 지표와 결합하여 주 트렌드 방향으로 거래하는 것을 보장합니다.

  2. 동적 정지 손실: ATR (평균 실제 파도) 에 따라 동적으로 정지 손실 수준을 조정하여 시장의 다양한 변동성에 맞게 조정합니다.

  3. 다중 시간 프레임 분석: 더 높은 시간 프레임의 피보나치 레벨을 통합하여 거래 결정의 신뢰성을 향상시킵니다.

  4. 트랜스포메이션을 추가하기 위한 확인: 신호를 생성할 때 거래량 요소를 고려하여 저품질의 돌파구를 필터링한다.

  5. 최적화 매개변수 선택: 회귀 데이터와 기계 학습 알고리즘을 사용하여 다양한 시장 환경에 대한 최적의 변수 조합을 찾습니다.

  6. 다른 기술적인 지표들을 소개합니다. RSI 또는 MACD와 같은 지표와 결합하여 거래 신호의 확인 메커니즘을 추가합니다.

  7. 경기장 출입시간 변경: 더 나은 거래 가격을 얻기 위해 단순한 시장 가격보다 피보나치 수준에 가까운 제한 가격을 설정하는 것을 고려하십시오.

요약하다

피보나치 회전을 기반으로 한 적응 트렌드 추적 전략은 고전적인 기술적 분석 원칙과 현대적인 양적 거래 기술을 결합한 거래 시스템입니다. 동적으로 중요한 가격 수준을 식별하여 추세 연장과 잠재적인 반전 사이의 균형을 찾아 거래자에게 유연하고 체계화된 거래 방법을 제공합니다.

이 전략의 핵심 장점은 다양한 시장 환경에서 비교적 안정적인 성능을 유지할 수 있는 자율성과 위험 관리 능력에 있습니다. 그러나 거래자는이 전략을 사용할 때 가짜 돌파구, 과도한 거래와 같은 잠재적인 위험에 주의를 기울이고 추가 필터링 장치와 다차원 분석을 도입하여 전략의 안정성을 더욱 강화하는 것을 고려해야합니다.

지속적인 최적화와 개선으로, 동적 스톱 스톱, 다중 시간 프레임 분석 등의 방법을 도입함으로써, 이 전략은 더 포괄적이고 효율적인 거래 시스템으로 발전할 잠재력을 가지고 있다. 결국, 거래자는 자신의 위험 선호와 시장 통찰력에 따라 전략에 대한 개인 맞춤 조정을 통해 최적의 거래 효과를 달성해야 한다.

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

//@version=5
strategy("Fibonacci Retracement Strategy", overlay=true)

// Input parameters
fib_levels = input.bool(true, title="Show Fibonacci Levels")
n = input.int(20, title="Number of Historical Candles")

target_points = input.int(100, title="Target Points")
stop_loss_points = input.int(50, title="Stop Loss Points")

// Calculate Fibonacci levels
high_price = ta.highest(close, 20)
low_price = ta.lowest(close, 20)
range_ = high_price - low_price
fib618 = high_price - range_ * 0.618
fib382 = high_price - range_ * 0.382

// Strategy logic
long_condition = ta.crossover(close, fib618)
short_condition = ta.crossunder(close, fib382)

// Plot Fibonacci levels
plot(fib_levels ? fib618 : na , "61.8%", color=color.blue, trackprice=true)
plot(fib_levels ? fib382 : na , "38.2%", color=color.red, trackprice=true)

// Strategy entry and exit
if long_condition
    strategy.entry("Long", strategy.long)
if short_condition
    strategy.entry("Short", strategy.short)

// Calculate target and stop loss levels
long_target = strategy.position_avg_price + target_points
long_stop_loss = strategy.position_avg_price - stop_loss_points
short_target = strategy.position_avg_price - target_points
short_stop_loss = strategy.position_avg_price + stop_loss_points

// Strategy exit
strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss)
strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)