이 전략은 피보나치 리트레이싱 레벨을 기반으로 한 고급 트렌드 추적 및 역전 거래 시스템입니다. 이 시스템은 잠재적인 지원 및 저항 수준을 식별하기 위해 자동으로 일곱 가지 주요 피보나치 리트레이싱 레벨 (0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, 및 100%) 을 계산하고 그래프화하기 위해 가격 최고와 최저를 동적으로 식별합니다. 이 시스템은 양방향 거래 메커니즘을 사용하여 상승 추세에서 긴 기회와 하락 추세에서 짧은 기회를 포착 할 수 있습니다.
핵심 논리는 몇 가지 핵심 요소에 기반합니다.
이 전략은 고전적인 피보나치 리트레이싱 이론과 현대적인 양적 거래 기술을 결합하여 포괄적인 거래 시스템을 만듭니다. 이 전략의 강점은 핵심 가격 수준과 명확한 거래 신호의 자동 식별에 있으며, 동시에 전략 성능에 대한 시장 환경의 영향을 고려합니다. 제안된 최적화 방향을 통해 전략의 안정성과 수익성이 더욱 향상 될 수 있습니다.
/*backtest start: 2024-01-06 00:00:00 end: 2025-01-05 00:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fibonacci Retracement Strategy for Crypto", overlay=true) // Input parameters lookback = input.int(50, title="Lookback Period", minval=1) plotLevels = input.bool(true, title="Plot Fibonacci Levels?") compactLines = input.bool(true, title="Compact Fibonacci Lines?") // Calculate highest high and lowest low for the lookback period highestHigh = ta.highest(high, lookback) lowestLow = ta.lowest(low, lookback) // Fibonacci retracement levels diff = highestHigh - lowestLow level0 = highestHigh level23_6 = highestHigh - diff * 0.236 level38_2 = highestHigh - diff * 0.382 level50 = highestHigh - diff * 0.5 level61_8 = highestHigh - diff * 0.618 level78_6 = highestHigh - diff * 0.786 level100 = lowestLow // Plot Fibonacci levels (compact mode to make lines shorter) // if plotLevels // lineStyle = compactLines ? line.style_dashed : line.style_solid // line.new(bar_index[lookback], level0, bar_index, level0, color=color.green, width=1, style=lineStyle) // line.new(bar_index[lookback], level23_6, bar_index, level23_6, color=color.blue, width=1, style=lineStyle) // line.new(bar_index[lookback], level38_2, bar_index, level38_2, color=color.blue, width=1, style=lineStyle) // line.new(bar_index[lookback], level50, bar_index, level50, color=color.orange, width=1, style=lineStyle) // line.new(bar_index[lookback], level61_8, bar_index, level61_8, color=color.red, width=1, style=lineStyle) // line.new(bar_index[lookback], level78_6, bar_index, level78_6, color=color.red, width=1, style=lineStyle) // line.new(bar_index[lookback], level100, bar_index, level100, color=color.green, width=1, style=lineStyle) // Long trade: Buy when price crosses above 61.8% retracement longCondition = ta.crossover(close, level61_8) if longCondition strategy.entry("Long", strategy.long, alert_message="Price bounced off Fibonacci level - Enter Long") // Short trade: Sell when price crosses below 38.2% retracement shortCondition = ta.crossunder(close, level38_2) if shortCondition strategy.entry("Short", strategy.short, alert_message="Price crossed below Fibonacci level - Enter Short") // Exit conditions exitLong = close >= level23_6 if exitLong strategy.close("Long", alert_message="Price reached 23.6% Fibonacci level - Exit Long") exitShort = close <= level78_6 if exitShort strategy.close("Short", alert_message="Price reached 78.6% Fibonacci level - Exit Short")