La stratégie d'inversion de retracement de Fibonacci est une stratégie de trading quantitative basée sur les niveaux de retracement de Fibonacci et l'indicateur d'indice de force relative (RSI).
La stratégie calcule d'abord deux zones de prix importantes basées sur les niveaux de Fibonacci de 0,618 - le point le plus élevé de 0,618 fois et le point le plus bas de 0,618 fois.
En outre, la stratégie utilise également l'indicateur RSI pour déterminer les conditions de surachat/survente. RSI inférieur à 30 indique le statut de survente tandis que RSI supérieur à 70 suggère une condition de surachat. Ceux-ci impliquent également des renversements de prix potentiels.
En combinant les deux conditions, le signal d'achat est déclenché lorsque: les ruptures de clôture sont supérieures au point bas de 0,618 fois et que le RSI est inférieur à 30; le signal de vente est déclenché lorsque: les ruptures de clôture sont inférieures au point haut de 0,618 fois et que le RSI dépasse 70.
Lorsqu'il y a un signal d'achat, la stratégie sera longue au prix du marché. Lorsqu'il y a un signal de vente, elle sera courte au prix du marché. De plus, les niveaux de prise de profit et de stop loss sont définis de manière à ce que la position soit fermée lorsque le prix se déplace favorablement d'un certain pourcentage (take profit) ou se déplace négativement d'un certain pourcentage (stop loss).
La stratégie combine les scénarios de tendance et d'inversion, en tenant compte de la tendance majeure tout en profitant du retracement à court terme.
Il y a certains risques à prendre en compte:
La stratégie peut être encore optimisée par:
Rassembler plus de données historiques pour tester et ajuster les paramètres clés tels que la plage de la zone de Fibonacci et les lignes de surachat/survente du RSI pour mieux s'adapter au marché réel.
Incorporer plus d'indicateurs pour générer des signaux plus forts, comme les modèles de chandeliers, les changements de volume, etc.
Ajuster les paramètres ou les règles en fonction des différentes caractéristiques des instruments de négociation.
Ajouter un mécanisme de stop loss dynamique au prix de suivi en temps réel.
La stratégie d'inversion de Fibonacci rétrécement équilibre les scénarios de tendance et d'inversion pour réaliser des bénéfices à court terme tout en contrôlant les risques.
/*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.")