리소스 로딩... 로딩...

다이내믹 피보나치 리트랙먼트 거래 전략

저자:차오장, 날짜: 2024-06-17 17:02:30
태그:SMAEMAMA

img

전반적인 설명

피보나치 리트레이싱과 이동 평균에 기반을 둔 전략은 시장 트렌드 내에서 리트레이싱 기회를 포착하는 것을 목표로 한다. 이는 다양한 기간 동안 가장 높은 최고와 가장 낮은 최저를 계산하여 피보나치 리트레이싱 수준을 결정하고 트렌드 방향을 확인하기 위해 이동 평균을 사용한다. 이 전략은 가격이 장기 및 중장기 이동 평균보다 높을 때만 긴 포지션을 입력하고 가격이 키 피보나치 수준으로 리트레이싱될 때 거래를 고려한다.

전략 원칙

이 전략의 핵심 원칙은 잠재적인 입점 지점을 식별하기 위해 피보나치 리트레이싱 레벨과 이동 평균을 활용하는 것입니다. 먼저, 장기 (200 기간) 및 중기 (50 기간) 간단한 이동 평균 (SMA) 은 전체 트렌드 방향을 결정하기 위해 계산됩니다. 다음으로, 21 기간, 50 기간 및 9 기간의 가장 높은 최고와 최저가 계산되며, 해당 피보나치 리트레이싱 레벨은 이러한 가격에 따라 계산됩니다. 50% 리트레이싱 레벨은 이러한 세 기간에 대한 리트레이싱의 중간 지점의 평균을 계산하여 결정됩니다. 78.6% 리트레이싱 레벨은 이러한 기간의 평균 최고와 평균 최저 사이의 차이를 기반으로 계산됩니다.

전략은 다음 모든 조건이 충족될 때만 긴 포지션을 입력합니다. 가격은 200주기 및 50주기 이동 평균보다 높고 가격은 50% 리트레이션 수준보다 작거나 같습니다. 일단 입력되면, 수익을 얻는 수준은 평균 엔트리 가격과 78.6% 리트레이션 수준과 리스크/어워드 비율 사이의 차이의 곱으로 정의됩니다. 스톱 로스 레벨은 78.6% 리트레이션 수준으로 정의됩니다. 가격이 수익을 얻는 수준 또는 스톱 로스 수준에 도달하면 전략은 긴 포지션을 종료합니다.

전략적 장점

  1. 트렌드 확인: 전략은 장기 및 중장기 이동 평균을 사용하여 전반적인 트렌드 방향을 확인하여 트렌드 반대 시장에서 거래를 피하는 데 도움이됩니다.

  2. 동적 리트랙시 레벨: 다른 기간 (21-페리오드, 50-페리오드, 9페리오드) 에서 가장 높은 최고와 가장 낮은 최저를 계산함으로써 전략은 다른 시장 조건에 적응하기 위해 주요 피보나치 리트랙시 레벨을 동적으로 조정할 수 있습니다.

  3. 리스크 관리: 전략은 미리 정의된 리스크/이익 비율을 사용하여 수익을 취하고 손실을 멈추는 수준을 결정하여 거래 위험을 관리하고 잠재적 수익을 최적화하는 데 도움이됩니다.

  4. 시각적 지원: 전략은 그래프에 이동 평균과 주요 피보나치 리트레이싱 레벨을 그래프로 표시하여 거래자가 정보화된 거래 결정을 내리는 데 명확한 시각적 참조를 제공합니다.

전략 위험

  1. 지연된 진입: 빠르게 변화하는 시장 조건에서 가격이 키 피보나치 수준으로 다시 오기를 기다리는 것은 최적의 진입 기회를 놓칠 수 있습니다.

  2. 잘못된 신호: 어떤 경우에는 가격이 피보나치 레벨을 잠시 넘어서고 빠르게 회복하여 잘못된 거래 신호가 발생할 수 있습니다.

  3. 트렌드 역전: 트렌드 시장에서 전략이 가장 잘 작동합니다. 트렌드가 역전되면 전략은 손실을 입을 수 있습니다.

  4. 매개 변수 민감성: 전략의 성능은 이동 평균의 길과 피보나치 리트레이싱 기간과 같은 선택된 매개 변수에 크게 의존합니다. 부적절한 매개 변수 선택은 최적 이하의 결과를 초래할 수 있습니다.

