यह रणनीति डेल्टा वॉल्यूम और फिबोनाची रिट्रेसमेंट पर आधारित एक ट्रेडिंग रणनीति है। यह समय की अवधि में खरीदारों और विक्रेताओं की मात्रा की तुलना करके बाजार की प्रवृत्ति निर्धारित करती है, जबकि प्रवेश और निकास बिंदुओं को निर्धारित करने के लिए फिबोनाची रिट्रेसमेंट लाइनों का उपयोग करती है। जब खरीदार की मात्रा विक्रेता की मात्रा से अधिक होती है और कीमत 61.8% फिबोनाची रिट्रेसमेंट लाइन से टूट जाती है, तो यह एक लंबी स्थिति में प्रवेश करती है; जब विक्रेता की मात्रा खरीदार की मात्रा से अधिक होती है और कीमत 38.2% फिबोनाची रिट्रेसमेंट लाइन से नीचे गिर जाती है, तो यह स्थिति को बंद कर देती है।
डेल्टा वॉल्यूम और फाइबोनैचि रिट्रेसमेंट लाइनों को मिलाकर, यह रणनीति तब प्रवेश करती है जब एक प्रवृत्ति बन रही होती है और बाहर निकलती है जब प्रवृत्ति बाजार के मुख्य प्रवृत्ति को पकड़ने के लिए उलट सकती है। हालांकि, यह दोलन बाजार में लगातार व्यापार के जोखिम का सामना कर सकती है, इसलिए इसे अन्य संकेतकों और जोखिम नियंत्रण उपायों के साथ अनुकूलित करने की आवश्यकता होती है। कुल मिलाकर, रणनीति स्पष्ट है, तार्किक रूप से कठोर है, और आगे के विकास और अनुप्रयोग के लिए एक बुनियादी रणनीति के रूप में इस्तेमाल किया जा सकता है।
/*backtest start: 2023-05-09 00:00:00 end: 2024-05-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Delta Volume with Fibonacci Levels Strategy", overlay=true) // Input pour la période de calcul du volume et du delta N = input(14, title="Période du Delta Volume") fibLength = input(21, title="Fibonacci Lookback Period") // Choix de la barre pour l'entrée et la sortie des trades entryPriceType = input.string("close", title="Entry Price Type", options=["open", "close"]) exitPriceType = input.string("close", title="Exit Price Type", options=["open", "close"]) // Correction des dates de début et de fin pour le backtest startDate = input(defval = timestamp("2021-01-01"), title = "Start Date") endDate = input(defval = timestamp("2022-01-01"), title = "End Date") // Calcul des volumes des acheteurs et des vendeurs buyerVolume = array.new_float() sellerVolume = array.new_float() // Mise à jour des volumes à chaque bougie buyVol = close > open ? volume : 0 sellVol = close < open ? volume : 0 array.unshift(buyerVolume, buyVol) array.unshift(sellerVolume, sellVol) // Gardez seulement les N dernières valeurs pour le delta volume if array.size(buyerVolume) > N array.pop(buyerVolume) if array.size(sellerVolume) > N array.pop(sellerVolume) // Calcul du delta de volume sumBuyerVolume = array.sum(buyerVolume) sumSellerVolume = array.sum(sellerVolume) deltaVolume = sumBuyerVolume - sumSellerVolume // Calcul du plus haut et du plus bas pour Fibonacci highestPrice = ta.highest(high, fibLength) lowestPrice = ta.lowest(low, fibLength) // Fibonacci Levels fib382 = lowestPrice + (highestPrice - lowestPrice) * 0.5 fib618 = lowestPrice + (highestPrice - lowestPrice) * 0.786 // Vérification des dates pour le backtest bool isInDateRange = true // Conditions d'entrée et de sortie entryPrice = entryPriceType == "open" ? open : close exitPrice = exitPriceType == "open" ? open : close // Acheter quand le volume des acheteurs dépasse celui des vendeurs, le prix est au-dessus du niveau 61.8% de Fibonacci if isInDateRange and deltaVolume > 0 and entryPrice > fib618 strategy.entry("Buy", strategy.long) // Vendre quand le volume des vendeurs dépasse celui des acheteurs, le prix est en dessous du niveau 38.2% de Fibonacci if isInDateRange and deltaVolume < 0 and exitPrice < fib382 strategy.close("Buy") // Affichage des niveaux de Fibonacci et du delta de volume plot(fib382, color=color.red, title="Fibonacci 38.2%") plot(fib618, color=color.green, title="Fibonacci 61.8%") plot(deltaVolume, color=deltaVolume > 0 ? color.green : color.red, title="Delta Volume")