बैंडपास फ़िल्टरिंग ट्रेंड एक्सट्रैक्शन रणनीति बैंडपास फ़िल्टर पर आधारित एक स्टॉक ट्रेंड ट्रैकिंग रणनीति है। यह मूल्य श्रृंखला को संसाधित करने और प्रविष्टियों और निकासों के लिए संकेत के रूप में कीमतों में प्रवृत्ति घटक को निकालने के लिए घातीय रूप से भारित चलती औसत और बैंडपास फ़िल्टरिंग का उपयोग करता है।
रणनीति पहले चलती औसत की लंबाई और चिकनाई को नियंत्रित करने के लिए लंबाई और डेल्टा मापदंडों को समायोजित करके एक डबल घातीय चलती औसत का निर्माण करती है। फिर यह मूल्य श्रृंखला से प्रवृत्ति घटक को निकालने के लिए गणितीय परिवर्तनों के एक सेट का उपयोग करता है और इसे xBandpassFilter चर में संग्रहीत करता है। अंत में, यह प्रविष्टियों और निकास के लिए संकेतक के रूप में xBandpassFilter, xMean के सरल चलती औसत की गणना करता है।
जब xMean ट्रिगर स्तर के ऊपर पार करता है, तो यह लंबा हो जाता है, और नीचे पार करते समय छोटा हो जाता है। प्रवेश और निकास की संवेदनशीलता को ट्रिगर स्तर को ट्यून करके नियंत्रित किया जा सकता है।
लंबाई को छोटा करने से विलंब की समस्याएं सुधरी जा सकती हैं। ट्रिगर को ट्यून करने से संवेदनशीलता नियंत्रित होती है।
यह रणनीति मजबूत ट्रेंडिंग बाजारों में अच्छे प्रदर्शन के साथ अपेक्षाकृत स्थिर है। कई बाजार वातावरणों में आगे के अनुकूलन इसे अधिक विश्वसनीय रूप से लाभदायक बना सकते हैं। यह आगे के शोध और अनुप्रयोग की गारंटी देता है।
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 14/12/2016 // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect... // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Extracting The Trend Strategy Backtest") Length = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") hline(Trigger, color=blue, linestyle=line) xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos = iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xMean, color=red, title="ExTrend")