कलमन फ़िल्टरिंग और माध्य प्रतिगमन पर आधारित मात्रात्मक ट्रेडिंग रणनीति


निर्माण तिथि: 2023-12-29 17:23:14 अंत में संशोधित करें: 2023-12-29 17:23:14
कॉपी: 0 क्लिक्स: 846
1
ध्यान केंद्रित करना
1621
समर्थक

कलमन फ़िल्टरिंग और माध्य प्रतिगमन पर आधारित मात्रात्मक ट्रेडिंग रणनीति

अवलोकन

इस रणनीति में कार्मन वेव और औसत रिटर्न के विचार का उपयोग किया जाता है, जो स्टॉक की कीमतों में अल्पकालिक असामान्य उतार-चढ़ाव को पकड़ने के लिए स्टॉक पर दिशात्मक ट्रेडिंग की अनुमति देता है। रणनीति पहले एक स्टॉक-टू-मार्केट इंडेक्स मूल्य अनुपात मॉडल का निर्माण करती है, और फिर कार्मन वेव तकनीक का उपयोग करके अनुपात की भविष्यवाणी और वेव करती है। जब अनुपात सामान्य स्तर से विचलित होता है तो व्यापार उत्पन्न होता है। सिग्नल इसके अलावा, रणनीति गलत ट्रेडिंग से बचने के लिए लेनदेन की मात्रा फ़िल्टर के साथ भी जुड़ी हुई है।

रणनीति सिद्धांत

इस रणनीति का मुख्य विचार शेयरों की खुद की कीमतों और बाजार सूचकांक की कीमतों के बीच अनुपात मॉडल बनाना है। यह अनुपात समग्र बाजार के मूल्य स्तर के सापेक्ष एक शेयर को दर्शा सकता है। जब अनुपात अधिक होता है, तो यह माना जाता है कि एक शेयर को ओवरवैल्यूड किया गया है, बिक्री संकेत उत्पन्न करता है; जब अनुपात कम होता है, तो यह माना जाता है कि एक शेयर को कम करके आंका गया है, खरीद संकेत उत्पन्न करता है।

अनुपात संकेतों को चिकना करने के लिए, रणनीति में कार्मन फ़िल्टर एल्गोरिथ्म का उपयोग किया जाता है। कार्मन फ़िल्टर अनुपात के वास्तविक अवलोकन मूल्य को पूर्वानुमानित मूल्य के साथ भारित करता है, दर की भविष्यवाणी को वास्तविक समय में अपडेट करता है। और एक चिकना कार्मन फ़िल्टर मूल्य की गणना करता है। जब फ़िल्टर मूल्य सामान्य स्तर से 2 मानक अंतर से अधिक या सामान्य स्तर से 2 मानक अंतर से कम होता है, तो एक व्यापार संकेत उत्पन्न होता है।

इसके अलावा, रणनीति लेन-देन की मात्रा को भी ध्यान में रखती है। वास्तविक लेनदेन संकेत केवल बड़ी मात्रा में किए जाते हैं, जिससे कुछ गलत लेनदेन से बचा जा सकता है।

रणनीति का विश्लेषण

इस रणनीति का सबसे बड़ा लाभ यह है कि यह कार्लमैन वेव एल्गोरिथ्म का उपयोग करके मूल्य अनुपात को प्रभावी ढंग से चिकना और पूर्वानुमानित करता है। सरल औसत रिवर्स मॉडल की तुलना में, कार्लमैन वेव कीमतों के गतिशील परिवर्तनों को बेहतर ढंग से प्रतिबिंबित करने में सक्षम है, खासकर जब कीमतों में भारी उतार-चढ़ाव होता है। इससे रणनीति को समय पर मूल्य असामान्यताओं का पता लगाने और सटीक व्यापारिक संकेत उत्पन्न करने की अनुमति मिलती है।

दूसरा, लेन-देन की मात्रा के संयोजन ने रणनीति की व्यावहारिकता को भी बढ़ाया। उचित लेनदेन की मात्रा फिल्टर करने से कुछ गलत संकेतों को रोकने और अनावश्यक लेनदेन लागत को कम करने में मदद मिलती है।

कुल मिलाकर, इस रणनीति ने कई तकनीकों को सफलतापूर्वक संयोजित किया है, जैसे कि करमन वेव, औसत प्रतिगमन और व्यापारिक विश्लेषण, एक अपेक्षाकृत मजबूत मात्रात्मक व्यापारिक रणनीति बनाने के लिए।

रणनीतिक जोखिम विश्लेषण

हालांकि यह रणनीति सैद्धांतिक और तकनीकी रूप से पूरी तरह से सही है, फिर भी कुछ संभावित जोखिम हैं जिन्हें वास्तविक उपयोग में ध्यान देने की आवश्यकता है।

