Cette stratégie est un système de trading avancé qui combine plusieurs outils d'analyse technique, principalement basés sur des niveaux de rétractation de Fibonacci à plus long terme et des conditions de rupture de prix élevées et basses pour générer des signaux de trading.
La logique de base de la stratégie est basée sur trois piliers principaux: premièrement, l'analyse des prix dans les délais plus longs, établissant une perspective de marché plus macro par le calcul des prix OHLC quotidiens ou plus longs. Deuxièmement, le calcul dynamique des niveaux de retracement de Fibonacci, en établissant des niveaux de support et de résistance clés en fonction de la fourchette de prix dans les délais plus longs. Enfin, la détermination de la rupture des prix en établissant les prix les plus élevés et les plus bas au cours des périodes de rétrospective en tant que références de rupture. Les signaux d'achat sont déclenchés lorsque le prix dépasse les niveaux les plus bas récents et dépasse le niveau de retracement de 50% de Fibonacci, tandis que les signaux de vente sont générés lorsque le prix dépasse les niveaux les plus élevés récents et tombe en dessous du niveau de retracement de 50% de Fibonacci.
Il s'agit d'un système de trading bien conçu qui crée une stratégie de trading théoriquement solide et pratique en combinant plusieurs outils d'analyse technique classiques. La plus grande caractéristique de la stratégie est sa capacité à fournir des signaux de trading plus fiables grâce à une analyse multidimensionnelle tout en conservant une flexibilité suffisante pour s'adapter à différents environnements de marché. Bien qu'il existe certains risques inhérents, la stabilité et la fiabilité de la stratégie peuvent être encore améliorées grâce aux directions d'optimisation suggérées.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fibonacci Levels Strategy with High/Low Criteria", overlay = true) // Kullanıcıdan yüksek zaman dilimini ve mum bilgilerini al timeframe = input.timeframe(defval = "D", title = "Higher Time Frame") currentlast = input.string(defval = "Last", title = "Current or Last HTF Candle", options = ["Current", "Last"]) // Kullanıcıdan en düşük ve en yüksek fiyat bakış sürelerini al lowestLookback = input(20, "Lowest Price Lookback", tooltip="The strategy will BUY when the price crosses over the lowest it has been in the last X amount of bars") highestLookback = input(10, "Highest Price Lookback", tooltip="If Take-Profit is not checked, the strategy will SELL when the price crosses under the highest it has been in the last X amount of bars") // Fibonacci seviyeleri ayarları level0 = input.float(defval = 0.000, title = "Level 0") level1 = input.float(defval = 0.236, title = "Level 1") level2 = input.float(defval = 0.382, title = "Level 2") level3 = input.float(defval = 0.500, title = "Level 3") level4 = input.float(defval = 0.618, title = "Level 4") level5 = input.float(defval = 0.786, title = "Level 5") level100 = input.float(defval = 1.000, title = "Level 100") // HTF mumlarını hesapla newbar = ta.change(time(timeframe)) != 0 var float htfhigh = high var float htflow = low var float htfopen = open float htfclose = close var counter = 0 if newbar htfhigh := high htflow := low htfopen := open counter := 0 else htfhigh := math.max(htfhigh, high) htflow := math.min(htflow, low) counter += 1 var float open_ = na var float high_ = na var float low_ = na var float close_ = na if currentlast == "Last" and newbar open_ := htfopen[1] high_ := htfhigh[1] low_ := htflow[1] close_ := htfclose[1] else if currentlast == "Current" open_ := htfopen high_ := htfhigh low_ := htflow close_ := htfclose // Fibonacci seviyelerini hesapla var float[] fibLevels = array.new_float(6) array.set(fibLevels, 0, open_ + (high_ - low_) * level0) array.set(fibLevels, 1, open_ + (high_ - low_) * level1) array.set(fibLevels, 2, open_ + (high_ - low_) * level2) array.set(fibLevels, 3, open_ + (high_ - low_) * level3) array.set(fibLevels, 4, open_ + (high_ - low_) * level4) array.set(fibLevels, 5, open_ + (high_ - low_) * level5) // Fibonacci seviyelerini grafik üzerine çiz plot(array.get(fibLevels, 0), color=color.new(color.blue, 75), title="Fibonacci Level 0") plot(array.get(fibLevels, 1), color=color.new(color.green, 75), title="Fibonacci Level 1") plot(array.get(fibLevels, 2), color=color.new(color.red, 75), title="Fibonacci Level 2") plot(array.get(fibLevels, 3), color=color.new(color.orange, 75), title="Fibonacci Level 3") plot(array.get(fibLevels, 4), color=color.new(color.teal, 75), title="Fibonacci Level 4") plot(array.get(fibLevels, 5), color=color.new(color.navy, 75), title="Fibonacci Level 5") // En düşük ve en yüksek fiyat kriterlerini hesapla lowcriteria = ta.lowest(low, lowestLookback)[1] highcriteria = ta.highest(high, highestLookback)[1] plot(highcriteria, color=color.green, title="Highest Price Criteria") plot(lowcriteria, color=color.red, title="Lowest Price Criteria") // Fibonacci seviyeleri ile ticaret sinyalleri oluştur longCondition = close > lowcriteria and close > array.get(fibLevels, 3) // En düşük kriterin ve Fibonacci seviyesinin üstüne çıkarsa alım shortCondition = close < highcriteria and close < array.get(fibLevels, 3) // En yüksek kriterin ve Fibonacci seviyesinin altına düşerse satış if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short)