동적 피보나치 수정 거래 전략

SMA EMA MA
생성 날짜: 2024-06-17 17:02:30 마지막으로 수정됨: 2024-06-17 17:02:30
복사: 0 클릭수: 324
1
집중하다
1166
수행원

동적 피보나치 수정 거래 전략

개요

이 전략은 피보나치 회수와 이동 평균을 기반으로 시장 추세에서 회수 기회를 잡기 위해 고안되었습니다. 그것은 다양한 주기의 최고 가격과 최저 가격을 계산하여 피보나치 회수 수준을 결정하고 이동 평균을 사용하여 추세 방향을 확인합니다. 이 전략은 가격이 장기 및 중기 이동 평균보다 높을 때만 다중 포지션에 진입하는 것을 고려하며 가격이 중요한 피보나치 수준으로 회수 될 때 거래합니다.

전략 원칙

이 전략의 핵심 원칙은 피포나치 회수수준과 이동 평균을 사용하여 잠재적 인 진입 지점을 식별하는 것입니다. 우선, 장기 (~200주기) 와 중기 (~50주기) 의 간단한 이동 평균 (SMA) 을 계산하여 전반적인 추세 방향을 결정합니다. 다음으로, 21주기, 50주기 및 9주기의 최고 가격과 최저 가격을 계산하고, 해당 피포나치 회수수 수준을 이러한 가격에 따라 계산합니다.

이 전략은 다음과 같은 조건이 모두 충족될 때만 다단계 포지션에 진입한다: 가격은 200주기 및 50주기 이동 평균보다 높으며, 가격은 50%에 해당하는 회수수준보다 작다. 일단 진입하면, 정지 포지션은 평균 개시 가격과 평균 개시 가격과 78.6%의 회수수준의 차이를 곱한 리스크의 수익률으로 정의된다.

전략적 이점

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

  2. 동적 회수 수준: 다양한 주기 ([21주기, 50주기, 9주기]) 의 최고 가격과 최저 가격을 계산함으로써, 이 전략은 중요한 피보나치 회수 수준을 다양한 시장 조건에 맞게 동적으로 조정할 수 있다.

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

  4. 시각적 도움말: 이 전략은 이동 평균과 중요한 피보나치 리트랙 레벨을 차트에 그리며 거래자에게 명확한 시각적 참고를 제공하여 현명한 거래 결정을 내리는 데 도움이됩니다.

전략적 위험

  1. 진입을 지연: 급변하는 시장 조건에서, 가격이 중요한 피보나치 수준으로 회수될 때까지 기다리는 것은 진입을 위한 최고의 기회를 놓치게 할 수 있다.

  2. 가짜 신호: 어떤 경우에는 가격이 잠시 중요한 피보나치 수준을 돌파할 수 있지만, 곧 회복되어 가짜 거래 신호가 발생합니다.

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

  4. 변수 민감성: 이 전략의 성능은 이동 평균의 길이나 피보나치 회귀 주기와 같은 선택된 변수에 크게 의존한다. 부적절한 변수 선택은 하위 우수 결과를 초래할 수 있다.

전략 최적화 방향

  1. 동적 변수 최적화: 변화하는 시장 조건에 적응하기 위해 이동 평균의 길이나 피보나치 회귀 주기와 같은 전략 변수를 동적으로 조정하기 위해 적응 장치를 적용합니다.

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

  3. 위험 관리 강화: 더 높은 수준의 위험 관리 기술을 도입합니다. 예를 들어, 변동성에 기반한 포지션 조정이나 손실을 추적하는 등으로 자본을 더 잘 보호하고 거래 위험을 관리합니다.

  4. 지표 조합: 다른 기술 지표 (예: 상대적으로 약한 지수 또는 무작위 진동기) 가 기존의 이동 평균 및 피보나치 회귀 수준과 결합되어 거래 신호의 정확성과 신뢰성을 향상시킵니다.

요약하다

다이내믹 피보나치 리트레이드 트레이딩 전략 (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")