सबसे पहले, मॉडल जोखिम है। कार्लमैन फ़िल्टर मॉडल में कुछ महत्वपूर्ण पैरामीटर, जैसे प्रक्रिया शोर अंतर, अवलोकन शोर अंतर, आदि को ऐतिहासिक डेटा के आधार पर अनुमानित करने की आवश्यकता है। यदि अनुमान गलत है या बाजार की स्थिति में महत्वपूर्ण परिवर्तन होता है, तो यह मॉडल की भविष्यवाणी में विचलन का कारण होगा।

स्लिप लागत जोखिम के बाद, अधिक बार ट्रेड करने से स्लिप लागत अधिक होती है, जिससे रणनीतिक लाभ का नुकसान होता है। पैरामीटर अनुकूलन और ट्रेड वॉल्यूम फ़िल्टरिंग कुछ हद तक अनावश्यक ट्रेडों को कम कर सकते हैं।

अंत में, बाजार सूचकांक का उपयोग करने के लिए कुछ बाजार प्रणालीगत जोखिम हैं। जब पूरे बाजार में भारी उतार-चढ़ाव होता है, तो व्यक्तिगत शेयरों के लिए बाजार मूल्य अनुपात में असामान्यताएं होती हैं। इस स्थिति में रणनीति गलत संकेत देती है। हम एक अधिक स्थिर सूचकांक का उपयोग करने पर विचार कर सकते हैं।

रणनीति अनुकूलन दिशा

इस रणनीति में और अधिक अनुकूलन के लिए जगह हैः

  1. मूल्य अनुपात को अनुकूलित करने और भविष्यवाणी करने के लिए अधिक जटिल गहरी सीखने के मॉडल का उपयोग करना। इससे मॉडल की सटीकता और कठोरता में सुधार हो सकता है।

  2. लेन-देन की मात्रा फ़िल्टरिंग नियमों को अनुकूलित करें, और अधिक गतिशील और बुद्धिमान लेनदेन की मात्रा थ्रेड सेट करें। यह गलत लेनदेन की संभावना को कम कर सकता है।

  3. विभिन्न बाजार सूचकांकों को रणनीतिक रूप से परीक्षण करें, कम अस्थिर और अधिक स्थिर सूचकांकों का चयन करें। इससे बाजार में प्रणालीगत जोखिम के प्रभाव को कम किया जा सकता है।

  4. शेयरों के मौलिक विश्लेषण के साथ, कुछ मौलिक रूप से स्पष्ट रूप से बिगड़ने वाले शेयरों के व्यापार से बचें। इससे बेहतर गुणवत्ता वाले व्यापारिक संकेतों का चयन किया जा सकता है।

  5. उच्च आवृत्ति वाले इंट्राडे डेटा का उपयोग रणनीति प्रतिक्रिया और अनुकूलन के लिए किया जाता है, जो रणनीति के प्रदर्शन में सुधार कर सकता है।

संक्षेप

इस रणनीति ने स्टॉक की कीमतों में अल्पकालिक असामान्य उतार-चढ़ाव को कैप्चर करने के लिए कार्मन वेव मॉडल का सफलतापूर्वक उपयोग किया है। साथ ही, ट्रेडिंग वॉल्यूम सिग्नल की शुरूआत ने रणनीति की व्यावहारिकता को बढ़ाया है। हालांकि कुछ मॉडल जोखिम और बाजार जोखिम अभी भी मौजूद हैं, यह एक बहुत ही आशाजनक मात्रात्मक ट्रेडिंग रणनीति है। भविष्य में मॉडल और ट्रेडिंग सिग्नल के अनुकूलन के लिए बहुत अधिक उन्नयन और अनुप्रयोग क्षमता है।

रणनीति स्रोत कोड
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © xXM3GAXx

//@version=5
strategy("My strategy", overlay=true)

//SPY or QQQ
context = request.security("BTC_USDT:swap", timeframe.period, input(close))
//our stock
particular = input(close)

//ratio
src = ta.roc(particular, 1) / math.abs(ta.roc(context, 1))

//kalman calculation
Sharpness = input.float(1.0)
K = input.float(1.0)


greencolor =  color.lime
redcolor =  color.red

velocity = 0.0
kfilt = 0.0

Distance = src - nz(kfilt[1], src)
Error = nz(kfilt[1], src) + Distance * math.sqrt(Sharpness*K/ 100)
velocity := nz(velocity[1], 0) + Distance*K / 100
kfilt := Error + velocity

//2 std devs up and down
upper = kfilt[1] + 2 * ta.stdev(kfilt, input(20))
lower = kfilt[1] - 2 * ta.stdev(kfilt, input(20))

//plotting for visuals
plot(kfilt, color=velocity > 0 ? greencolor : redcolor, linewidth = 2)
plot(upper)
plot(lower)
//plot(ta.ema(ta.roc(particular, 1)/ta.roc(context, 1), 5), color = #00ffff, linewidth=2)

//volume data
vol = volume
volema = ta.ema(volume, 10)

//buy when ratio too low
longCondition = kfilt<=lower and vol>=volema
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

//sell when ratio too high
shortCondition = kfilt>=upper and vol>=volema
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)