
Bei der Strategie handelt es sich um ein fortgeschrittenes Trendfolge- und Umkehrhandelssystem, das auf Fibonacci-Retracement-Levels basiert. Dies geschieht durch die dynamische Identifizierung von Preishochs und -tiefs sowie die automatische Berechnung und Darstellung von sieben wichtigen Fibonacci-Retracement-Levels (0 %, 23,6 %, 38,2 %, 50 %, 61,8 %, 78,6 % und 100 %). Identifizieren Sie potenzielle Unterstützungs- und Widerstandslevel. Das System verwendet einen zweiseitigen Handelsmechanismus, der Kaufgelegenheiten in einem Aufwärtstrend und Leerverkaufsgelegenheiten in einem Abwärtstrend nutzen kann.
Die Kernlogik der Strategie basiert auf den folgenden Schlüsselelementen:
Diese Strategie baut ein umfassendes Handelssystem auf, indem sie die klassische Fibonacci-Retracement-Theorie mit modernen quantitativen Handelstechniken kombiniert. Sein Vorteil liegt darin, dass es wichtige Preisniveaus automatisch erkennen und klare Handelssignale liefern kann. Allerdings muss auch der Einfluss des Marktumfelds auf die Leistung der Strategie beachtet werden. Durch die empfohlenen Optimierungsrichtungen sollen die Stabilität und Profitabilität der Strategie weiter verbessert werden.
/*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")