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

लेखक:चाओझांग, दिनांकः 2023-12-29 17:23:14
टैगः

img

अवलोकन

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

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

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

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

इसके अतिरिक्त, रणनीति में ट्रेडिंग वॉल्यूम कारकों पर भी विचार किया जाता है। वास्तविक ट्रेडिंग सिग्नल केवल तब उत्पन्न होते हैं जब ट्रेडिंग वॉल्यूम बड़ा होता है। इससे कुछ झूठे ट्रेडों से बचा जाता है।

लाभ विश्लेषण

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

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

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

जोखिम विश्लेषण

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

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

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

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

अनुकूलन दिशाएँ

इस रणनीति को और अधिक अनुकूलित किया जा सकता हैः

  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)


अधिक