전략 최적화 방향

  1. 동적 매개 변수 최적화: 변화하는 시장 조건에 적응하기 위해 이동 평균의 길과 피보나치 리트랙시 기간과 같은 전략 매개 변수를 동적으로 조정하는 적응 메커니즘을 구현합니다.

  2. 다중 시간 프레임 분석: 더 포괄적인 시장 관점을 얻고 거래 신호를 확인하기 위해 여러 시간 프레임 분석을 통합합니다.

  3. 강화된 위험 관리: 자본을 더 잘 보호하고 거래 위험을 관리하기 위해 변동성 기반 포지션 사이즈 또는 트래일링 스톱 손실과 같은 더 고급 위험 관리 기술을 도입하십시오.

  4. 지표 조합: 상대적 강도 지표 또는 스토카스틱 오시레이터와 같은 다른 기술적 지표를 기존 이동 평균 및 피보나치 리트레이싱 수준과 결합하여 거래 신호의 정확성과 신뢰성을 향상시킵니다.

요약

다이내믹 피보나치 리트랙먼트 트레이딩 전략 (Dynamic Fibonacci Retracement Trading Strategy) 은 트렌딩 시장의 잠재적 진입 기회를 파악하기 위해 피보나치 리트랙먼트 레벨과 이동 평균을 활용하는 기술적 분석 기반의 접근법이다. 다이내믹 리트랙먼트 레벨을 동적으로 계산하고 트렌드 방향을 확인함으로써 전략은 트레이더에게 위험을 관리하고 수익을 최적화하는 구조화된 방법을 제공합니다. 전략은 장점이 있지만 특정 위험과 한계도 있습니다. 전략 매개 변수를 최적화하고 위험 관리를 강화하고 추가적인 기술적 지표를 통합함으로써 전략의 성능과 탄력성을 더욱 향상시킬 수 있습니다. 전반적으로, 다이내믹 피보나치 리트랙먼트 트레이딩 전략 (Dynamic Fibonacci Retracement Trading Strategy) 은 트레이더들이 트레이딩 노력에서 기술적 분석 도구를 활용하고자 하는 유망한 프레임워크를 제공합니다.


/*backtest
start: 2023-06-11 00:00:00
end: 2024-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Input Parameters
len_200 = input.int(200, title="200-period Moving Average")
len_50 = input.int(50, title="50-period Moving Average")
len_21 = input.int(21, title="21-candle Retracement")
len_9 = input.int(9, title="9-candle Retracement")
risk_reward_ratio = input.float(2.0, title="Risk/Reward Ratio")

// Moving Averages
ma_200 = ta.sma(close, len_200)
ma_50 = ta.sma(close, len_50)

// Fibonacci Retracement Levels
var float fib_50_level = na
var float fib_786_level = na

if (close > ma_200 and close > ma_50)
    // Calculate retracements for different periods
    retrace_21_high = ta.highest(high, len_21)
    retrace_21_low = ta.lowest(low, len_21)
    retrace_21_mid = (retrace_21_high + retrace_21_low) / 2
    
    retrace_50_high = ta.highest(high, len_50)
    retrace_50_low = ta.lowest(low, len_50)
    retrace_50_mid = (retrace_50_high + retrace_50_low) / 2
    
    retrace_9_high = ta.highest(high, len_9)
    retrace_9_low = ta.lowest(low, len_9)
    retrace_9_mid = (retrace_9_high + retrace_9_low) / 2

    // Choose the retracement to use (you can adjust this logic)
    fib_50_level := (retrace_21_mid + retrace_50_mid + retrace_9_mid) / 3
    fib_786_level := (retrace_21_high + retrace_50_high + retrace_9_high) / 3 - ((retrace_21_high + retrace_50_high + retrace_9_high - (retrace_21_low + retrace_50_low + retrace_9_low)) * 0.786)

// Strategy Entry
longCondition = close > ma_200 and close > ma_50 and close <= fib_50_level

if (longCondition)
    strategy.entry("Long", strategy.long)

// Strategy Exit
takeProfitLevel = strategy.position_avg_price + (strategy.position_avg_price - fib_786_level) * risk_reward_ratio
stopLossLevel = fib_786_level

strategy.exit("Take Profit", "Long", limit=takeProfitLevel, stop=stopLossLevel)

// Plotting
plot(ma_200, color=color.blue, title="200-period MA")
plot(ma_50, color=color.red, title="50-period MA")
plot(fib_50_level, color=color.green, title="50% Retracement Level")
plot(fib_786_level, color=color.orange, title="78.6% Retracement Level")


관련

더 많은