Die Fibonacci Retracement Reversal Strategie ist eine quantitative Handelsstrategie, die auf Fibonacci-Retracement-Levels und dem Relative Strength Index (RSI) basiert.
Die Strategie berechnet zunächst zwei wichtige Preiszonen auf der Grundlage der 0,618-Fibonacci-Levels - den 0,618-fachen Höchstpunkt und den 0,618-fachen Tiefpunkt.
Darüber hinaus verwendet die Strategie auch den RSI-Indikator, um Überkauf/Überverkaufszustände zu bestimmen. RSI unter 30 zeigt den Überverkaufszustand an, während RSI über 70 einen Überkaufszustand anzeigt. Dies impliziert auch mögliche Preisumkehrungen.
Wenn die beiden Bedingungen kombiniert werden, wird das Kaufsignal ausgelöst, wenn: der Schlussabschluss über den 0,618-fachen Tiefpunkt liegt UND der RSI unter 30 liegt; das Verkaufssignal wird ausgelöst, wenn: der Schlussabschluss unter den 0,618-fachen Tiefpunkt liegt UND der RSI über 70 liegt.
Bei einem Kaufsignal wird die Strategie zum Marktpreis lang. Bei einem Verkaufssignal wird sie zum Marktpreis kurz. Auch werden Profit- und Stop-Loss-Level festgelegt, so dass die Position geschlossen wird, wenn sich der Preis um einen bestimmten Prozentsatz günstig bewegt (Profit nehmen) oder sich um einen bestimmten Prozentsatz negativ bewegt (Stop-Loss).
Die Strategie kombiniert sowohl Trend- als auch Umkehrs-Szenarien, wobei der Haupttrend berücksichtigt wird und gleichzeitig von kurzfristigen Rückschlägen profitiert wird.
Es gibt einige Risiken, die man beachten sollte:
Die Strategie kann weiter optimiert werden, indem
Sammeln Sie mehr historische Daten, um wichtige Parameter wie den Fibonacci-Zonenbereich und die RSI-Überkauf/Überverkaufslinien zu testen und anzupassen, um besser auf den realen Markt anzupassen.
Einbeziehen Sie mehr Indikatoren, um stärkere Signale zu erzeugen, wie Kerzenmuster, Volumenänderungen usw.
Anpassung der Parameter oder Regeln an die verschiedenen Merkmale der Handelsinstrumente.
Hinzufügen eines dynamischen Stop-Loss-Mechanismus zum Echtzeitpreis.
Die Fibonacci-Retracement-Umkehrstrategie balanciert Trend- und Umkehrszenarien, um kurzfristig Gewinne zu erzielen und gleichzeitig Risiken zu kontrollieren.
/*backtest start: 2023-11-06 00:00:00 end: 2023-12-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("FBS Trade", overlay=true) // Fibonacci seviyeleri fibonacciLevels = input(0.618, title="Fibonacci Düzeltme Seviyesi") // RSI ayarları rsiLength = input(14, title="RSI Periyodu") overboughtLevel = input(70, title="RSI Satış Sinyali Seviyesi") oversoldLevel = input(30, title="RSI Alış Sinyali Seviyesi") // Take Profit ve Stop Loss yüzdesi takeProfitPercent = input(1, title="Take Profit Yüzdesi") / 100 stopLossPercent = input(1, title="Stop Loss Yüzdesi") / 100 // Fibonacci seviyelerini hesapla highFibo = high * (1 + fibonacciLevels) lowFibo = low * (1 - fibonacciLevels) // RSI hesaplama rsiValue = ta.rsi(close, rsiLength) // Alış ve satış koşulları buyCondition = close > lowFibo and rsiValue < 30 sellCondition = close < highFibo and rsiValue > overboughtLevel // Take Profit ve Stop Loss seviyeleri takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent) stopLossLong = strategy.position_avg_price * (1 - stopLossPercent) takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent) stopLossShort = strategy.position_avg_price * (1 + stopLossPercent) // Alış ve satış işlemleri if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) // Take Profit ve Stop Loss seviyeleri if (strategy.position_size > 0) strategy.exit("Take Profit/Close Buy", from_entry="Buy", limit=takeProfitLong, stop=stopLossLong) if (strategy.position_size < 0) strategy.exit("Take Profit/Close Sell", from_entry="Sell", limit=takeProfitShort, stop=stopLossShort) // Sadece mumları ve buy/sell işlemlerini göster plot(close, color=color.black, title="Close") // Destek ve direnç bölgeleri supportLevel = input(27, title="Fibonacci Destek Seviyesi") resistanceLevel = input(200, title="Direnç Seviyesi") hline(supportLevel, "Fibonacci Destek Seviyesi", color=color.green) hline(resistanceLevel, "Direnç Seviyesi", color=color.red) // Trend çizgileri var line trendLine = na if (ta.crossover(close, highFibo)) trendLine := line.new(bar_index[1], highFibo[1], bar_index, highFibo, color=color.green, width=2) if (ta.crossunder(close, lowFibo)) trendLine := line.new(bar_index[1], lowFibo[1], bar_index, lowFibo, color=color.red, width=2) // RSI ve Fibo'yu grafiğe çizme hline(overboughtLevel, "RSI Satış Sinyali", color=color.red, linestyle=hline.style_dashed) hline(oversoldLevel, "RSI Alış Sinyali", color=color.green, linestyle=hline.style_dashed) plot(rsiValue, color=color.purple, title="RSI") // 15 dakikalıkta 3 mumda bir alarm is15MinBar = ta.change(time('15'), 1) if (is15MinBar % 3 == 0) alert("15 dakikalıkta 3 mum geçti.")