Type/to search
0
Follow
80
Followers
क्वांटिटेटिव ट्रेडिंग से इन्वेंटर का परिचय - मूल बातों से अभ्यास तक
Original
Created 2019-06-25 15:48:58  Updated 2023-10-31 21:01:08
 2
 16107

img

विषयसूची

अध्याय 1 मात्रात्मक व्यापार की मूल बातें

1.1 मात्रात्मक व्यापार क्या है?

सारांश

विज्ञान और मशीनों के संयोजन के उत्पाद के रूप में मात्रात्मक व्यापार, आधुनिक वित्तीय बाजार के परिदृश्य को बदल रहा है। अब कई निवेशकों ने अपना ध्यान इस क्षेत्र की ओर लगाया है। जोखिम को न्यूनतम कैसे करें और सर्वोत्तम संभव लाभ कैसे प्राप्त करें? इस पाठ्यक्रम श्रृंखला का उद्देश्य भी यही है। पहले लेख के रूप में, हम संक्षेप में "मात्रात्मक व्यापार क्या है" समझाएंगे।

अवलोकन

जब कई लोग "मात्रात्मक व्यापार" शब्द सुनते हैं, तो उन्हें लगता है कि यह उच्च-स्तरीय है और उन्हें रातोंरात अमीर बना देगा। कृत्रिम बुद्धिमत्ता के युग के साथ-साथ डीप लर्निंग, बिग डेटा और क्लाउड कंप्यूटिंग जैसी उन्नत प्रौद्योगिकियों के उदय ने इसे एक रहस्यमय रंग दे दिया है। ऐसा प्रतीत होता है कि जब तक मात्रात्मक व्यापार का उपयोग किया जाता है, तब तक एक "उत्तम" व्यापार रणनीति का निर्माण किया जा सकता है।

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

मात्रात्मक व्यापार का विकास

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

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

आजकल, इंटरनेट + बिग डेटा + क्लाउड कंप्यूटिंग + आर्टिफिशियल इंटेलिजेंस के युग में, मात्रात्मक व्यापार भी तेजी से विकसित हुआ है। लंदन का कैनरी व्हार्फ, जो कभी वैश्विक वित्तीय केन्द्र था, अब आईटी कम्पनियों का केन्द्र बन गया है। विश्व के शीर्ष निवेश बैंक भी अपनी स्वयं की मात्रात्मक टीमें तैयार कर रहे हैं, तथा "जिसने मॉडल प्राप्त कर लिया, वह दुनिया जीत गया" के वित्तीय युद्ध में शामिल होने का प्रयास कर रहे हैं। ट्रेडिंग मॉडल विकसित करने वाली इन आईटी टीमों को क्वांट टीम भी कहा जाता है। पैमाने की दृष्टि से, संयुक्त राज्य अमेरिका, जिसने पहले इसकी शुरुआत की थी, के पास पहले से ही बड़ी संख्या में मजबूत मात्रात्मक हेज फंड मौजूद हैं।

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

मात्रात्मक व्यापार की विशेषताएं

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

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

समय पर और कुशलव्यक्तिपरक व्यापार में, लोगों की प्रतिक्रिया की गति कंप्यूटर से अधिक तेज नहीं हो सकती है, और लोगों की शारीरिक शक्ति और ऊर्जा 24 घंटे काम नहीं कर सकती है। व्यापारिक बाजार में जहां अवसर क्षणभंगुर होते हैं, वहां मात्रात्मक व्यापार व्यक्तिपरक व्यापार को पूरी तरह से प्रतिस्थापित कर सकता है, व्यापारिक अवसरों को खोज सकता है, तथा समय पर और तीव्र गति से बाजार में होने वाले परिवर्तनों पर नजर रख सकता है।

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

मात्रात्मक व्यापार के लिए क्लासिक ट्रेडिंग रणनीतियाँ क्या हैं?

प्रारंभिक ब्रेकआउट रणनीति

खुलने के बाद का पहला आधा घंटा अक्सर दिन का रुझान निर्धारित कर सकता है। यह रणनीति दिन के रुझान को आंकने के लिए मानक के रूप में, मूल्य खुलने के आधे घंटे के भीतर मूल्य के सकारात्मक या नकारात्मक रेखा होने को उपयोग में लाती है। यदि यह सकारात्मक रेखा है, तो खरीद स्थिति खोलें; यदि यह नकारात्मक रेखा है, तो विक्रय स्थिति खोलें, और समापन से कुछ मिनट पहले स्थिति को बंद कर दें। यह एक बहुत ही सरल ट्रेडिंग रणनीति है।

डोन्चियन चैनल रणनीति

img

चित्र 1-1 डोन्चियन चैनल रणनीति आरेख

डोन्चियन चैनल रणनीति को इंट्राडे ट्रेडिंग का पूर्वज माना जा सकता है। इसके नियम हैं: यदि वर्तमान मूल्य पिछली N K-लाइनों के उच्चतम मूल्य से अधिक है तो खरीदें, और यदि वर्तमान मूल्य पिछली N K-लाइनों के निम्नतम मूल्य से कम है तो बेचें। प्रसिद्ध टर्टल ट्रेडिंग नियम डोन्चियन चैनल रणनीति के संशोधित संस्करण का उपयोग करते हैं।

क्रॉस-पीरियड आर्बिट्रेज रणनीति

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

संक्षेप

ऊपर, हमने मात्रात्मक व्यापार की प्रासंगिक अवधारणाओं को इसकी परिभाषा, विकास, विशेषताओं और क्लासिक ट्रेडिंग रणनीतियों के पहलुओं से संक्षेप में पेश किया है।

क्वांटिटेटिव ट्रेडिंग को समझना, क्वांट बनने की राह पर एक महत्वपूर्ण कदम है। अंत में, मैं चाहता हूं कि हर कोई भालू बाजार में खुद को समृद्ध कर सके और जितनी जल्दी हो सके ज्ञान की प्राप्ति का एहसास कर सके! याद रखें, आप वित्तीय स्वतंत्रता से केवल एक बुल मार्केट की दूरी पर हैं!

अगला अनुभाग पूर्वावलोकन
मात्रात्मक व्यापार और पारंपरिक व्यापार के बीच क्या अंतर हैं? वास्तविक व्यापार में, क्या हमें पारंपरिक व्यापार या मात्रात्मक व्यापार चुनना चाहिए? अगले भाग में, हम मात्रात्मक व्यापार को और अधिक समझने के लिए इन दो प्रश्नों पर विचार करेंगे।

गृहकार्य

  1. एक वाक्य में संक्षेप में बताएं कि मात्रात्मक व्यापार क्या है?
  2. मात्रात्मक व्यापार की विशेषताएँ क्या हैं?

1.2 मात्रात्मक व्यापार क्यों चुनें?

सारांश

कई लोग मात्रात्मक व्यापार पर चर्चा करते समय जटिल रणनीति प्रोग्रामिंग को शुरुआती बिंदु के रूप में उपयोग करते हैं, जिससे अनजाने में मात्रात्मक व्यापार पर रहस्य का पर्दा पड़ जाता है। इस अनुभाग में, हम मात्रात्मक व्यापार का एक सरल "रेखाचित्र" आसानी से समझने योग्य भाषा में बनाने का प्रयास करेंगे ताकि इसके रहस्य से पर्दा उठ सके। मेरा मानना ​​है कि बुनियादी ज्ञान न रखने वाला कोई नौसिखिया भी इसे आसानी से समझ सकता है।

मात्रात्मक व्यापार और व्यक्तिपरक व्यापार के बीच अंतर

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

मात्रात्मक व्यापार लेनदेन की समझ के माध्यम से सुसंगत खरीद और बिक्री की रणनीति विकसित करता है। ट्रेडिंग में सभी रुझानों को समान रूप से समझें तथा आरंभिक और अंतिम स्थितियों को व्यवस्थित तरीके से संभालें। गलती करने से बेहतर है कि गलती कर दी जाए। इसमें एक पूर्ण मूल्यांकन प्रणाली भी है, जो ऐतिहासिक डेटा के बैकटेस्टिंग के माध्यम से यह निर्धारित करती है कि किस प्रकार के बाजार और उत्पादों के लिए रणनीति अधिक उपयुक्त है, और कई रणनीतियों और उत्पादों को मिलाकर लाभप्रदता प्राप्त करती है।

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

क्या मात्रात्मक व्यापार व्यक्तिपरक व्यापार से बेहतर है?

एक सफल व्यक्तिपरक व्यापारी, एक अर्थ में, एक मात्रात्मक व्यापारी भी होता है। क्योंकि एक सफल व्यक्तिपरक व्यापारी के पास अपने स्वयं के नियम और तरीके, यानी एक व्यापार प्रणाली होनी चाहिए। सफल व्यक्तिपरक व्यापार, व्यापार अनुशासन और व्यापार नियमों पर आधारित होना चाहिए, और व्यापार नियमों का निष्पादन भाग वास्तव में व्यक्तिपरक व्यापार का मात्रात्मक भाग है।

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

इसलिए, लाभप्रदता के परिप्रेक्ष्य से, प्रमुख कारक जो यह निर्धारित करता है कि एक व्यापारी अंततः सफल हो सकता है या नहीं, वह व्यापार दर्शन है, न कि यह कि यह व्यक्तिपरक व्यापार है या मात्रात्मक व्यापार। मात्रात्मक व्यापार सतह पर बहुत ऊंचा लग सकता है, लेकिन इसका लाभ सार व्यक्तिपरक व्यापार से अलग नहीं है। वे एक ही चीज़ के दो पहलू हैं, जो विपरीत भी हैं और एकीकृत भी।

लेकिन इस बात से इनकार नहीं किया जा सकता कि व्यापारिक उपकरणों के संदर्भ में मात्रात्मक व्यापार के कई फायदे हैं।

तेज़ समीक्षायदि आप किसी ट्रेडिंग रणनीति का परीक्षण करना चाहते हैं, तो आपको बड़ी मात्रा में ऐतिहासिक डेटा की गणना करने की आवश्यकता होगी। मात्रात्मक व्यापार कुछ ही मिनटों में परिणामों की गणना कर सकता है। यह गति व्यक्तिपरक व्यापार से कई गुना तेज है।

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

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

क्या मात्रात्मक व्यापार निश्चित रूप से पैसा कमा सकता है?

बेशक आप ऐसा कर सकते हैं, लेकिन लंबे समय तक इस पर टिके रहना कठिन है। आप पैसा कमाएंगे या नहीं, यह मात्रात्मक व्यापार पर निर्भर नहीं करता, यह तो सिर्फ एक साधन है। मात्रात्मक व्यापार केवल व्यापारिक विचारों को क्रमादेशित, नियमित और मात्रात्मक तरीके से क्रियान्वित करता है। कार्यक्रम केवल निष्पादन को प्रतिस्थापित करता है। सबसे कठिन काम है दीर्घावधि में स्थिर रूप से धन कमाना, क्योंकि बाजार एक खेल है और गतिशील रूप से बदलता रहता है, तथा व्यापारिक विचारों को भी बाजार के साथ बदलना पड़ता है।

मात्रात्मक व्यापार के जोखिम

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

संक्षेप

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. मात्रात्मक व्यापार और व्यक्तिपरक व्यापार के बीच सबसे महत्वपूर्ण अंतर क्या है?
  2. व्यक्तिपरक व्यापार की तुलना में मात्रात्मक व्यापार के क्या लाभ हैं?

1.3 मात्रात्मक व्यापार के लिए आपको क्या तैयारी करने की आवश्यकता है?

सारांश

एक सम्पूर्ण मात्रात्मक ट्रेडिंग जीवन चक्र केवल ट्रेडिंग रणनीति ही नहीं है। इसमें कम से कम छह लिंक शामिल हैं, जिनमें शामिल हैं: रणनीति अवधारणा, मॉडल निर्माण, बैकटेस्टिंग और ट्यूनिंग, सिमुलेशन ट्रेडिंग, वास्तविक ट्रेडिंग, रणनीति निगरानी, ​​आदि।

रणनीतिक सोच

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

मात्रात्मक व्यापार के शुरुआती लोगों के लिए, शुरुआत में व्यापारिक रणनीतियों को विकसित करने का सबसे अच्छा तरीका नकल करना है। रणनीति तर्क बनाने और खरीद और बिक्री के नियम लिखने के लिए मौजूदा तकनीकी विश्लेषण संकेतकों का सीधे उपयोग करें, ताकि आप एक सरल रणनीति प्राप्त कर सकें। मान लीजिए कि आपकी ट्रेडिंग रणनीति यह है: यदि कीमत पिछले 10 दिनों के औसत मूल्य से अधिक है तो खरीदें, और यदि कीमत पिछले 10 दिनों के औसत मूल्य से कम है तो बेचें। तो इसकी संरचना इस प्रकार है (जैसा कि नीचे दिखाया गया है):
img
चित्र 1-2 ट्रेडिंग रणनीति का उदाहरण

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

मॉडल का निर्माण

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

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

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

img
चित्र 1-3 ट्रेडिंग रणनीति विकास पृष्ठ

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

बैकटेस्टिंग और ट्यूनिंग

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

उदाहरण के लिए, हम 2017 के ऐतिहासिक डेटा को इन-सैंपल डेटा के रूप में और 2018 के ऐतिहासिक डेटा को आउट-ऑफ-सैंपल डेटा के रूप में लेते हैं। सबसे पहले, हम अच्छे प्रदर्शन वाले मापदंडों के कई सेटों को अनुकूलित करने के लिए 2017 के डेटा का उपयोग करते हैं, और फिर इन मापदंडों का उपयोग 2018 के प्रदर्शन को अनुकूलित करने के लिए करते हैं।

डेटा बैकटेस्टिंग. सामान्यतः कहा जाए तो, आउट-ऑफ-सैंपल बैकटेस्ट परिणाम, इन-सैंपल बैकटेस्ट परिणामों की तुलना में उतने अच्छे नहीं होते। हालाँकि, यदि आउट-ऑफ-सैंपल और इन-सैंपल परिणाम बहुत भिन्न हैं, तो रणनीति लगभग अप्रभावी है और रणनीति की विफलता के कारणों को निर्धारित करने के लिए अवलोकन और विश्लेषण करना आवश्यक है।

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

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

नकली ट्रेडिंग

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

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

रियल डिस्क लेनदेन

अंततः, रणनीति का लम्बे समय तक परीक्षण करने के बाद, इसे वास्तविक ट्रेडिंग में लागू करने का समय आ गया है। बेशक, हमें मात्रात्मक व्यापार की प्रक्रिया के दौरान सतर्क रहना चाहिए और चरम बाजार स्थितियों से बचना चाहिए। वास्तविक व्यापार में, किसी रणनीति की अपेक्षाओं को आम तौर पर कम कर दिया जाता है, और अपेक्षाओं का 50% प्राप्त करना योग्य माना जाता है।

नीति निगरानी

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

संक्षेप

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

यदि आप विज्ञान और इंजीनियरिंग के छात्र हैं या मजबूत प्रोग्रामिंग कौशल वाले आईटी व्यवसायी हैं, तो बाजार निवेश का अनुभव आपके लिए बाधा बनेगा। इस बात को कम मत समझिए। एक योग्य मात्रात्मक निवेशक के रूप में, दोनों प्रकार का ज्ञान अपरिहार्य है।

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. इस अनुभाग में ट्रेडिंग रणनीति को अंग्रेजी भाषा में लिखने का प्रयास करें।
  2. मात्रात्मक ट्रेडिंग बैकटेस्टिंग में सबसे महत्वपूर्ण प्रदर्शन संकेतक क्या है?

1.4 सम्पूर्ण रणनीति के तत्व क्या हैं?

सारांश

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

रणनीति चयन

हेज फंड के दृष्टिकोण से, मुख्यधारा की ट्रेडिंग रणनीतियों को ट्रेंड ट्रेडिंग, पेयर ट्रेडिंग, बास्केट ट्रेडिंग, इवेंट-ड्रिवन, हाई-फ्रीक्वेंसी ट्रेडिंग, ऑप्शन रणनीतियों आदि में विभाजित किया जा सकता है, जैसा कि नीचे दिए गए आंकड़े में दिखाया गया है। बेशक, रणनीतियों को वर्गीकृत करने का तरीका निश्चित नहीं है।
img
चित्र 1-4 ट्रेडिंग रणनीति वर्गीकरण

मात्रात्मक व्यापार के शुरुआती लोगों के लिए, आपको इतने सारे शब्दों और अवधारणाओं के बारे में चिंता करने की आवश्यकता नहीं है। बस सबसे सरल कदम से कदम मिलाकर शुरुआत करें। यदि मैं शुरुआती लोगों के लिए केवल एक मात्रात्मक ट्रेडिंग रणनीति की सिफारिश करता हूं, तो वह है ट्रेंड ट्रेडिंग, क्योंकि यह सरल और प्रभावी है। मेरा मानना ​​है कि भले ही आप व्यवस्थित रूप से वित्तीय ज्ञान नहीं सीखते हैं, फिर भी आप अच्छा व्यापार कर सकते हैं। और यह रणनीति लंबे समय से, प्रारंभिक सार्वजनिक व्यापार रणनीतियों में, प्रचलित रही है, और यह आज भी कई बाजारों में प्रभावी है, क्योंकि मानव स्वभाव को बदलना कठिन है।

क्या खरीदें और क्या बेचें

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

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

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

कितना खरीदें और कितना बेचें

ट्रेडिंग में पैसा खोना आसान है लेकिन पैसा कमाना मुश्किल है। जब खाते की धनराशि 50% कम हो जाती है, तो हानि की भरपाई के लिए 100% लाभ की आवश्यकता होती है। भले ही आप कई बार 100% लाभ कमा लें, लेकिन सब कुछ खोने के लिए आपको केवल एक बार 100% खोने की आवश्यकता है। इसलिए, एक परिपक्व ट्रेडिंग रणनीति में धन प्रबंधन शामिल होना चाहिए।

सभी के लिए इसे समझना आसान बनाने के लिए, पिछले अनुभाग की चलती औसत रणनीति का भी यहां उपयोग किया गया है। वास्तव में, पारंपरिक तकनीकी संकेतकों के साथ निर्मित कई व्यापारिक रणनीतियों की अधिकतम गिरावट दर आम तौर पर 50% या उससे भी अधिक होती है। लेकिन एक बहुत ही जोखिम भरी रणनीति जो पूरी तरह से अव्यवहारिक है?

स्पष्टतः नहीं, अधिकतम निकासी दर को फंड प्रबंधन के माध्यम से पूरी तरह नियंत्रित किया जा सकता है। यदि स्थिति आधी कर दी जाए तो समग्र जोखिम भी आधा हो जाएगा, तथा अधिकतम निकासी दर 30% हो जाएगी। यदि स्थिति को पुनः आधे से कम कर दिया जाए, तो अधिकतम ड्रॉडाउन दर 15% हो जाएगी। अंत में, हमें एक रणनीति मिलती है जिसमें अधिकतम निकासी दर लगभग 15% पर नियंत्रित होती है। यह धन प्रबंधन का एक सरल एवं सरल तरीका है। बहुत से लोग जानते हैं कि वे पूर्ण स्थिति में काम नहीं कर सकते, लेकिन वे यह नहीं जानते कि वे पूर्ण स्थिति में काम क्यों नहीं कर सकते। इसका उत्तर यहां है।

कब खरीदें और कब बेचें

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

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

कैसे खरीदें और बेचें

1. ऑर्डर देने का प्रकार और तरीका:
ऑर्डर देने के कई प्रकार और तरीके हैं, जैसे: कतार सीमा आदेश, प्रतिपक्ष मूल्य, नवीनतम मूल्य, अधिक मूल्य, ऊपरी सीमा मूल्य, निम्न सीमा मूल्य, पहले मूल्य पर खरीदें, दूसरे मूल्य पर खरीदें, पहले मूल्य पर बेचें, दूसरे मूल्य पर बेचें, या पहले कतार मूल्य और फिर अधिक मूल्य का उपयोग करना, बैचों में ऑर्डर देना, या बड़े ऑर्डर को छोटे ऑर्डर में विभाजित करना, या सभी ऑर्डर सीधे देना।

2. ऑर्डर रद्द करना
यदि ऑर्डर निष्पादित नहीं होता है, तो क्या आपको इंतजार करना जारी रखना चाहिए या ऑर्डर रद्द कर देना चाहिए? रद्दीकरण की स्थिति समय पर आधारित है। उदाहरण के लिए, यदि 10 सेकंड के भीतर कोई लेन-देन नहीं होता है, और कीमत ऑर्डर दिए जाने के समय की कीमत से 10 जंप दूर है, तो क्या आपको इंतजार करना जारी रखना चाहिए, ऑर्डर रद्द करना चाहिए, या ऑर्डर का अनुसरण करना चाहिए।

3. अनुवर्ती आदेश
जब किसी आदेश का निष्पादन नहीं होता है, तो क्या उस आदेश का अनुसरण किया जाना चाहिए। यदि आप किसी ऑर्डर का पीछा करते हैं, तो क्या आपको नवीनतम मूल्य, प्रतिपक्ष मूल्य या मूल्य सीमा के आधार पर उसका पीछा करना चाहिए? यदि आपके द्वारा पीछा किया गया ऑर्डर अभी तक निष्पादित नहीं हुआ है, तो क्या आपको ऑर्डर का पीछा करना जारी रखना चाहिए?

4. मूल्य सीमा
यदि ऑर्डर सिग्नल ऊपरी या निचली सीमा मूल्य पर दिखाई दे तो मुझे क्या करना चाहिए? क्या ऊपरी और निचली सीमा मूल्यों पर निष्पादन के लिए कतार में लगना है, तथा यदि निष्पादन नहीं होता है तो क्या करना है।

5. कॉल नीलामी
क्या आपको प्रारंभिक नीलामी में भाग लेना चाहिए और कैसे भाग लेना चाहिए?

6. रात्रि व्यापार
कुछ कमोडिटी वायदों के लिए रात्रि कारोबार 21:00 बजे से अगले दिन 02:30 बजे तक चलता है। इस अवधि के दौरान, आप चुन सकते हैं कि इसे मैन्युअल रूप से करना है या कंप्यूटर द्वारा।

7. प्रमुख त्यौहार
क्या आपको प्रमुख त्यौहारों के दौरान अतिरिक्त लम्बी छुट्टियों से पहले अपनी स्थिति बनाए रखने की आवश्यकता है? यदि इसे बरकरार रखा जाए तो जोखिमों को कैसे नियंत्रित किया जाए।

चरम बाजार स्थितियां

  1. अल्प समय में कीमतों में बड़ा उतार-चढ़ाव
    तत्काल मूल्य सीमा, निरंतर मूल्य सीमा, त्रुटिपूर्ण आदेश, ब्लैक स्वान मार्केट मूल्य भगदड़ आदि जैसी स्थितियों से कैसे निपटें।

  2. तरलता जोखिम
    यदि प्रतिपक्ष के पास आपके इच्छित ऑर्डर वॉल्यूम नहीं है, लेकिन आपको समय पर लेनदेन पूरा करने की आवश्यकता है, खासकर जब गैर-मुख्य अनुबंधों की तरलता बहुत खराब है, तो आपके द्वारा दिए गए ऑर्डर आसानी से बाजार पर प्रभाव डाल सकते हैं और स्लिपेज बड़ा है, आपको इससे कैसे निपटना चाहिए?

  3. विविधता नियमों में परिवर्तन
    कमोडिटी वायदा उत्पादों को रात्रि व्यापार में शामिल कर लिया जाता है, मार्जिन अनुपात बढ़ा दिया जाता है, तथा हैंडलिंग शुल्क बढ़ा दिया जाता है। विशेष रूप से अल्पकालिक रणनीतियाँ इन परिवर्तनों के प्रति बहुत संवेदनशील होंगी।

  4. व्यापारिक वातावरण जोखिम
    उदाहरण के लिए: अचानक बिजली गुल होने, इंटरनेट बंद होने, कंप्यूटर खराब होने, सॉफ्टवेयर क्रैश होने, बैंक-वायदा हस्तांतरण के निलंबन, प्राकृतिक आपदाओं आदि के समय कैसे प्रतिक्रिया दी जाए।

उपरोक्त स्थिति के घटित होने की संभावना बहुत कम है, या लगभग असंभव है। लेकिन अगर ऐसा हो सकता है, तो ऐसा होगा। ये धारणाएं बनाना और सावधानियां बरतना आवश्यक है।

मनोवैज्ञानिक निर्माण

ट्रेडिंग में तीन मुख्य मनोवैज्ञानिक भावनाएं आम हैं - लालच, भय और भाग्य। निवेशकों को विभिन्न चरणों में उपरोक्त तीन भावनाओं को नियंत्रित करने और उनका उपयोग करने के लिए एक मजबूत ट्रेडिंग मनोविज्ञान प्रणाली की आवश्यकता होती है।

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

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

संक्षेप

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

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

याद रखें, ट्रेडिंग में आत्मविश्वास आपकी हार्दिक मान्यता से आता है, और आत्मविश्वास सही ट्रेडिंग दर्शन से आता है!

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. क्या ट्रेंड ट्रेडिंग रणनीतियों में उच्च-अस्थिरता वाले उत्पादों या कम-अस्थिरता वाले उत्पादों का चयन करना चाहिए?
  2. ट्रेडिंग ऑर्डर के प्रकार क्या हैं?

अध्याय 2 मात्रात्मक उपकरणों का परिचय

2.1 मात्रात्मक उपकरणों का समग्र परिचय

सारांश

पिछले अध्याय में, हमने मात्रात्मक व्यापार की प्रासंगिक अवधारणाओं के बारे में सीखा और मात्रात्मक व्यापार की बुनियादी समझ हासिल की। तो फिर बाजार में मात्रात्मक व्यापार के लिए उपकरण क्या हैं? हमें अपनी आवश्यकताओं के अनुसार कैसे चयन करना चाहिए?

खुला स्रोत और वाणिज्यिक सॉफ्टवेयर
घरेलू मात्रात्मक व्यापार उपकरणों को आम तौर पर दो श्रेणियों में विभाजित किया जा सकता है: ओपन सोर्स सॉफ्टवेयर और वाणिज्यिक सॉफ्टवेयर। तथाकथित ओपन सोर्स सॉफ्टवेयर को ऐसे सॉफ्टवेयर के रूप में समझा जा सकता है जिसका स्रोत कोड खुला है और उपयोग के लिए सीधे डाउनलोड किया जा सकता है; वाणिज्यिक सॉफ्टवेयर से तात्पर्य आम तौर पर बंद स्रोत सॉफ्टवेयर से है, जिसका रखरखाव और संचालन वाणिज्यिक कंपनियों द्वारा किया जाता है, जिसके लिए आमतौर पर भुगतान किया जाता है।

ओपन सोर्स क्वांटिटेटिव सॉफ्टवेयर

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

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

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

व्यवसाय मात्रात्मक सॉफ्टवेयर

चीन में मात्रात्मक व्यापार के लिए दर्जनों वाणिज्यिक सॉफ्टवेयर हैं, जैसे: इंटरएक्टिव ब्रोकर, जो पेशेवर है, व्यापक है और इसमें कई उत्पाद हैं; एपीएएमए, जो विशाल समवर्ती डेटा को संभाल सकता है और उच्च आवृत्ति व्यापार के लिए उपयुक्त है; एसपीटी, जो सी++ इंटरफेस का समर्थन करता है और इसकी निष्पादन दक्षता अच्छी है; नगेट्स क्वांटिटेटिव, जो लेनदेन निष्पादन और जोखिम नियंत्रण पर केंद्रित है; और व्यक्तिगत व्यापारियों के लिए एमसी, टीबी, और एमक्यू। नीचे दिए गए चित्र में, हमने मुख्यधारा के घरेलू मात्रात्मक प्लेटफार्मों का व्यापक मूल्यांकन किया है और मात्रात्मक उपकरणों की कठिनाई का एक निश्चित वर्गीकरण भी किया है। पाठक अपनी वास्तविक स्थिति के अनुसार चयन कर सकते हैं।
img
चित्र 2-1 मुख्यधारा के घरेलू मात्रात्मक प्लेटफार्मों का व्यापक मूल्यांकन

यद्यपि उपरोक्त सभी वाणिज्यिक सॉफ्टवेयर हैं, फिर भी वे मानक प्रोग्रामिंग भाषाओं या स्क्रिप्टिंग भाषाओं का भी उपयोग करते हैं। ऐसा करने के बजाय, सीधे ओपन सोर्स सॉफ्टवेयर का उपयोग करना बेहतर है जो मुफ़्त और सुरक्षित हो। शुरुआती लोगों के लिए सीधे एफएमजेड इन्वेंटर क्वांटिटेटिव प्लेटफॉर्म का उपयोग करने की सिफारिश की जाती है, वेबसाइट www.fmz.com है। मात्रात्मक व्यापार सीखने के लिए एक कदम के रूप में।

मात्रात्मक ट्रेडिंग टूल के आविष्कारक से मिलें

आविष्कारक के मात्रात्मक उपकरण नौसिखियों के लिए अनुकूल हैं। भले ही आपके पास कोई बुनियादी ज्ञान न हो, फिर भी आप इसमें मौजूद उपकरणों के आधार पर मात्रात्मक विश्लेषण के आकर्षण का अनुभव कर सकते हैं। यह उपकरण उच्च आवृत्ति व्यापार के लिए डिज़ाइन किया गया है और इसमें प्रदर्शन और सुरक्षा संबंधी सख्त आवश्यकताएं हैं। उच्च आवृत्ति रणनीतियों, मध्यस्थता रणनीतियों और प्रवृत्ति रणनीतियों का समर्थन करें। और यह रणनीति विकास, परीक्षण, अनुकूलन, सिमुलेशन और वास्तविक व्यापार की पूरी प्रक्रिया को एकीकृत करता है। इसके अलावा, यह सरल और उपयोग में आसान माई भाषा और उन्नत मात्रात्मक ट्रेडिंग भाषाओं जैसे कि पायथन और सी ++ दोनों का समर्थन करता है, जिसका अर्थ है एक बार सीखने के बाद सहज स्विचिंग। और केवल वास्तविक ट्रेडिंग के लिए 0.125 युआन/घंटा शुल्क लिया जाता है, जो सीखने के चरण के दौरान आपके सॉफ्टवेयर की लागत को कम करता है। साथ ही, आप निःशुल्क सिम्युलेटेड ट्रेडिंग भी कर सकते हैं।

परिमाणीकरण की ओर पहला कदम: मात्रात्मक उपकरणों का उपयोग करना

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

img
चित्र 2-2 FMZ मात्रात्मक ट्रेडिंग प्लेटफॉर्म मुख्य पृष्ठ

मात्रात्मक उपकरणों की प्रोग्रामिंग के लिए एक केंद्रीकृत कार्य क्षेत्र होगा। कार्य क्षेत्र में मुख्य रूप से शामिल हैं (जैसा कि नीचे दिखाया गया है)। ऊपरी बाएं कोने में स्थित नियंत्रण केंद्र मात्रात्मक उपकरण का मुख्य कार्य है। इसे क्लिक करने के बाद, आप ट्रेडिंग रणनीतियां और रणनीति बैकटेस्टिंग लिख सकते हैं, ट्रेडिंग उत्पादों के लिए एक्सचेंज सेट कर सकते हैं, रणनीति रोबोट प्रबंधित करने के लिए कस्टोडियन बना सकते हैं और विशिष्ट मात्रात्मक ट्रेडिंग रोबोट बना सकते हैं। जहां तक ​​कार्यों के विशिष्ट उपयोग का प्रश्न है, हम आगामी लेखों में उनका विस्तार से परिचय देंगे। फिलहाल हम केवल प्रारंभिक कार्य कर रहे हैं।

img
चित्र 2-3 FMZ मात्रात्मक ट्रेडिंग प्लेटफॉर्म में लॉग इन करने के बाद प्रबंधन पृष्ठ

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

इसके अलावा, रणनीति संपादन इंटरफ़ेस में क्लासिक रणनीति नमूने भी कॉन्फ़िगर किए गए हैं। आप सीधे रणनीति कोड पर क्लिक करके उसका उपयोग कर सकते हैं, और संपूर्ण मात्रात्मक व्यापार की मूल प्रक्रिया का आसानी से अनुभव कर सकते हैं। यहां तक ​​कि नौसिखिए उपयोगकर्ता भी इसे तुरंत सीख सकते हैं और इसका पालन कर सकते हैं!

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

संक्षेप

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. मात्रात्मक व्यापार उपकरणों की दो प्रमुख श्रेणियां क्या हैं?
  2. सामान्यतः प्रयुक्त मात्रात्मक प्रोग्रामिंग भाषाएं कौन सी हैं?

2.2 इन्वेंटर क्वांटिटेटिव ट्रेडिंग सिस्टम को कैसे कॉन्फ़िगर करें

सारांश

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

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

एक्सचेंज जोड़ें

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

कमोडिटी फ्यूचर्स एक्सचेंज (लाइव) कॉन्फ़िगरेशन

हमारा वास्तविक समय मात्रात्मक व्यापार मुख्य रूप से घरेलू वायदा कारोबार उत्पादों पर केंद्रित है। वर्तमान में, इन्वेंटर क्वांटिटेटिव की मुख्य सेवा वस्तुएं भी घरेलू वायदा एक्सचेंज हैं। विदेशी मुद्रा व्यापार करने वाले दोस्तों के लिए, इन्वेंटर क्वांटिटेटिव को एक सीखने के मंच के रूप में इस्तेमाल किया जा सकता है, क्योंकि विदेशी मुद्रा मात्रात्मक व्यापार पहले से ही MT5 जैसे प्लेटफार्मों पर दिखाई दिया है, लेकिन यह अधिक पेशेवर है।

वास्तविक समय कॉन्फ़िगरेशन में जिन मुद्दों पर ध्यान देने की आवश्यकता है वे इस प्रकार हैं: चूंकि आविष्कारक के मात्रात्मक उपकरण कई व्यापारिक बाजारों का समर्थन करते हैं, कमोडिटी वायदा को कॉन्फ़िगर करते समय, आपको पहले चरण 1 में "पारंपरिक वायदा" का चयन करना होगा; चरण 2 में, आपको उस फ्यूचर्स कंपनी द्वारा दिया गया फ्यूचर्स खाता और पासवर्ड भरना होगा जहां आपने खाता खोला था।

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

कमोडिटी फ्यूचर्स एक्सचेंज (सिमुलेशन) कॉन्फ़िगरेशन

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

यहां हम SimNow सिम्युलेटेड ट्रेडिंग का उपयोग करने की सलाह देते हैं। सिमनाउ एक वित्तीय सिमुलेशन ट्रेडिंग प्लेटफॉर्म है जिसे विशेष रूप से निवेशकों के लिए शांगकी टेक्नोलॉजी द्वारा बनाया गया है। यह उत्पाद विभिन्न एक्सचेंजों के व्यापार और निपटान नियमों का अनुकरण करता है और वर्तमान में विभिन्न घरेलू वायदा एक्सचेंजों के कमोडिटी वायदा कारोबार का समर्थन करता है। विशिष्ट प्रक्रिया के लिए कृपया नीचे दिया गया चित्र देखें।
img
चित्र 2-6 लॉगिन के बाद FMZ मात्रात्मक ट्रेडिंग प्लेटफ़ॉर्म प्रबंधन पृष्ठ

रणनीति लेखन

रणनीति लाइब्रेरी वह जगह है जहां कोड संग्रहीत किए जाते हैं, जो हमारे मात्रात्मक ट्रेडिंग रणनीति गोदाम के बराबर है। यह मुख्य रूप से दो कार्यों में विभाजित है: रणनीति लेखन और सिमुलेशन बैकटेस्टिंग। रणनीति लेखन क्षेत्र भविष्य में रणनीति विकसित करने के लिए हमारा मुख्य कार्य क्षेत्र है (जैसा कि नीचे दिए गए चित्र में दिखाया गया है)। कई शुरुआती लोग अक्सर विभिन्न कोडों द्वारा अवरुद्ध हो जाते हैं और उन्हें यह बहुत मुश्किल लगता है। वास्तव में, यदि आप थोड़ा ध्यान दें तो आप इन कोडों को सीख सकते हैं। किसी भी प्रकार का मनोवैज्ञानिक बोझ न रखें। सिमुलेशन बैकटेस्टिंग क्षेत्र का उपयोग रणनीति विकास प्रक्रिया के दौरान रणनीतियों को डीबग करने के लिए, साथ ही रणनीति विकास पूरा होने के बाद रणनीतियों का परीक्षण करने के लिए किया जा सकता है। हम अगले अध्यायों में इस बारे में विस्तार से बताएंगे।
img
चित्र 2-7 नीति बनाने के चरण

मात्रात्मक ट्रेडिंग रोबोट बनाना

एक मात्रात्मक ट्रेडिंग रोबोट एक ट्रेडिंग रणनीति का निष्पादक है। एक बार रणनीति तैयार हो जाने के बाद, एक रोबोट बनाएं जो रणनीति कोड में प्रत्येक ट्रेडिंग तर्क को निष्पादित करने में स्वचालित रूप से आपकी मदद कर सके, साथ ही पोजीशन खोलने और बंद करने, ऑर्डर वापस लेने और अन्य खरीद और बिक्री संचालन में भी आपकी मदद कर सके। मात्रात्मक ट्रेडिंग रोबोट बनाने के लिए विशिष्ट चरण इस प्रकार हैं: पहला, चरण ①: नियंत्रण केंद्र पृष्ठ पर, "रोबोट" पर क्लिक करें, "रोबोट बनाएं" पर क्लिक करें चरण ②: रोबोट को एक कस्टम नाम दें। चरण 3: ट्रेडिंग प्लेटफॉर्म जोड़ने के लिए “+” चिह्न पर क्लिक करें। चरण 4: "रोबोट बनाएं" पर क्लिक करें
img
चित्र 2-8 रोबोट बनाने के चरण

संक्षेप

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. एक एक्सचेंज जोड़ने का प्रयास करें.
  2. इस अनुभाग में ट्रेडिंग रणनीति लिखने का प्रयास करें।

2.3 सामान्य API स्पष्टीकरण

सारांश

जब प्रोग्रामिंग की बात आती है तो हम API को नजरअंदाज नहीं कर सकते। कई गैर-आईटी लोगों के लिए एपीआई वास्तव में क्या है? एपीआई ≈ मुझे समझ नहीं आया. इस अनुभाग में, हम सरल भाषा में बताएंगे कि API क्या है और मात्रात्मक उपकरणों में आमतौर पर उपयोग किए जाने वाले API का परिचय देंगे।

एपीआई क्या है?

यदि आप ऑनलाइन खोज करेंगे, तो आपको निम्नलिखित परिणाम मिलेंगे: API (एप्लीकेशन प्रोग्रामिंग इंटरफ़ेस) पूर्वनिर्धारित कार्यों का एक सेट है, जिसका उद्देश्य अनुप्रयोगों और डेवलपर्स को स्रोत कोड तक पहुँच के बिना या आंतरिक कार्य प्रणाली के विवरण को समझे बिना कुछ सॉफ्टवेयर या हार्डवेयर पर आधारित रूटीन के एक सेट तक पहुंचने की क्षमता प्रदान करना है। तो, इसे और सरल भाषा में कहें तो, एपीआई वास्तव में क्या है?

वास्तव में, हमारे दैनिक जीवन में, APIs के समान कई परिदृश्य होते हैं। उदाहरण के लिए, जब आप किसी रेस्तरां में खाना खाने जाते हैं, तो आपको केवल मेनू देखना होता है और भोजन का ऑर्डर देना होता है, बिना यह जाने कि भोजन कैसे बनाया जाता है। मेनू में व्यंजन के नाम विशिष्ट API हैं, तथा मेनू API दस्तावेज़ है।

मात्रात्मक व्यापार में एपीआई क्या है?

यदि आपको आज मौजूदा उत्पाद का आरंभिक मूल्य जानने की आवश्यकता है, तो आपको यह जानने की आवश्यकता नहीं है कि इसे कैसे प्राप्त किया जाए। आपको बस कोड एडिटर में "OPEN" लिखना होगा और इसे सीधे उपयोग करना होगा। "ओपन" माई भाषा में प्रारंभिक मूल्य का एपीआई है।

सामान्यतः प्रयुक्त माई भाषा एपीआई

माई लैंग्वेज एपीआई को समझाने से पहले, आइए सामान्य कोड संरचना और इसके कार्यात्मक घटकों पर एक नज़र डालें। इससे आपको API को बेहतर ढंग से समझने में मदद मिलेगी। नीचे दिया गया उदाहरण देखें:
img
चित्र 2-9 माई भाषा का उदाहरण

जैसा कि ऊपर दिए गए कोड में दिखाया गया है:
बैंगनी AA एक परिवर्तनशील है। चर एक राशि है जो परिवर्तित हो सकती है, ठीक उसी तरह जैसे बीजगणित जो हमने जूनियर हाई स्कूल में सीखा था। यदि आरंभिक मूल्य AA को सौंपा गया है, तो AA आरंभिक मूल्य है; यदि उच्चतम मूल्य AA को सौंपा गया है, तो AA उच्चतम मूल्य है। बेशक, AA सिर्फ एक कस्टम नाम है, आप इसे BB के रूप में भी परिभाषित कर सकते हैं।

हरे रंग का “:=" का अर्थ है असाइनमेंट, जिसका अर्थ है “:=" के दाईं ओर के मान को बाईं ओर के वेरिएबल को असाइन करना।

नारंगी कोड इन्वेंटर क्वांटिटेटिव टूल का माई भाषा एपीआई है। ध्यान दें कि पहली पंक्ति में OPEN समापन मूल्य प्राप्त करने के लिए एपीआई है, जिसका सीधे उपयोग किया जा सकता है; दूसरी पंक्ति में MA मूविंग एवरेज प्राप्त करने के लिए API है, जिसके लिए दो पैरामीटर पास करने की आवश्यकता होती है, अर्थात, आपको इन्वेंटर क्वांटिटेटिव टूल को बताना होगा कि आपको किस प्रकार का मूविंग एवरेज चाहिए: यदि आप शुरुआती कीमत के आधार पर गणना की गई 50-अवधि की मूविंग एवरेज प्राप्त करना चाहते हैं, तो आप इसे इस प्रकार लिख सकते हैं: MA(OPEN,50); ध्यान दें कि दोनों पैरामीटर के बीच एक अंग्रेजी अल्पविराम है।

पीला “//” एक टिप्पणी प्रतीक है, और इसके पीछे नीले चीनी अक्षर टिप्पणी की सामग्री हैं। इन्हें आप स्वयं पढ़ सकते हैं, तथा इनका उपयोग यह बताने के लिए किया जाता है कि कोड की पंक्ति का क्या अर्थ है। जब प्रोग्राम चल रहा हो तो वह टिप्पणियों पर कार्रवाई नहीं करता। ध्यान दें कि टिप्पणी वर्ण से पहले, कोड की प्रत्येक पंक्ति के अंत में अंग्रेजी अर्धविराम होना चाहिए।

कोड संरचना की बुनियादी समझ के साथ, हम नीचे आपके लिए कुछ सामान्य रूप से उपयोग की जाने वाली भाषाओं को पेश करेंगे, और हम भविष्य में भी इन भाषाओं का अक्सर उपयोग करेंगे।
खुला——नवीनतम K-लाइन का आरंभिक मूल्य प्राप्त करें
उदाहरण: AA: =OPEN; नवीनतम K-लाइन का आरंभिक मूल्य प्राप्त करें और परिणाम को AA को सौंपें

उच्च——नवीनतम K-लाइन की उच्चतम कीमत प्राप्त करें
उदाहरण: AA: =उच्च; नवीनतम K-लाइन का उच्चतम मूल्य प्राप्त करें और परिणाम को AA को असाइन करें

कम——नवीनतम K-लाइन की सबसे कम कीमत प्राप्त करें
उदाहरण: एए: = कम; नवीनतम K-लाइन की सबसे कम कीमत प्राप्त करें और परिणाम को AA को असाइन करें

बंद करें——के-लाइन का नवीनतम समापन मूल्य प्राप्त करें। जब इंट्राडे के-लाइन समाप्त नहीं हुई हो, तो नवीनतम मूल्य प्राप्त करें
उदाहरण: AA: =CLOSE; नवीनतम K-लाइन का समापन मूल्य प्राप्त करें और परिणाम को AA को असाइन करें

VOL——नवीनतम K-लाइन लेनदेन वॉल्यूम प्राप्त करें
उदाहरण: AA: =VOL; नवीनतम K-लाइन लेनदेन वॉल्यूम प्राप्त करें और परिणाम को AA को असाइन करें

REF(X,N) - N चक्र पहले X के मान को संदर्भित करता है।
उदाहरण: REF(CLOSE,1); पिछली K-लाइन का आरंभिक मूल्य प्राप्त करें

MA(X,N)——N अवधियों में X का सरल चल औसत ज्ञात करें
उदाहरण: MA(CLOSE,10); // नवीनतम K-लाइन का 10-अवधि का मूविंग औसत प्राप्त करें

क्रॉसअप (A,B)——जब A नीचे से ऊपर तक B को पार करता है, तो यह 1 (हाँ) लौटाता है, अन्यथा यह 0 (नहीं) लौटाता है
उदाहरण: CROSSUP(CLOSE,MA(C,10)) // समापन मूल्य 10-अवधि औसत मूल्य को पार करता है

क्रॉसडाउन(A,B)——जब A ऊपर से B को पार करता है, तो यह 1 (हाँ) लौटाता है, अन्यथा यह 0 (नहीं) लौटाता है
उदाहरण: CROSSDOWN(CLOSE,MA(C,10)) // समापन मूल्य 10-अवधि औसत मूल्य से नीचे चला जाता है

बीके——शुरुआती स्थिति खरीदें
उदाहरण: CLOSE>MA(CLOSE,5),BK; // समापन मूल्य 5-अवधि चलती औसत से अधिक है, खरीद स्थिति

एसपी——स्थिति बंद करने के लिए बेचें
उदाहरण: CLOSE<MA(CLOSE,5),SP; // समापन मूल्य 5-अवधि चलती औसत से कम है, बेचें और स्थिति को बंद करें

एसके——शुरुआती स्थिति बेचें
उदाहरण: CLOSE<MA(CLOSE,5),SK; // समापन मूल्य 5-अवधि चलती औसत से कम है, बेचने की स्थिति

बीपी——खरीदकर बंद करें
उदाहरण: CLOSE>MA(CLOSE,5),BP; // समापन मूल्य 5-अवधि चलती औसत से अधिक है, खरीदें और बंद स्थिति

बीपीके——किसी पोजीशन को बंद करने के लिए खरीदें, और किसी पोजीशन को खोलने के लिए खरीदें (रिवर्स लॉन्ग पोजीशन)
उदाहरण: CLOSE>MA(CLOSE,5),BPK; // समापन मूल्य 5-अवधि चलती औसत से अधिक है, छोटी स्थिति को बंद करें और फिर एक नई स्थिति खोलने के लिए खरीदें।

एसपीके——स्थिति बंद करने के लिए बेचें और स्थिति खोलने के लिए बेचें (शॉर्ट सेलिंग)
उदाहरण: CLOSE<MA(CLOSE,5),SPK; // समापन मूल्य 5-अवधि चलती औसत से कम है, लंबी स्थिति को बंद करें और फिर खुली स्थिति को बेच दें।

क्लोजआउट——सभी स्थितियों को बंद करें, स्थिति वृद्धि और कमी मॉडल में उपयोग के लिए अनुशंसित। उदाहरण: क्लोजआउट; सभी दिशाओं में सभी स्थितियों को बंद करें।

सामान्यतः प्रयुक्त जावास्क्रिप्ट भाषा APIs

जावास्क्रिप्ट भाषा एपीआई को समझाने से पहले, आइए सामान्य कोड संरचना और इसके कार्यात्मक घटकों पर एक नज़र डालें। इससे आपको API को बेहतर ढंग से समझने में मदद मिलेगी। नीचे दिया गया उदाहरण देखें:
img
चित्र 2-10 जावास्क्रिप्ट कोड उदाहरण

जैसा कि ऊपर दिए गए कोड में दिखाया गया है:
जावास्क्रिप्ट भाषा में किसी चर का निर्माण करना अक्सर चर को "घोषित करना" कहलाता है। लाल कोड में, हम एक चर घोषित करने के लिए var कीवर्ड का उपयोग करते हैं, और चर का नाम नारंगी कोड में है: “aa”।

जावास्क्रिप्ट में, बराबर चिह्न का उपयोग मान निर्दिष्ट करने के लिए किया जाता है, अर्थात "=" के दाईं ओर का मान बाईं ओर के चर को निर्दिष्ट किया जाता है।
सियान कोड "एक्सचेंज" एक्सचेंज ऑब्जेक्ट है। यहां एक्सचेंज का तात्पर्य आपके द्वारा निर्धारित वायदा कंपनी से है। यह एक निश्चित प्रारूप है, जिसका अर्थ है कि जब आप जावास्क्रिप्ट भाषा एपीआई को कॉल करते हैं, तो आपको एक्सचेंज ऑब्जेक्ट निर्दिष्ट करना होगा।

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

उदाहरणों के माध्यम से कोड की मूल संरचना और सिद्धांतों को समझने के बाद, हम आपको कई जावास्क्रिप्ट भाषा एपीआई दिखाएंगे जिन्हें आप भविष्य में अक्सर उपयोग करेंगे।
SetContractType("उत्पाद कोड")——अनुबंध प्रकार सेट करें, अर्थात, आप किस उत्पाद का व्यापार करना चाहते हैं
उदाहरण: exchange.SetContractType("rb1905"); //लेनदेन प्रकार को "रीबार 1905 अनुबंध" पर सेट करें

GetTicker——टिक डेटा प्राप्त करें
उदाहरण: exchange.GetTicker(); //टिक डेटा प्राप्त करें

GetRecords——K-लाइन डेटा प्राप्त करें
उदाहरण: exchange.GetRecords(); //K-लाइन डेटा प्राप्त करें

खरीदना
उदाहरण: एक्सचेंज.बाय(5000, 1); //5000 युआन में एक लॉट खरीदें

खरीदने, बेचने
उदाहरण: एक्सचेंज.सेल(5000, 1); //एक लॉट 5,000 युआन में बेचें

GetAccount——खाते की जानकारी प्राप्त करें
उदाहरण: exchange.GetAccount(); //खाता जानकारी प्राप्त करें

GetPosition——स्थिति की जानकारी प्राप्त करें
उदाहरण: exchange.GetPosition(); //स्थिति की जानकारी प्राप्त करें

SetDirection——लंबे या छोटे ऑर्डर का प्रकार सेट करें
उदाहरण:
एक्सचेंज.सेटडायरेक्शन("खरीदें"); //लंबी स्थिति खोलने के लिए ऑर्डर प्रकार को खरीदने के लिए सेट करें
एक्सचेंज.सेटडायरेक्शन("क्लोजबाय"); //लंबी पोजीशन को बंद करने के लिए बेचने हेतु ऑर्डर प्रकार सेट करें
एक्सचेंज.सेटडायरेक्शन("बेचना"); //शॉर्ट पोजीशन खोलने के लिए बेचने हेतु ऑर्डर प्रकार सेट करें
एक्सचेंज.सेटडायरेक्शन("क्लोजसेल"); // शॉर्ट पोजीशन को बंद करने के लिए ऑर्डर प्रकार को खरीदने के लिए सेट करें

लॉग - लॉग में संदेश आउटपुट करें
उदाहरण: लॉग("हैलो, दुनिया"); // लॉग में "हैलो वर्ल्ड" आउटपुट करें

स्लीप - प्रोग्राम को कुछ समय के लिए रोक दें
उदाहरण: नींद(1000); //प्रोग्राम को 1 सेकंड के लिए रोकें

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

संक्षेप

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

गृहकार्य

  1. माई भाषा में एक कथन लिखने का प्रयास करें कि 5-अवधि चलती औसत 10-अवधि चलती औसत को पार करती है।
  2. अपनी खाता जानकारी प्राप्त करने के लिए जावास्क्रिप्ट में GetAccount का उपयोग करने का प्रयास करें, और लॉग का उपयोग करके इसे लॉग में प्रिंट करें।

अगला अनुभाग पूर्वावलोकन

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

2.4 इन्वेंटर क्वांटिटेटिव सिस्टम पर रणनीति कैसे लिखें

सारांश

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

तैयार करना

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

रणनीतिक विचार

पिछले अध्याय में, हमने मूविंग एवरेज से मूल्य को तोड़ने की रणनीति प्रस्तुत की थी। अर्थात: यदि कीमत पिछले 10 दिनों के औसत मूल्य से अधिक है, तो खरीदें; यदि कीमत पिछले 10 दिनों के औसत मूल्य से कम है, तो बेच दें। हालाँकि, हालांकि कीमत सीधे बाजार की स्थिति को प्रतिबिंबित कर सकती है, कई गलत सफलता संकेत होंगे; इसलिए हमें इस रणनीति को उन्नत और बेहतर बनाने की आवश्यकता है।

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

रणनीति तर्क

उपरोक्त रणनीतिक विचारों और सोच के साथ, हम रणनीति तर्क का निर्माण करने का प्रयास कर सकते हैं। यहाँ तर्क यह नहीं है कि आपसे आकाशीय गति के नियमों की गणना करने को कहा जाए; यह उतना जटिल नहीं है. यह पिछले रणनीतिक विचारों को शब्दों में व्यक्त करने के अलावा और कुछ नहीं है।

लंबी स्थिति खोलना: यदि कोई वर्तमान स्थिति नहीं है, और समापन मूल्य अल्पकालिक चलती औसत से अधिक है, और समापन मूल्य दीर्घकालिक चलती औसत से अधिक है, और अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से अधिक है, और दीर्घकालिक चलती औसत बढ़ रही है।

एक छोटी स्थिति खोलें: यदि कोई वर्तमान स्थिति नहीं है, और समापन मूल्य अल्पकालिक चलती औसत से कम है, और समापन मूल्य दीर्घकालिक चलती औसत से कम है, और अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से कम है, और दीर्घकालिक चलती औसत गिर रही है।

लंबी स्थिति समापनयदि आप वर्तमान में एक लंबा ऑर्डर रखते हैं और समापन मूल्य दीर्घकालिक चलती औसत से कम है, या अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से कम है, या दीर्घकालिक चलती औसत घट रही है।

लघु स्थिति समापनयदि आप वर्तमान में एक शॉर्ट ऑर्डर रखते हैं, और समापन मूल्य दीर्घकालिक चलती औसत से अधिक है, या अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से अधिक है, या दीर्घकालिक चलती औसत बढ़ रही है।

उपरोक्त संपूर्ण मात्रात्मक व्यापार रणनीति का तार्किक हिस्सा है। यदि हम रणनीति तर्क के पाठ संस्करण को कोड में परिवर्तित करते हैं, तो इसमें तीन चरण शामिल होंगे: बाजार की स्थिति प्राप्त करना, संकेतकों की गणना करना, और खरीद और बिक्री के आदेश देना।

भाषा रणनीति

पहला कदम बाजार की जानकारी प्राप्त करना है। इस मात्रात्मक व्यापार रणनीति में, हमें केवल समापन मूल्य प्राप्त करने की आवश्यकता है। माई भाषा में, समापन मूल्य प्राप्त करने के लिए एपीआई है: CLOSE. दूसरे शब्दों में, आपको नवीनतम K-लाइन का समापन मूल्य प्राप्त करने के लिए कोड में केवल CLOSE लिखना होगा।

इसके बाद गणना संकेतक आते हैं। इस मात्रात्मक व्यापार रणनीति में, हम कुल 2 तकनीकों का उपयोग करते हैं, अर्थात्: अल्पकालिक चलती औसत और दीर्घकालिक चलती औसत। हम मानते हैं कि अल्पकालिक चलती औसत 10-अवधि चलती औसत है और दीर्घकालिक चलती औसत 50-अवधि चलती औसत है। तो फिर हम 10-अवधि चलती औसत और 50-अवधि चलती औसत को दर्शाने के लिए कोड का उपयोग कैसे करते हैं? कृपया निम्नलिखित चित्र देखें:
img
चित्र 2-11 माई भाषा रणनीति कोड

मैनुअल ट्रेडिंग में, हम एक नज़र में देख सकते हैं कि 50-अवधि की चलती औसत बढ़ रही है या गिर रही है, लेकिन हम इसे कोड में कैसे व्यक्त करेंगे? इस बारे में ध्यान से सोचें, यह निर्धारित करने के लिए कि क्या चलती औसत बढ़ रही है, क्या ऐसा नहीं है कि वर्तमान K-लाइन का 50-अवधि चलती औसत मूल्य पिछली K-लाइन के 50-अवधि चलती औसत मूल्य से अधिक है, और पिछली K-लाइन का 50-अवधि चलती औसत मूल्य पिछली K-लाइन के 50-अवधि चलती औसत मूल्य से अधिक है? इसका विपरीत सत्य है, जिसका अर्थ है कि चलती औसत गिर रही है। अतः कोड में यह इस प्रकार होना चाहिए:
img
चित्र 2-12 माई भाषा निर्णय मूविंग एवरेज कोड

उपरोक्त चित्र में पंक्ति 8 और 9 में गुलाबी-लाल कोड “AND” पर ध्यान दें। माई भाषा में इसका अर्थ “और” होता है। उदाहरण के लिए, 9वीं पंक्ति का चीनी में अनुवाद इस प्रकार किया गया है: यदि वर्तमान K-लाइन का 50-अवधि का चलती औसत पिछली K-लाइन के 50-अवधि के चलती औसत से अधिक है, और पिछली K-लाइन का 50-अवधि का चलती औसत पिछली K-लाइन के 50-अवधि के चलती औसत से अधिक है, तो मान की गणना "हां" के रूप में की जाती है; अन्यथा, मान की गणना "नहीं" के रूप में की जाती है और परिणाम "MA50_ISUP" को निर्दिष्ट किया जाता है।

अंतिम चरण खरीद और बिक्री का आदेश देना है। आपको खरीद और बिक्री संचालन को निष्पादित करने के लिए खरीद और बिक्री तर्क कोड के बाद केवल आविष्कारक के मात्रात्मक उपकरण के ऑर्डर एपीआई को कॉल करने की आवश्यकता है। कृपया निम्नलिखित चित्र देखें:
img
चित्र 2-13 माई भाषा क्रय और विक्रय लेनदेन कोड

उपरोक्त चित्र में पंक्ति 13 और 14 में गुलाबी-लाल कोड “OR” पर ध्यान दें। माई भाषा में इसका अर्थ “या” होता है। उदाहरण के लिए, पंक्ति 13 का चीनी में अनुवाद इस प्रकार है: यदि वर्तमान K-लाइन का समापन मूल्य वर्तमान K-लाइन के 50-अवधि के चलती औसत से कम है, या वर्तमान K-लाइन का 10-अवधि का चलती औसत वर्तमान K-लाइन के 50-अवधि के चलती औसत से कम है, तो मूल्य की गणना "हां" के रूप में की जाती है और तुरंत एक ऑर्डर दिया जाता है; अन्यथा, इसे "नहीं" के रूप में गणना की जाती है और कुछ भी नहीं किया जाता है।

कृपया ध्यान दें: "AND" और "OR" Mai भाषा में तार्किक ऑपरेटर हैं:
"और" का अर्थ है कि जब सभी शर्तें "हाँ" हों, तो अंतिम शर्त "हाँ" होगी;
"या" का अर्थ है कि सभी शर्तों में से, जब तक कि कोई एक शर्त "हाँ" हो, अंतिम शर्त "हाँ" होगी।

संक्षेप

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

गृहकार्य

  1. इस अनुभाग में दी गई रणनीतियों को स्वयं लागू करने का प्रयास करें।
  2. इस अनुभाग में दी गई रणनीति के आधार पर, स्टॉप-प्रॉफिट और स्टॉप-लॉस फ़ंक्शन जोड़ें।

अगला अनुभाग पूर्वावलोकन

मात्रात्मक व्यापार रणनीतियों के विकास में, प्रोग्रामिंग भाषाएं हथियार और उपकरण की तरह हैं। एक अच्छी प्रोग्रामिंग भाषा आपको आधे प्रयास से दोगुना परिणाम प्राप्त करने में मदद कर सकती है। उदाहरण के लिए, मात्रात्मक व्यापार उद्योग में एक दर्जन से अधिक सबसे अधिक इस्तेमाल की जाने वाली भाषाएं हैं, जिनमें पायथन, सी ++, जावा, सी #, ईज़ीलैंग्वेज, माई लैंग्वेज आदि शामिल हैं। युद्ध के मैदान में जाने के लिए मुझे कौन सा हथियार चुनना चाहिए? अगले भाग में हम इन सामान्य प्रोग्रामिंग भाषाओं और प्रत्येक प्रोग्रामिंग भाषा की विशेषताओं का परिचय देंगे।

अध्याय 3 ट्रेडिंग रणनीतियों को लागू करने के लिए सरल प्रोग्रामिंग भाषा

3.1 मात्रात्मक ट्रेडिंग प्रोग्रामिंग भाषाओं का क्षैतिज मूल्यांकन

सारांश

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

प्रोग्रामिंग भाषा क्या है?

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

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

यदि आप कंप्यूटर स्क्रीन पर "हैलो वर्ल्ड" प्रदर्शित करने के लिए प्रोग्रामिंग भाषा का उपयोग करते हैं, तो यह इस तरह दिखाई देगा:
सी भाषा: puts("हैलो वर्ल्ड");
जावा भाषा: System.out.println("Hello World");
पायथन भाषा: print("Hello World")
हम देख सकते हैं कि कंप्यूटर भाषाओं के अपने विशिष्ट नियम होते हैं, और भाषाएँ अनेक होती हैं। ये भाषा नियम प्रोग्रामिंग भाषा वर्गीकरण हैं जिन्हें हमें आज आपको समझाना है। प्रत्येक वर्गीकरण में, हमें केवल सबसे बुनियादी और आमतौर पर उपयोग किए जाने वाले नियमों को याद रखने की आवश्यकता होती है, और हम इन प्रोग्रामिंग भाषाओं का उपयोग कंप्यूटरों के साथ संवाद करने के लिए कर सकते हैं और कंप्यूटरों को हमारे निर्देशों के अनुसार संबंधित रणनीतियों को चलाने दे सकते हैं।

प्रोग्रामिंग भाषा वर्गीकरण

आपके संदर्भ और तुलना को सुविधाजनक बनाने के लिए, और आपके लिए उपयुक्त मात्रात्मक ट्रेडिंग प्रोग्रामिंग भाषा का चयन करने के लिए, हम छह सबसे अधिक इस्तेमाल की जाने वाली प्रोग्रामिंग भाषाओं को वर्गीकृत करेंगे, अर्थात् पायथन, मैटलैब / आर, सी ++, जावा / सी #, ईज़ीलैंग्वेज और विज़ुअल लैंग्वेज (जैसा कि नीचे दिखाया गया है)।
img
चित्र 3-1 प्रोग्रामिंग भाषा मूल्यांकन

हमने उन्हें उनके कार्यात्मक दायरे, दौड़ने की गति, मापनीयता और सीखने की कठिनाई के आधार पर रेटिंग दी। स्कोर 1 से 5 के बीच होता है। उदाहरण के लिए, कार्यात्मक सीमा के संदर्भ में 5 का स्कोर का अर्थ है कि कार्य शक्तिशाली है, और 1 का स्कोर का अर्थ है कि कार्य कम शक्तिशाली है। (जैसा कि ऊपर दिखाया गया है) विज़ुअल भाषा और ईज़ीलैंग्वेज सीखना आसान है और शुरुआती लोगों के लिए बहुत उपयुक्त हैं; पायथन शक्तिशाली है और इसमें मजबूत विस्तार क्षमताएं हैं, जो इसे अधिक जटिल व्यापारिक रणनीतियों को विकसित करने के लिए उपयुक्त बनाती हैं; C++ की ट्रेडिंग गति अधिक है और यह उच्च आवृत्ति वाले व्यापारियों के लिए अधिक उपयुक्त है।

हालाँकि, प्रत्येक प्रोग्रामिंग भाषा का मूल्यांकन मुख्य रूप से मात्रात्मक व्यापार के क्षेत्र में इसके अनुप्रयोग पर केंद्रित होता है और इसमें व्यक्तिगत व्यक्तिपरक तत्व शामिल होते हैं। आप टिप्पणी अनुभाग में आलोचना करने या चर्चा के लिए अपने विचार रखने के लिए भी स्वागत योग्य हैं। आगे, हम एक-एक करके इन प्रोग्रामिंग भाषाओं का परिचय देना शुरू करेंगे।

दृश्य भाषा

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

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

चूंकि इस दृश्य भाषा की अंतर्निहित कार्यान्वयन रणनीति C++ में परिवर्तित की गई है, इसलिए इसका प्रोग्राम की गति पर बहुत कम प्रभाव पड़ता है। हालाँकि, इसकी कार्यक्षमता और मापनीयता अपेक्षाकृत कमजोर है, और अत्यधिक जटिल या परिष्कृत व्यापारिक रणनीतियों को विकसित करना संभव नहीं है।

आसान भाषा

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

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

Python

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

पायथन की बुनियादी डेटा संरचनाएं, सूचियाँ और शब्दकोश, बहुत शक्तिशाली हैं और मूल रूप से डेटा प्रतिनिधित्व की जरूरतों को पूरा कर सकते हैं। यदि आपको अधिक तीव्र और व्यापक डेटा संरचना की आवश्यकता है, तो NumPy और SciPy का उपयोग करने की अनुशंसा की जाती है। इन दोनों पुस्तकालयों को मूलतः पायथन वैज्ञानिक कंप्यूटिंग के लिए मानक पुस्तकालय कहा जाता है।

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

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

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

Matlab/R

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

इसके अलावा, उनकी चलने की गति और मापनीयता अपेक्षाकृत खराब है क्योंकि मैटलैब और आर अद्वितीय भाषा वर्चुअल मशीनों पर चलते हैं। प्रदर्शन के मामले में, उनकी वर्चुअल मशीनें जावा और सी# से भी बहुत खराब हैं। लेकिन क्योंकि उनका वाक्यविन्यास गणितीय अभिव्यक्तियों के करीब है, इसलिए उन्हें सीखना अपेक्षाकृत आसान है।

C++

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

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

Java/C#

जावा/सी# दोनों स्थिर भाषाएं हैं जो वर्चुअल मशीनों पर चलती हैं। सी ++ की तुलना में, कोई सरणी आउट-ऑफ-बाउंड्स त्रुटि नहीं है, कोई कोरडंप नहीं है, फेंके गए अपवाद त्रुटि कोड के स्थान का सटीक रूप से पता लगा सकते हैं, इसमें एक अंतर्निहित कचरा संग्रह तंत्र है, मेमोरी लीक आदि के बारे में चिंता करने की कोई आवश्यकता नहीं है। इसलिए, वाक्यविन्यास सीखने की कठिनाई के संदर्भ में, वे सी ++ की तुलना में भी आसान हैं। चलने की गति के संदर्भ में, चूंकि उनकी सभी वर्चुअल मशीनों में रनटाइम संकलन के लिए अपना स्वयं का JIT फ़ंक्शन होता है, इसलिए उनकी गति C++ के बाद दूसरे स्थान पर है।

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

संक्षेप

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

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

गृहकार्य

  1. मात्रात्मक व्यापार के लिए पायथन भाषा के क्या लाभ हैं?
  2. आविष्कारक की माई भाषा का उपयोग करके कुछ सामान्य रूप से प्रयुक्त एपीआई लिखने का प्रयास करें?

अगला अनुभाग पूर्वावलोकन

मेरा मानना ​​है कि प्रोग्रामिंग भाषाओं के उपरोक्त परिचय से आपको पता चल गया होगा कि कैसे चयन करना है। अगले कुछ अध्यायों में, हम प्रोग्रामिंग भाषाओं के वर्गीकरण के अनुसार लक्षित तरीके से मात्रात्मक ट्रेडिंग रणनीति विकास सीखेंगे।

3.2 माई भाषा के लिए त्वरित आरंभ गाइड

सारांश

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

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

पूरी रणनीति

इस अनुभाग के मुख्य ज्ञान को शीघ्रता से समझने में आपकी सहायता करने के लिए, इन्वेंटर क्वांटिटेटिव माइक्रोवेव लैंग्वेज क्विक स्टार्ट को प्रस्तुत करने से पहले, आपको इस अनुभाग की अवधारणाओं की प्रारंभिक समझ होनी चाहिए। हम अभी भी दीर्घकालिक 50-दिवसीय चलती औसत और अल्पकालिक 10-दिवसीय चलती औसत को बुनियादी मामलों के रूप में उपयोग करते हैं और पिछले अध्याय में उल्लिखित संपूर्ण रणनीति मामले की समीक्षा करते हैं:

लंबी स्थिति खोलना: यदि कोई वर्तमान स्थिति नहीं है, और समापन मूल्य अल्पकालिक चलती औसत से अधिक है, और समापन मूल्य दीर्घकालिक चलती औसत से अधिक है, और अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से अधिक है, और दीर्घकालिक चलती औसत बढ़ रही है।

एक छोटी स्थिति खोलें: यदि कोई वर्तमान स्थिति नहीं है, और समापन मूल्य अल्पकालिक चलती औसत से कम है, और समापन मूल्य दीर्घकालिक चलती औसत से कम है, और अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से कम है, और दीर्घकालिक चलती औसत गिर रही है।

लंबी स्थिति समापनयदि आप वर्तमान में एक लंबा ऑर्डर रखते हैं और समापन मूल्य दीर्घकालिक चलती औसत से कम है, या अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से कम है, या दीर्घकालिक चलती औसत घट रही है।

लघु स्थिति समापनयदि आप वर्तमान में एक शॉर्ट ऑर्डर रखते हैं, और समापन मूल्य दीर्घकालिक चलती औसत से अधिक है, या अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से अधिक है, या दीर्घकालिक चलती औसत बढ़ रही है।

यदि इसे माई भाषा कोड में लिखा जाए तो यह कुछ इस प्रकार दिखेगा:
img
चित्र 3-3 माई भाषा का पूर्ण उदाहरण

एक पूर्ण मात्रात्मक व्यापार रणनीति लिखने के लिए, आमतौर पर कई चरणों की आवश्यकता होती है: डेटा अधिग्रहण, डेटा गणना, तार्किक गणना, ऑर्डर प्लेसमेंट, आदि। जैसा कि ऊपर दिए गए आंकड़े में दिखाया गया है, पूरे कोड में, बुनियादी डेटा प्राप्त करने के लिए केवल एक एपीआई का उपयोग किया जाता है, जो पहली और दूसरी पंक्तियों में "बंद" है; फिर पहली से नौवीं पंक्तियाँ डेटा गणना भाग हैं; और अंत में ग्यारहवीं से चौदहवीं पंक्तियाँ तर्क गणना और ऑर्डर प्लेसमेंट भाग हैं।

कृपया ध्यान दें कि बैंगनी कोड एक चर है; पहली से नौवीं पंक्तियों में, हरा ":=" एक असाइनमेंट ऑपरेटर है, और असाइनमेंट ऑपरेटर के दाईं ओर का डेटा गणना के बाद बाईं ओर के वेरिएबल को असाइन किया जाता है; नारंगी कोड एपीआई है, उदाहरण के लिए, पहली पंक्ति में, एमए (मूविंग एवरेज) को कॉल करने के लिए दो मापदंडों को पास करना आवश्यक है, जिसे सेटिंग्स के रूप में समझा जा सकता है, अर्थात, एमए को कॉल करते समय, आपको एमए का प्रकार सेट करना होगा; गुलाबी-लाल "AND" और "OR" तार्किक ऑपरेटर हैं, जिनका उपयोग मुख्य रूप से कई तार्किक गणनाओं आदि को जोड़ने के लिए किया जाता है। उपरोक्त बुनियादी ज्ञान अवधारणाओं के साथ, आइए माई भाषा की विस्तृत मूल बातें सीखना शुरू करें।

मूल डेटा

बुनियादी डेटा (प्रारंभिक मूल्य, उच्चतम मूल्य, निम्नतम मूल्य, समापन मूल्य, ट्रेडिंग मात्रा) मात्रात्मक व्यापार का एक अनिवार्य हिस्सा है। रणनीति में नवीनतम बुनियादी डेटा प्राप्त करने के लिए, आपको केवल आविष्कारक के मात्रात्मक उपकरण के एपीआई को कॉल करने की आवश्यकता है। यदि आप ऐतिहासिक बुनियादी डेटा प्राप्त करना चाहते हैं, तो आप "REF" का उपयोग कर सकते हैं, जैसे: REF (CLOSE, 1) कल का समापन मूल्य प्राप्त करने के लिए है।

चर

चर एक संख्या है जिसे बदला जा सकता है। किसी चर का नाम एक कोड के रूप में समझा जा सकता है। इसका नामकरण चीनी अक्षरों, अक्षरों, संख्याओं और डैश का समर्थन करता है, लेकिन लंबाई 31 अक्षरों के भीतर नियंत्रित की जानी चाहिए। चर नामों को एक दूसरे के साथ, पैरामीटर नामों या फ़ंक्शन नामों (एपीआई) के साथ दोहराया नहीं जा सकता है, और प्रत्येक कथन को अर्धविराम के साथ समाप्त होना चाहिए। यदि आप लिखने के बाद अपनी भाषा की टिप्पणियाँ जोड़ना चाहते हैं, तो अंत में “//” का प्रयोग करें। इसे अर्ध-चौड़ाई इनपुट विधि के अपरकेस मोड में लिखा जाना चाहिए। जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 3-4 माई भाषा डेटा प्रकार

परिवर्तनीय असाइनमेंट

वेरिएबल असाइनमेंट का अर्थ है असाइनमेंट ऑपरेटर के दाईं ओर के मान को बाईं ओर के वेरिएबल को असाइन करना। 4 प्रकार के असाइनमेंट ऑपरेटर हैं, जो यह नियंत्रित कर सकते हैं कि चार्ट पर मान प्रदर्शित किया जाए या नहीं और प्रदर्शन स्थिति को परिभाषित कर सकते हैं। नीचे दिए गए चित्र में हरे फ़ॉन्ट असाइनमेंट ऑपरेटर हैं, अर्थात् “:”, “:=", “^^”, और “..”। चित्र में कोड टिप्पणियाँ उनके अर्थ को विस्तार से समझाती हैं।
img
चित्र 3-5 माई भाषा चर असाइनमेंट

डेटा प्रकार

माई भाषा में, कई डेटा प्रकार हैं, जिनमें से सबसे अधिक इस्तेमाल किए जाने वाले संख्यात्मक प्रकार, स्ट्रिंग प्रकार और बूलियन प्रकार हैं। संख्यात्मक प्रकार संख्याएँ हैं, जिनमें पूर्णांक, दशमलव, धनात्मक और ऋणात्मक संख्याएँ आदि शामिल हैं, जैसे: 1, 2, 3, 1.1234, 2.23456...; स्ट्रिंग प्रकारों को टेक्स्ट, चीनी, अंग्रेजी के रूप में समझा जा सकता है, और संख्याएं सभी स्ट्रिंग हो सकती हैं, जैसे: 'आविष्कारक परिमाणीकरण', 'क्लोजप्राइस', '6000', और स्ट्रिंग प्रकारों को अंग्रेजी अर्धविराम में लपेटा जाना चाहिए; बूलियन प्रकार सबसे सरल है, इसमें केवल दो मान हैं "हां" और "नहीं", जैसे: 1 "हां" के लिए सत्य का प्रतिनिधित्व करता है, और 0 "नहीं" के लिए गलत का प्रतिनिधित्व करता है।

संबंध ऑपरेटर

संबंधपरक ऑपरेटर, जैसा कि नाम से पता चलता है, दो मानों के बीच संबंध की तुलना करने के लिए उपयोग किए जाने वाले ऑपरेटर हैं। वे बराबर, अधिक, कम, अधिक या बराबर, कम या बराबर, तथा बराबर नहीं हैं, जैसा कि नीचे दिखाया गया है:
img
चित्र 3-6 माई भाषा ऑपरेटर

लॉजिक ऑपरेटर

तार्किक संक्रियाएँ अलग-अलग बूलियन कथनों को एक पूरे में जोड़ सकती हैं। इनमें सबसे अधिक प्रयोग होने वाले शब्द हैं "AND" और "OR"। मान लीजिए कि दो बूलियन प्रकार के मान हैं, अर्थात् "समापन मूल्य प्रारंभिक मूल्य से अधिक है" और "समापन मूल्य चलती औसत से अधिक है", हम उन्हें एक बूलियन मान में संयोजित कर सकते हैं, जैसे: "समापन मूल्य प्रारंभिक मूल्य से अधिक है और (और) समापन मूल्य चलती औसत से अधिक है", "समापन मूल्य प्रारंभिक मूल्य से अधिक है या (या) समापन मूल्य चलती औसत से अधिक है"।
img
चित्र 3-7 माई भाषा का तार्किक संचालन

सभी ध्यान दें:
"और" का अर्थ है कि जब सभी शर्तें "हाँ" हों, तो अंतिम शर्त "हाँ" होगी;
"या" का अर्थ है कि सभी शर्तों में से, जब तक कि कोई एक शर्त "हाँ" हो, अंतिम शर्त "हाँ" होगी।
“AND” को “&&” लिखा जा सकता है और “OR” को “||” लिखा जा सकता है।

अंकगणित ऑपरेटर

माई भाषा में सामान्यतः प्रयुक्त अंकगणितीय ऑपरेटर ("+", "-",*”, “/”) प्राथमिक विद्यालय में सीखे गए गणित से अलग नहीं है, जैसा कि नीचे दिखाया गया है:
img
चित्र 3-8 माई भाषा में अंकगणितीय संक्रियाएँ

प्राथमिकता

यदि कोई 100 है*अभिव्यक्ति (10-1)/(10+5) के लिए, प्रोग्राम पहले कौन सा चरण गणना करता है? मिडिल स्कूल गणित हमें बताता है: ① यदि यह समान स्तर का ऑपरेशन है, तो इसे आम तौर पर बाएं से दाएं की ओर गणना की जाती है। ② यदि जोड़ और घटाव के साथ-साथ गुणा और भाग दोनों हों, तो पहले गुणा और भाग की गणना करें, फिर जोड़ और घटाव की। ③यदि कोष्ठक हैं, तो पहले कोष्ठक की सामग्री की गणना करें। ④ यदि यह परिचालन नियमों के अनुरूप है, तो परिचालन नियमों का उपयोग गणना को सरल बनाने के लिए किया जा सकता है। माई भाषा की प्राथमिकता नीचे दर्शाई गई है:
img
चित्र 3-9 माई भाषा में अंकगणितीय संक्रियाओं की प्राथमिकता

निष्पादन मोड

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

इंट्राडे रणनीतियाँ

यदि यह एक इंट्राडे रणनीति है, तो जब आपको ट्रेडिंग दिवस के अंत में स्थिति को बंद करने की आवश्यकता होती है, तो आपको "TIME" टाइम फ़ंक्शन का उपयोग करना होगा। यह फ़ंक्शन चार अंकों के रूप में प्रदर्शित होता है जब यह दूसरी अवधि से ऊपर और दिन की अवधि से नीचे होता है, अर्थात: HHMM (1450-14:50)। नोट: ट्रेडिंग के अंत में किसी पोजीशन को बंद करने के लिए TIME फ़ंक्शन का उपयोग करते समय, यह अनुशंसा की जाती है कि ओपनिंग स्थिति की भी एक संगत समय सीमा हो। जैसा कि नीचे दिया गया है:
img
चित्र 3-10 माइक्रोफ़ोन भाषा समय फ़ंक्शन

मॉडल वर्गीकरण

img
चित्र 3-11 माई भाषा मॉडल का वर्गीकरण

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

संक्षेप

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. बुनियादी डेटा प्राप्त करने के लिए माई भाषा में एपीआई लिखने के लिए इन्वेंटर क्वांटिटेटिव टूल का उपयोग करने का प्रयास करें।
  2. चार्ट में चर असाइनमेंट प्रदर्शित करने के तरीके क्या हैं?

3.3 माई भाषा में रणनीतियों को कैसे लागू करें

सारांश

पिछले लेख में, हमने माई भाषा परिचय, बुनियादी वाक्यविन्यास, मॉडल निष्पादन विधि, मॉडल वर्गीकरण आदि के पहलुओं से ट्रेडिंग रणनीतियों को लागू करने के आधार को समझाया। इस लेख में, हम पिछले लेख की सामग्री को जारी रखेंगे और आपको आमतौर पर उपयोग किए जाने वाले रणनीति मॉड्यूल और तकनीकी संकेतकों से कदम से कदम एक व्यवहार्य इंट्राडे मात्रात्मक ट्रेडिंग रणनीति का एहसास करने में मदद करेंगे।

नीति मॉड्यूल

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

चरण वृद्धि

चरण वृद्धि की गणना वर्तमान K-लाइन के समापन मूल्य और पिछले N अवधियों के समापन मूल्य के बीच अंतर के प्रतिशत की गणना करके की जाती है। उदाहरण के लिए, अंतिम 10 K-लाइन अवधियों की वृद्धि की गणना करने के लिए, कोड इस प्रकार लिखा जा सकता है:
img
चित्र 3-12 माई भाषा चरण विकास

नई ऊंचाइयां

नया उच्च स्तर निर्धारित करने के लिए, हमें यह गणना करने की आवश्यकता है कि क्या वर्तमान K-लाइन, N अवधियों में उच्चतम मूल्य से अधिक है। उदाहरण के लिए, यह गणना करने के लिए कि क्या वर्तमान K-लाइन अंतिम 10 K-लाइनों में से उच्चतम मूल्य से अधिक है, कोड को इस प्रकार लिखा जा सकता है:
img
चित्र 3-13 माई भाषा ने नई ऊंचाई हासिल की

बड़ी मात्रा में उछाल

बड़े पैमाने पर ऊपर की ओर हमले को बढ़ती कीमतों और व्यापार की मात्रा में तेज वृद्धि के रूप में समझा जा सकता है। उदाहरण के लिए: यदि किसी K-लाइन का समापन मूल्य पिछली 10 K-लाइनों के समापन मूल्य का 1.5 गुना है, तो इसका मतलब है कि 10 दिनों में इसमें 50% की वृद्धि हुई है; ट्रेडिंग वॉल्यूम पिछले 10 K-लाइनों के औसत से 5 गुना अधिक है। इसे कोड में इस प्रकार लिखा जा सकता है:
img
चित्र 3-14 माईयुयु का आयतन बढ़ता है

संकीर्ण परिष्करण

संकीर्ण सीमा समेकन का अर्थ है कि कीमतें हाल की अवधि में एक निश्चित सीमा के भीतर बनी रहती हैं। उदाहरण के लिए: यदि 10 अवधियों के भीतर उच्चतम मूल्य और 10 अवधियों के भीतर निम्नतम मूल्य के बीच का अंतर, वर्तमान K-लाइन के समापन मूल्य से विभाजित किया जाता है, तो लगभग 0.05 से कम है। इसे कोड में इस प्रकार लिखा जा सकता है:
img
चित्र 3-15 गेहूँ की भाषा की संकीर्ण सीमा

चलती औसत तेजी व्यवस्था

चलती औसत की तेजी व्यवस्था को तेजी व्यवस्था और मंदी व्यवस्था में विभाजित किया गया है। के-लाइन 5-10-20-30-60 मूविंग एवरेज के नीचे समर्थन के साथ ऊपर की ओर व्यवस्थित है, जो एक तेजी वाली व्यवस्था है। तेजी व्यवस्था का मतलब है कि बाजार का रुझान एक मजबूत ऊपर की ओर रुझान है। इसे कोड में इस प्रकार लिखा जा सकता है:
img
चित्र 3-16 माई भाषा मूविंग एवरेज बुलिश व्यवस्था

पिछले उच्चतम स्तर और उनके स्थान

पिछले उच्च बिंदु और इस उच्च बिंदु के स्थान को प्राप्त करने के लिए, आप इसे इन्वेंटर क्वांटिटेटिव टूल के एपीआई के माध्यम से सीधे प्राप्त कर सकते हैं। इसे कोड में लिखा जा सकता है:
img
चित्र 3-17 माई भाषा का पिछला उच्च बिंदु

अंतर

गैप वह स्थिति है जहां दो K-लाइनों की उच्चतम और निम्नतम कीमतें आपस में जुड़ी नहीं होती हैं। यह दो K-लाइनों से बना है। यह अंतर भविष्य के समर्थन और दबाव बिंदुओं के लिए संदर्भ मूल्य है। जब अंतराल उत्पन्न होता है, तो यह माना जा सकता है कि मूल अंतराल की दिशा में प्रवृत्ति में तेजी आनी शुरू हो गई है। इसे कोड में लिखा जा सकता है:
img
चित्र 3-18 माई भाषा अंतराल

सामान्य तकनीकी संकेतक

औसत चलन

img
चित्र 3-19 मूविंग एवरेज चार्ट

सांख्यिकीय दृष्टिकोण से, चल औसत दैनिक मूल्यों का अंकगणितीय औसत है, और यह एक प्रवृत्ति के साथ मूल्य प्रक्षेप पथ है। चलती औसत प्रणाली एक तकनीकी उपकरण है जिसका उपयोग आमतौर पर अधिकांश विश्लेषकों द्वारा किया जाता है। तकनीकी दृष्टिकोण से, यह एक ऐसा कारक है जो तकनीकी विश्लेषकों के मनोवैज्ञानिक मूल्य और खरीद और बिक्री के निर्णय लेने वाले कारक को प्रभावित करता है। यह तकनीकी विश्लेषकों के लिए एक अच्छा संदर्भ उपकरण है। आविष्कारक का मात्रात्मक उपकरण कई अलग-अलग प्रकार के चलती औसत का समर्थन करता है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 3-20 माई भाषा के विभिन्न संकेतकों की गणना

बोल चैनल

img
चित्र 3-21 BOLL चैनल आरेख

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

सभी तकनीकी संकेतकों में, बीओएलएल की गणना पद्धति सबसे जटिल है, जो सांख्यिकी में मानक विचलन की अवधारणा को प्रस्तुत करती है और इसमें मध्य रेखा (एमबी), ऊपरी रेखा (यूपी) और निचली रेखा (डीएन) की गणना शामिल होती है। गणना पद्धति इस प्रकार है:
img
चित्र 3-22 माई भाषा बोलिंगर बैंड गणना

एमएसीडी सूचक

img
चित्र 3-23 MACD सूचक

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

img
चित्र 3-24 माई भाषा का एमएसीडी सूचक

उपरोक्त मात्रात्मक व्यापार रणनीतियों को विकसित करने में अधिक सामान्यतः उपयोग किए जाने वाले रणनीति मॉड्यूल हैं। बेशक, ये इनसे कहीं अधिक हैं। उपरोक्त मॉड्यूल उदाहरणों के माध्यम से, आप अपने व्यक्तिपरक व्यापार में सबसे अधिक उपयोग किए जाने वाले कई ट्रेडिंग मॉड्यूल को भी लागू कर सकते हैं। सभी विधियां सार्वभौमिक हैं। इसके बाद, हम एक व्यवहार्य इंट्राडे मात्रात्मक ट्रेडिंग रणनीति लिखना शुरू करेंगे।

रणनीति लेखन

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

रणनीति तर्क

बाजार खुलने के 30 मिनट बाद बाजार में प्रवेश करने के लिए तैयार रहें;
ऊपरी ट्रैक = खुलने के 30 मिनट बाद उच्चतम बिंदु;
निचला ट्रैक = खुलने के 30 मिनट बाद कम;
जब कीमत ऊपरी ट्रैक को तोड़ती है, तो खरीदें और एक स्थिति खोलें;
जब कीमत निचले ट्रैक से नीचे गिर जाए, तो विक्रय स्थिति खोलें।
इंट्राडे ट्रेडिंग रणनीति, बाजार बंद होने से पहले पोजीशन बंद करें;

रणनीति कोड

img
चित्र 3-25 माई भाषा रणनीति कोड

संक्षेप

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. कई ट्रेडिंग मॉड्यूल को लागू करने का प्रयास करें जिन्हें आप व्यक्तिपरक ट्रेडिंग में सबसे अधिक बार उपयोग करते हैं।
  2. आविष्कारक के मात्रात्मक उपकरण में माई भाषा का उपयोग करके केडीजे संकेतक एल्गोरिदम को लागू करने का प्रयास करें।

3.4 विज़ुअल प्रोग्रामिंग के साथ त्वरित शुरुआत

सारांश

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

पूरी रणनीति

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

लंबी स्थिति खोलनायदि कोई वर्तमान स्थिति नहीं है और समापन मूल्य 50-अवधि चलती औसत से अधिक है।
एक छोटी स्थिति खोलेंयदि कोई वर्तमान स्थिति नहीं है और समापन मूल्य 50-अवधि चलती औसत से कम है।
लंबी स्थिति समापनयदि आप वर्तमान में लंबी स्थिति रखते हैं और समापन मूल्य 50-अवधि चलती औसत से कम है।
लघु स्थिति समापनयदि आप वर्तमान में एक छोटा ऑर्डर रखते हैं और समापन मूल्य 50-अवधि की चलती औसत से अधिक है।

यदि उपरोक्त रणनीति को दृश्य भाषा में लिखा जाए, तो यह इस प्रकार दिखाई देगी (जैसा कि नीचे दिखाया गया है):
img
चित्र 3-26 दृश्य भाषा इंटरफ़ेस

जैसा कि ऊपर दिए गए चित्र में दिखाया गया है, संपूर्ण रणनीति डिजाइन प्रक्रिया है: बाजार प्रकार सेट करें, के-लाइन सरणी प्राप्त करें, पिछली के-लाइन का 50-अवधि औसत प्राप्त करें, पिछली के-लाइन का समापन मूल्य प्राप्त करें, स्थिति सरणी प्राप्त करें, स्थिति की स्थिति निर्धारित करें, निर्धारित करें कि समापन मूल्य चलती औसत से अधिक है या कम है, और उद्घाटन या समापन निष्पादित करें।

यहां हमें "सरणी" की अवधारणा पर ध्यान देने की आवश्यकता है। ऐरे प्रत्येक प्रोग्रामिंग भाषा के लिए महत्वपूर्ण डेटा संरचनाओं में से एक है। ऐरे कंटेनर की तरह होते हैं जो मानों की एक श्रृंखला को संग्रहीत कर सकते हैं। उदाहरण के लिए, K-लाइन सरणी प्राप्त करने के लिए API को कॉल करने पर निम्नलिखित परिणाम प्राप्त होता है:
img
चित्र 3-27 K-लाइन सरणी

उपरोक्त चित्र में कोड एक K-लाइन सरणी है। सारणी में कुल तीन डेटा होते हैं, अर्थात् पिछली K-लाइन का डेटा, पिछली K-लाइन का डेटा और वर्तमान K-लाइन का डेटा। यदि हम इस सारणी को एक चर "arr" पर असाइन करते हैं, यदि हम इस सारणी में अंतिम डेटा (मूल K पंक्ति का डेटा) प्राप्त करना चाहते हैं, तो हम इसे इस तरह लिख सकते हैं (जैसा कि नीचे दिए गए चित्र में 4 वीं और 5 वीं पंक्तियों में दिखाया गया है):
img
चित्र 3-28 सरणी संदर्भ

हम लिखने का दूसरा तरीका (पंक्ति 5) उपयोग कर सकते हैं, क्योंकि वास्तविकता में K-लाइन डेटा सैकड़ों या हजारों की संख्या में होते हैं, तथा नई K-लाइनें लगातार बढ़ रही हैं। तो आप सबसे पहले सरणी की लंबाई प्राप्त कर सकते हैं। "arr.length" का अर्थ है सरणी की लंबाई प्राप्त करना, और फिर उसमें से "1" घटाना, जो कि नवीनतम K-लाइन का डेटा है। यदि आप पिछली K-लाइन का डेटा प्राप्त करना चाहते हैं, तो "2" घटाएं।

सावधान लोग पा सकते हैं कि ये डेटा "{}" में संलग्न हैं। अंग्रेजी नामों से आप मोटे तौर पर जान सकते हैं कि वे निम्नलिखित से संबंधित हैं: समय, आरंभिक मूल्य, उच्चतम मूल्य, निम्नतम मूल्य, समापन मूल्य और ट्रेडिंग वॉल्यूम। यदि आप पिछली K-लाइन का समापन मूल्य प्राप्त करना चाहते हैं, तो बस "." जोड़ें। और अंत में आवश्यक मान के लिए, नीचे दिए गए चित्र में पंक्ति 8 से 10 देखें।
img
चित्र 3-29 सरणी संदर्भ

विज़ुअल प्रोग्रामिंग भाषा का उपयोग क्यों करें?

उपरोक्त अवधारणाओं के साथ, आइए सबसे पहले जावा का उपयोग करके एक प्रोग्राम लिखें जो पारंपरिक प्रोग्रामिंग का अनुभव करने के लिए "hello, world" आउटपुट करता है, जैसा कि नीचे दिखाया गया है:
img
चित्र 3-30

एक प्रोग्राम जो सिर्फ "हैलो वर्ल्ड!" आउटपुट करता है। स्ट्रिंग के लिए केवल 5 पंक्तियों की कोड की आवश्यकता होती है। मेरा मानना ​​है कि अधिकांश शुरुआती लोग केवल अंग्रेजी शब्द "हैलो, वर्ल्ड" को ही जानते हैं, तथा बाकी शब्दों को कहां से शुरू करें, इसका उन्हें कोई पता नहीं होता। इसलिए, नुकसान में रहने की अपेक्षा दृश्य प्रोग्रामिंग से शुरुआत करना बेहतर विकल्प है।

विज़ुअल प्रोग्रामिंग क्या है?

विज़ुअल प्रोग्रामिंग का इतिहास बहुत पुराना है और यह कोई नई बात नहीं है। यह "जो आप देखते हैं वही आपको मिलता है" प्रोग्रामिंग अवधारणा, विभिन्न नियंत्रण मॉड्यूल से सुसज्जित है, जो केवल खींचकर और छोड़कर कोड तर्क और पूर्ण ट्रेडिंग रणनीति डिजाइन का निर्माण कर सकती है। यह प्रक्रिया बिल्डिंग ब्लॉक्स के समान ही है।
img
चित्र 3-31

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

विज़ुअल प्रोग्रामिंग भाषा की विशेषताएँ क्या हैं?

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

मात्रात्मक दृश्य प्रोग्रामिंग के आविष्कारक का भी एहसास गूगल द्वारा जारी ब्लॉकली विज़ुअलाइज़ेशन टूल के माध्यम से हुआ। यह डिज़ाइन एम.आई.टी. द्वारा लांच किए गए स्क्रैच के समान है, जिसमें वास्तव में शून्य सीमा है (जैसा कि नीचे दिखाया गया है)।
img
चित्र 3-32

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

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

का उपयोग कैसे करें

img
चित्र 3-33

एक हेलो, वर्ल्ड प्रोग्राम लिखें

img
चित्र 3-34

"hello, world" चलाएँ और प्रिंट करें

img
चित्र 3-35

संक्षेप

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. इन्वेंटर क्वांट विज़ुअल प्रोग्रामिंग इंटरफ़ेस में, एपीआई का उपयोग करें और समझें कि उनका क्या मतलब है।
  2. नवीनतम आरंभिक मूल्य प्राप्त करने के लिए दृश्य भाषा का उपयोग करें और इसे लॉग में आउटपुट करें।

3.5 दृश्य भाषा का उपयोग करके रणनीतियों को कैसे लागू करें

सारांश

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

नीति मॉड्यूल

चरण वृद्धि

चरण वृद्धि की गणना वर्तमान K-लाइन के समापन मूल्य और पिछले N अवधियों के समापन मूल्य के बीच अंतर के प्रतिशत की गणना करके की जाती है। उदाहरण के लिए, अंतिम 10 K-लाइन अवधियों की वृद्धि की गणना करने के लिए, कोड इस प्रकार लिखा जा सकता है:
img
चित्र 3-36

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

के-लाइन डेटा के साथ, आप इन के-लाइन डेटा से किसी भी के-लाइन का विस्तृत डेटा प्राप्त कर सकते हैं।
आवधिक वृद्धि की गणना करने के लिए, आपको पहले दो K-लाइनों के समापन मूल्य प्राप्त करने होंगे, उदाहरण के लिए: पिछली K-लाइन का समापन मूल्य और उससे पहले 11वीं K-लाइन का समापन मूल्य।

अंत में, इन दो K-लाइनों के समापन मूल्यों के आधार पर, चरण वृद्धि अनुपात की गणना करें। निम्नलिखित प्रत्येक रणनीति में ऐसे तर्क लूप और सशर्त विशेषताओं की विशेषताएं हैं। एक बार जब आप इस तर्क को समझ लेंगे, तो विज़ुअल प्रोग्रामिंग बहुत आसान हो जाएगी।

बड़ी मात्रा में उछाल

बड़े पैमाने पर ऊपर की ओर हमले को बढ़ती कीमतों और व्यापार की मात्रा में तेज वृद्धि के रूप में समझा जा सकता है। उदाहरण के लिए: यदि किसी K-लाइन का समापन मूल्य पिछली 10 K-लाइनों के समापन मूल्य का 1.5 गुना है, तो इसका मतलब है कि 10 दिनों में इसमें 50% की वृद्धि हुई है; ट्रेडिंग वॉल्यूम पिछले 10 K-लाइनों के औसत से 5 गुना अधिक है। इसे कोड में इस प्रकार लिखा जा सकता है:
img
चित्र 3-37

अंतर

गैप वह स्थिति है जहां दो K-लाइनों की उच्चतम और निम्नतम कीमतें आपस में जुड़ी नहीं होती हैं। यह दो K-लाइनों से बना है। यह अंतर भविष्य के समर्थन और दबाव बिंदुओं के लिए संदर्भ मूल्य है। जब अंतराल उत्पन्न होता है, तो यह माना जा सकता है कि मूल अंतराल की दिशा में प्रवृत्ति में तेजी आनी शुरू हो गई है। इसे कोड में लिखा जा सकता है:
img
चित्र 3-38

सामान्य तकनीकी संकेतक

ईएमए मूविंग एवरेज

सांख्यिकीय दृष्टिकोण से, चल औसत दैनिक मूल्यों का अंकगणितीय औसत है, और यह एक प्रवृत्ति के साथ मूल्य प्रक्षेप पथ है। चलती औसत प्रणाली एक तकनीकी उपकरण है जिसका उपयोग आमतौर पर अधिकांश विश्लेषकों द्वारा किया जाता है। तकनीकी दृष्टिकोण से, यह एक ऐसा कारक है जो तकनीकी विश्लेषकों के मनोवैज्ञानिक मूल्य और खरीद और बिक्री के निर्णय लेने वाले कारक को प्रभावित करता है। यह तकनीकी विश्लेषकों के लिए एक अच्छा संदर्भ उपकरण है। आविष्कारक का मात्रात्मक उपकरण कई अलग-अलग प्रकार के चलती औसत का समर्थन करता है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 3-39

एमएसीडी सूचक

एमएसीडी सूचक तीव्र (अल्पकालिक) और धीमी (दीर्घकालिक) चलती औसत और उनके अभिसरण और पृथक्करण के संकेतों का उपयोग करता है, और एक डबल स्मूथिंग ऑपरेशन करता है। मूविंग एवरेज के सिद्धांत के आधार पर विकसित एमएसीडी ने मूविंग एवरेज के दोष को समाप्त कर दिया है, जो अक्सर गलत संकेत भेजता था, तथा मूविंग एवरेज के प्रभाव को बरकरार रखा है। इसलिए, एमएसीडी सूचक में चलती औसत प्रवृत्ति, स्थिरता और स्थिरता की विशेषताएं हैं। यह एक तकनीकी विश्लेषण संकेतक है जिसका उपयोग शेयरों की खरीद और बिक्री के समय का आकलन करने और स्टॉक की कीमतों में वृद्धि और गिरावट की भविष्यवाणी करने के लिए किया जाता है। गणना पद्धति इस प्रकार है:
img
चित्र 3-40

केडीजे सूचक

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

रणनीति लेखन

वॉरेन बफेट के गुरु बेंजामिन ग्राहम ने एक बार अपनी पुस्तक "द इंटेलिजेंट इन्वेस्टर" में स्टॉक और बांड के बीच गतिशील संतुलन के एक ट्रेडिंग मॉडल का उल्लेख किया था।

यह ट्रेडिंग मॉडल बहुत सरल है:
अपने धन का 50% स्टॉक फंड में और शेष 50% बॉन्ड फंड में निवेश करें। अर्थात्, स्टॉक और बांड प्रत्येक का हिस्सा आधा-आधा है।

स्टॉक परिसंपत्तियों और बांड परिसंपत्तियों के अनुपात को प्रारंभिक 1:1 पर पुनः स्थापित करने के लिए निश्चित अंतराल पर या बाजार में होने वाले परिवर्तनों के आधार पर परिसंपत्तियों को पुनर्संतुलित करें। यह रणनीति का संपूर्ण तर्क है, जिसमें कब खरीदना और बेचना है, तथा कितना खरीदना और बेचना है, शामिल है। काफी सरल!

इस पद्धति में, बॉन्ड फंड की अस्थिरता वास्तव में बहुत कम है, स्टॉक की अस्थिरता से बहुत कम है, इसलिए बॉन्ड को यहां "संदर्भ एंकर" के रूप में उपयोग किया जाता है, यानी बॉन्ड का उपयोग यह मापने के लिए किया जाता है कि क्या स्टॉक बहुत अधिक बढ़ गए हैं। यह अभी भी है बहुत कम वृद्धि.

यदि स्टॉक की कीमत बढ़ती है, तो स्टॉक का बाजार मूल्य बॉन्ड के बाजार मूल्य से अधिक होगा। जब दोनों का बाजार मूल्य अनुपात निर्धारित सीमा से अधिक हो जाता है, तो कुल स्थिति को फिर से समायोजित किया जाएगा, स्टॉक को बेचा जाएगा, और स्टॉक-बांड बाजार मूल्य अनुपात को मूल 1:1 पर बहाल करने के लिए बांड खरीदा जाएगा।

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

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

रणनीति तर्क

बीटीसी के वर्तमान मूल्य के अनुसार, खाता शेष राशि 5000 ¥ नकद और 0.1 बीटीसी होगी, अर्थात नकदी और बीटीसी बाजार मूल्य का प्रारंभिक अनुपात 1:1 है।

यदि बीटीसी की कीमत ¥6000 तक बढ़ जाती है, अर्थात बीटीसी का बाजार मूल्य खाता शेष से अधिक है, और उनके बीच का अंतर निर्धारित सीमा से अधिक है, तो (6000-5000)/6000/2 सिक्के बेचे जाएंगे। इसका मतलब यह है कि बीटीसी की कीमत बढ़ गई है और पैसे को वापस बदला जा सकता है।

यदि बीटीसी की कीमत ¥4000 तक गिर जाती है, अर्थात बीटीसी का बाजार मूल्य खाते के शेष से कम है, और उनके बीच का अंतर निर्धारित सीमा से अधिक है, तो (5000-4000) / 4000/2 सिक्के खरीदें। इसका मतलब है कि बीटीसी का मूल्य कम हो गया है, इसलिए बीटीसी वापस खरीदें।

इस तरह, चाहे बीटीसी की कीमत बढ़े या घटे, खाते का शेष और बीटीसी का बाजार मूल्य हमेशा बराबर रहता है। यदि बीटीसी का मूल्य कम हो जाए तो कुछ खरीद लें और जब यह वापस ऊपर जाए तो कुछ बेच दें, बिल्कुल बैलेंस की तरह।

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

आवश्यक शर्तें

  • हाल का बाज़ार
  • वर्तमान संपत्ति
  • सिक्कों का कुल बाजार मूल्य
  • परिसंपत्ति अंतर

रणनीति निर्माण

दृश्य लेखन रणनीति चरण 1

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

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

दृश्य लेखन रणनीति चरण 2

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

अर्थात, यदि परिसंपत्ति अंतर ऋणात्मक उपलब्ध शेष के 5% से कम है, तो खरीदें; यदि परिसंपत्ति का अंतर उपलब्ध शेष राशि के 5% से अधिक है, तो बेच दें। जैसा कि नीचे दिया गया है:
img
चित्र 3-43

ऐसा लगता है कि पूरी रणनीति लिखी गई है, लेकिन आपको पता होना चाहिए कि कार्यक्रम ऊपर से नीचे तक निष्पादित होता है और निष्पादन के बाद रुक जाता है। हालाँकि, हमारी ट्रेडिंग रणनीति ट्रेडिंग शर्तों को एक बार निष्पादित करने की नहीं है, बल्कि उन्हें बार-बार निष्पादित करने की है।

दूसरे शब्दों में, कार्यक्रम को लगातार यह जांचने की आवश्यकता होती है कि क्या रणनीति की शर्तें पूरी हुई हैं। यदि हां, तो खरीदें या बेचें; अन्यथा, जांच करते रहें। इस समय, आपको एक अन्य लूप स्टेटमेंट का उपयोग करने की आवश्यकता है, जैसा कि नीचे दिखाया गया है:
img
चित्र 3-44

रणनीति बैकटेस्टिंग

विज़ुअलाइज़ेशन रणनीतियों और अन्य प्रोग्रामिंग भाषाओं में लिखी गई रणनीतियों के बीच कोई आवश्यक अंतर नहीं है। वे कई अवधियों और सटीकता के स्तरों के साथ ऐतिहासिक डेटा परीक्षण का भी समर्थन करते हैं। बेशक, वे घरेलू और विदेशी कमोडिटी वायदा और डिजिटल मुद्राओं के वास्तविक समय के व्यापार का भी समर्थन करते हैं। रणनीति की बैकटेस्ट जानकारी निम्नलिखित है:
img
चित्र 3-45

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

निष्कर्ष

10,000 घंटे का नियम हमेशा मौजूद रहता है, लेकिन जिन व्यापारियों को बुनियादी ज्ञान नहीं है, उनके लिए उद्योग में दोबारा प्रवेश करने के लिए 10,000 घंटे खर्च करना असंभव है। तो आपके पास एक सीढ़ी होनी चाहिए, और शून्य प्रोग्रामिंग आधार वाले व्यापारियों के लिए, इन्वेंटर क्वांट की दृश्य प्रोग्रामिंग त्वरित प्रवेश के लिए एक सीढ़ी है।

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

हालांकि, यह कहने के बाद भी, मात्रात्मक शिक्षा के लिए एक कदम के रूप में दृश्य प्रोग्रामिंग में कोई समस्या नहीं है, लेकिन इसकी अपनी सीमाएं भी हैं, जैसे कि अत्यधिक जटिल और परिष्कृत व्यापारिक रणनीतियों को विकसित करने में असमर्थता। लेकिन इससे मात्रात्मक व्यापार में आपके पहले कदम पर कोई असर नहीं पड़ता!

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. दृश्य भाषा का उपयोग करके बोलिंगर बैंड संकेतक को कार्यान्वित करने का प्रयास करें।
  2. ट्रेडिंग रणनीति को पूरा करने के लिए इस अनुभाग में ट्रेडिंग मॉड्यूल का उपयोग करने का प्रयास करें।

अध्याय 4 मुख्यधारा प्रोग्रामिंग भाषाओं में ट्रेडिंग रणनीतियों को लागू करना

4.1 जावास्क्रिप्ट भाषा त्वरित प्रारंभ

सारांश

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

जावास्क्रिप्ट क्यों सीखें?

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

इसके अलावा, जावास्क्रिप्ट दृश्य भाषाओं की तुलना में अधिक संक्षिप्त और सुंदर है। उदाहरण के लिए, किसी दृश्य भाषा में कोड की 10 पंक्तियों को जावास्क्रिप्ट में 5 पंक्तियों में लिखा जा सकता है। कुछ मायनों में, दृश्य भाषा जावास्क्रिप्ट का एक पाठ संस्करण मात्र है, और इसके कोड का निष्पादन और तर्क लगभग जावास्क्रिप्ट के समान ही है। यदि आप कोई दृश्य भाषा सीखते हैं, तो जावास्क्रिप्ट सीखना बहुत आसान हो जाएगा।

जावास्क्रिप्ट का परिचय

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

पूरी रणनीति

इस खंड के प्रमुख ज्ञान को शीघ्रता से समझने में आपकी सहायता करने के लिए, आविष्कारक की क्वांटाइज्ड जावास्क्रिप्ट भाषा त्वरित परिचय को प्रस्तुत करने से पहले, आपको इस खंड की अवधारणाओं की प्रारंभिक समझ होनी चाहिए। आइए सबसे सरल डबल मूविंग एवरेज रणनीति को उदाहरण के रूप में लें:

लंबी स्थिति खोलनायदि कोई वर्तमान स्थिति नहीं है और 5-अवधि चलती औसत 20-अवधि चलती औसत से अधिक है।
एक छोटी स्थिति खोलेंयदि कोई वर्तमान स्थिति नहीं है और 5-अवधि चलती औसत 20-अवधि चलती औसत से कम है।
लंबी स्थिति समापनयदि आप वर्तमान में लंबी स्थिति रखते हैं और 5-अवधि चलती औसत 20-अवधि चलती औसत से कम है।
लघु स्थिति समापनयदि आप वर्तमान में शॉर्ट पोजीशन रखते हैं और 5-अवधि की चलती औसत 20-अवधि की चलती औसत से अधिक है।

यदि इसे जावास्क्रिप्ट में लिखा जाए तो यह कुछ इस तरह दिखेगा:
img
चित्र 4-1

उपरोक्त चित्र में दिया गया कोड जावास्क्रिप्ट में लिखी गई एक पूर्ण मात्रात्मक ट्रेडिंग रणनीति है। यह वास्तविक समय में चल सकता है और स्वचालित रूप से ऑर्डर दे सकता है। कोड की मात्रा के संदर्भ में, यह भाषा दृश्य भाषा की तुलना में सरल है। संपूर्ण रणनीति की डिजाइन प्रक्रिया इस प्रकार है: बाजार प्रकार निर्धारित करना, के-लाइन डेटा प्राप्त करना, स्थिति की जानकारी प्राप्त करना, लेनदेन तर्क की गणना करना, तथा खरीद और बिक्री के आदेश देना।

पहचानकर्ता

जावास्क्रिप्ट में सब कुछ (चर, फ़ंक्शन नाम और ऑपरेटर) केस-सेंसिटिव है, जिसका अर्थ है कि चर नाम test और चर नाम Test दो अलग-अलग चर हैं। किसी पहचानकर्ता (चर, फ़ंक्शन, गुण, फ़ंक्शन पैरामीटर का नाम) का पहला अक्षर एक अक्षर, एक अंडरस्कोर (_), डॉलर चिह्न ($), और निम्नलिखित वर्ण संख्याएँ भी हो सकते हैं, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-2

टिप्पणी

टिप्पणियों में एकल-पंक्ति टिप्पणियाँ और ब्लॉक-स्तरीय टिप्पणियाँ शामिल हैं। एकल-पंक्ति टिप्पणियाँ दो स्लैश से शुरू होती हैं, और ब्लॉक टिप्पणियाँ एक स्लैश और तारांकन चिह्न से शुरू होती हैं (/) और एक तारांकन चिह्न और एक स्लैश ( के साथ समाप्त होता है/) जैसा कि नीचे दिया गया है:
img
चित्र 4-3

बयान

प्रत्येक कथन अर्धविराम से समाप्त होता है; यद्यपि यह आवश्यक नहीं है, फिर भी हम अनुशंसा करते हैं कि आप इसे कभी न छोड़ें। अर्धविराम जोड़ने से कुछ मामलों में कोड का प्रदर्शन बढ़ सकता है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-4

चर

वेरिएबल्स किसी भी प्रकार का डेटा संग्रहीत कर सकते हैं। चर बनाते समय, var ऑपरेटर के बाद चर नाम का उपयोग करें। किसी चर को परिभाषित करते समय, आप उसका मान भी निर्धारित कर सकते हैं। एक बार चर बना लेने के बाद, आपको चर का मान पुनः निर्धारित करने के लिए var ऑपरेटर का उपयोग करने की आवश्यकता नहीं है, जैसा कि नीचे दिखाया गया है:
img
चित्र 4-5

डेटा

जावास्क्रिप्ट में कुल 5 डेटा प्रकार हैं, अर्थात्: अपरिभाषित, नल, बूलियन, संख्या और स्ट्रिंग, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-6

अपरिभाषित का केवल एक ही मान होता है, विशेष "अपरिभाषित", जो उस मान को दर्शाता है जिसे अभी तक निर्धारित नहीं किया गया है। उदाहरण के लिए, यदि हम केवल एक चर को परिभाषित करते हैं और उसके लिए कोई मान निर्धारित नहीं करते हैं, तो चर का मान "अपरिभाषित" होगा।

नल का केवल एक ही मान होता है, विशेष "नल", जो रिक्त पर सेट किए गए मान को दर्शाता है। उदाहरण के लिए, यदि हम पहले एक चर बनाते हैं और फिर चर का मान "शून्य" पर सेट करते हैं, तो चर द्वारा लौटाया गया मान "शून्य" होगा।

बूलियन के दो मान हैं, "सत्य" और "असत्य"। "सत्य" सत्य को दर्शाता है और "असत्य" असत्य को दर्शाता है। ध्यान रखें कि "सत्य" और "असत्य" दोनों छोटे अक्षर हैं।

संख्या संख्या का प्रकार है, जिसमें शामिल हैं: सकारात्मक संख्याएं, नकारात्मक संख्याएं, पूर्णांक, दशमलव, आदि। इसके अलावा, "NaN" भी एक विशेष संख्या है जो विशेष रूप से उस स्थिति को इंगित करती है जहां कोई मान नहीं लौटाया जाता है, उदाहरण के लिए: 1 को 0 से विभाजित करने पर "NaN" प्राप्त होता है।

आप स्ट्रिंग को चीनी और अंग्रेजी सहित पाठ के रूप में समझ सकते हैं, और आप एकल उद्धरण या दोहरे उद्धरण का उपयोग करके स्ट्रिंग का निर्माण कर सकते हैं। उदाहरण के लिए: "fmz" या "आविष्कारक परिमाणीकरण"।

वस्तु

आप किसी ऑब्जेक्ट को विभिन्न डेटा संग्रहीत करने के लिए एक कंटेनर के रूप में सोच सकते हैं, जिसमें विशेषताएँ और मूल्य एक दूसरे के अनुरूप होते हैं। आप इस कंटेनर को पहले new ऑपरेटर के माध्यम से बना सकते हैं। आप निर्मित ऑब्जेक्ट में गुण और विधियाँ भी जोड़ सकते हैं, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-7

समूह

सारणी भी विभिन्न डेटा को संग्रहीत करने के लिए एक कंटेनर है, लेकिन कंटेनर में तत्वों को बाएं से दाएं क्रम में व्यवस्थित किया जाता है। पहला तत्व 0 है, दूसरा तत्व 1 है, और इसी प्रकार आगे भी। इसके अतिरिक्त, जावास्क्रिप्ट सरणियाँ किसी भी डेटा प्रकार को संग्रहीत कर सकती हैं, जैसा कि नीचे दिखाया गया है:
img
चित्र 4-8

समारोह

जावास्क्रिप्ट में फंक्शन मूलतः वही हैं जो हमने मिडिल स्कूल में सीखे थे। आप इसे इस रूप में समझ सकते हैं कि फ़ंक्शन की गणना के माध्यम से क्या पास किया जाता है और क्या आउटपुट होता है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-9

ऑपरेटर

जावास्क्रिप्ट में विभिन्न ऑपरेटर हैं, अर्थात् अंकगणितीय ऑपरेटर, तुलना ऑपरेटर और तार्किक ऑपरेटर। इनमें से, अंकगणितीय ऑपरेटर जोड़, घटाव, गुणा और भाग के गणितीय संक्रियाएं हैं। तुलना ऑपरेटर यह तुलना कर सकते हैं कि दो मान कम हैं या नहीं। मुख्य तार्किक ऑपरेटर हैं: तार्किक AND, तार्किक OR, और तार्किक NOT. जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-10
यह ध्यान दिया जाना चाहिए कि: "&&" एक तार्किक AND है, जिसका अर्थ है "और"। “||” एक तार्किक OR है, जिसका अर्थ है “या”। "!" एक तार्किक निषेध है, जिसका अर्थ है "नहीं":
“&&” का अर्थ है कि जब सभी शर्तें “सत्य” हों, तो अंतिम शर्त भी “सत्य” होगी;
“||” इसका मतलब है कि सभी शर्तों में से, जब तक उनमें से कोई एक "सत्य" है, अंतिम शर्त भी "सत्य" होगी।

प्राथमिकता

यदि कोई 100 है*अभिव्यक्ति (10-1)/(10+5) के लिए, प्रोग्राम पहले कौन सा चरण गणना करता है? मिडिल स्कूल गणित हमें बताता है: ① यदि यह समान स्तर का ऑपरेशन है, तो इसे आम तौर पर बाएं से दाएं की ओर गणना की जाती है। ② यदि जोड़ और घटाव के साथ-साथ गुणा और भाग दोनों हों, तो पहले गुणा और भाग की गणना करें, फिर जोड़ और घटाव की। ③यदि कोष्ठक हैं, तो पहले कोष्ठक की सामग्री की गणना करें। ④ यदि यह परिचालन नियमों के अनुरूप है, तो परिचालन नियमों का उपयोग गणना को सरल बनाने के लिए किया जा सकता है। जावास्क्रिप्ट भाषा की प्राथमिकता के लिए भी यही बात सत्य है, जैसा कि नीचे दिखाया गया है:
img
चित्र 4-11

सशर्त कथन

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

यदि कथन

यह कथन कोड को तभी निष्पादित करता है जब निर्दिष्ट शर्त सत्य हो। कृपया लोअरकेस if का प्रयोग करें। बड़े अक्षरों (IF) का प्रयोग करने पर जावास्क्रिप्ट त्रुटि उत्पन्न होगी! जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-12#

यदि...अन्यथा कथन

जब शर्त सत्य होती है, तो कोड निष्पादित होता है, और जब शर्त असत्य होती है, तो अन्य कोड निष्पादित होता है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-13

पाश के लिए

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

जबकि लूप

हम सभी जानते हैं कि बाजार लगातार बदल रहा है। यदि आप नवीनतम K-लाइन सरणी प्राप्त करना चाहते हैं, तो आपको एक ही कोड को बार-बार चलाना होगा। फिर whilex लूप का उपयोग करें. जब तक निर्दिष्ट शर्त सत्य है, लूप हमेशा नवीनतम K-लाइन सरणी प्राप्त कर सकता है।
img
चित्र 4-15

ब्रेक स्टेटमेंट और जारी स्टेटमेंट

लूप की एक पूर्व शर्त है। केवल जब पूर्व शर्त "सत्य" होगी तभी लूप कुछ कार्य बार-बार करना शुरू करेगा, और लूप तब तक समाप्त नहीं होगा जब तक पूर्व शर्त "असत्य" न हो। हालाँकि, ब्रेक स्टेटमेंट लूप के निष्पादन के दौरान तुरंत लूप से बाहर निकल सकता है; continue कथन एक निश्चित लूप को बाधित कर सकता है और फिर अगले लूप को जारी रख सकता है। जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-16

वापसी कथन

रिटर्न स्टेटमेंट किसी फ़ंक्शन के निष्पादन को समाप्त करता है और फ़ंक्शन का मान लौटाता है। रिटर्न स्टेटमेंट केवल फ़ंक्शन बॉडी में ही दिखाई दे सकता है। यदि यह कोड में कहीं और दिखाई देता है, तो यह सिंटैक्स त्रुटि उत्पन्न करेगा!
img
चित्र 4-17

सीटीए रणनीति ढांचा

इन्वेंटर क्वांटिटेटिव टूल में जावास्क्रिप्ट में रणनीति लिखना बहुत सुविधाजनक है। अधिकारी ने मानक रणनीति ढांचे का एक सेट बनाया है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-18

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

संक्षेप

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. ऐतिहासिक K-लाइन डेटा प्राप्त करने के लिए इन्वेंटर क्वांटिटेटिव टूल में जावास्क्रिप्ट भाषा का उपयोग करने का प्रयास करें।
  2. इस अनुभाग के आरंभ में रणनीति कोड लिखने का प्रयास करें और टिप्पणियाँ जोड़ें।

4.2 जावास्क्रिप्ट भाषा का उपयोग करके रणनीति ट्रेडिंग को कैसे लागू करें

सारांश

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

रणनीति परिचय

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

गणना पद्धति में सांख्यिकीय सिद्धांतों का उपयोग करते हुए पहले एक समयावधि में मूल्य के "मानक विचलन" की गणना की जाती है, और फिर मूल्य के "विश्वास अंतराल" को ज्ञात करने के लिए चल औसत से मानक विचलन को 2 गुना जोड़ा/घटाया जाता है। इसका मूल स्वरूप एक पट्टी चैनल है जो तीन ट्रैक लाइनों (मध्य ट्रैक, ऊपरी ट्रैक और निचला ट्रैक) से बना होता है। मध्य ट्रैक कीमत की औसत लागत है, और ऊपरी और निचले ट्रैक क्रमशः मूल्य की दबाव रेखा और समर्थन रेखा का प्रतिनिधित्व करते हैं।

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

बोलिंगर बैंड संकेतक गणना विधि

सभी तकनीकी संकेतकों में, बोलिंगर बैंड की गणना पद्धति सबसे जटिल है, जो सांख्यिकी में मानक विचलन की अवधारणा को प्रस्तुत करती है और इसमें मध्य रेखा (एमबी), ऊपरी रेखा (यूपी) और निचली रेखा (डीएन) की गणना शामिल होती है। गणना पद्धति इस प्रकार है:

मध्य ट्रैक = N समय अवधियों में सरल चल औसत
ऊपरी ट्रैक = मध्य ट्रैक + K × N समय अवधियों का मानक विचलन
निचली रेल = मध्य ट्रैक − K × N समय अवधियों का मानक विचलन
img
चित्र 4-19

रणनीति तर्क

बोलिंगर बैंड का उपयोग करने के कई तरीके हैं। इनका उपयोग अकेले या अन्य संकेतकों के साथ संयोजन में किया जा सकता है। इस ट्यूटोरियल में हम बोलिंगर बैंड का उपयोग करने की सबसे सरल विधि का उपयोग करेंगे। अर्थात्: जब कीमत नीचे से ऊपर तक ऊपरी ट्रैक को तोड़ती है, अर्थात ऊपरी दबाव रेखा को तोड़ती है, तो हम मानते हैं कि तेजी का बल मजबूत हो रहा है, बढ़ते बाजार की लहर बन गई है, और एक खरीद उद्घाटन संकेत उत्पन्न होता है; जब कीमत ऊपर से नीचे तक निचले ट्रैक से नीचे गिरती है, अर्थात समर्थन रेखा से नीचे गिरती है, तो हम मानते हैं कि मंदी का बल मजबूत हो रहा है, गिरावट की प्रवृत्ति की लहर बन गई है, और एक बिक्री उद्घाटन संकेत उत्पन्न होता है।
img
चित्र 4-20

यदि खरीद की स्थिति खोलने के बाद, कीमत बोलिंगर बैंड के मध्य ट्रैक पर वापस आ जाती है, तो हम मानते हैं कि तेजी का बल कमजोर हो रहा है, या मंदी का बल मजबूत हो रहा है, और एक बिक्री-समापन संकेत उत्पन्न होता है; यदि विक्रय स्थिति खोलने के बाद, कीमत बोलिंगर बैंड के मध्य ट्रैक पर वापस बढ़ जाती है, तो हम मानते हैं कि मंदी का बल कमजोर हो रहा है, या तेजी का बल मजबूत हो रहा है, और एक खरीद-समापन संकेत उत्पन्न होता है।

व्यापार की शर्तें

लंबी स्थिति खोलना: यदि कोई स्थिति नहीं है, और समापन मूल्य ऊपरी ट्रैक से अधिक है, और समय 14:45 नहीं है
एक छोटी स्थिति खोलें: यदि कोई स्थिति नहीं है, और समापन मूल्य निचले ट्रैक से कम है, और समय 14:45 नहीं है
लंबी स्थिति समापन:यदि आप एक लंबा ऑर्डर रखते हैं, और समापन मूल्य मध्य ट्रैक से कम है, या समय 14:45 है
लघु स्थिति समापन:यदि आप एक छोटा ऑर्डर रखते हैं, और समापन मूल्य मध्य ट्रैक से अधिक है, या समय 14:45 है

रणनीति कोड कार्यान्वयन

किसी रणनीति को लागू करने के लिए हमें सबसे पहले यह विचार करना होगा कि हमें किस डेटा की आवश्यकता है? इसे किस API के माध्यम से प्राप्त करें? तो फिर लेनदेन तर्क की गणना कैसे करें? अंततः, ऑर्डर देने और व्यापार करने के लिए कौन सी विधियां उपयोग में लाई जाती हैं? अब, आइए इसे चरण दर चरण क्रियान्वित करें:

चरण 1: CTA रणनीति ढांचे का उपयोग करें

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

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

यह ध्यान दिया जाना चाहिए कि उपरोक्त चित्र में उत्पाद कोड "rb000/rb888" है, जिसका अर्थ है कि सिग्नल डेटा "rb000" का उपयोग करता है, लेनदेन डेटा "rb888" का उपयोग करता है, और महीने का स्थानांतरण स्वचालित है। बेशक, आप एक विशिष्ट उत्पाद कोड भी निर्दिष्ट कर सकते हैं, जैसे कि उत्पाद कोड "rb1910", जिसका अर्थ है कि सिग्नल डेटा और लेनदेन डेटा दोनों "rb1910" का उपयोग करते हैं।

FMZ में एक अंतर्निहित जावास्क्रिप्ट कमोडिटी फ्यूचर्स ट्रेडिंग लाइब्रेरी है। आप रणनीति संपादन इंटरफ़ेस में संदर्भ पर क्लिक करके इसे अपने कोड में उपयोग कर सकते हैं:
img

चरण 2: विभिन्न डेटा प्राप्त करें

इस पर ध्यानपूर्वक विचार करें, आपको किस डेटा की आवश्यकता है? हमारी रणनीति ट्रेडिंग तर्क से, हमने पाया कि: सबसे पहले हमें वर्तमान स्थिति की स्थिति प्राप्त करने की आवश्यकता है, फिर समापन मूल्य और बोलिंगर बैंड संकेतक के ऊपरी, मध्य और निचले ट्रैक के बीच संबंधों की तुलना करें, और अंत में निर्धारित करें कि क्या बाजार बंद होने वाला है। तो आइये ये डेटा प्राप्त करें।

K-लाइन डेटा प्राप्त करें

पहला चरण K-लाइन सरणी और पिछली K-लाइन का समापन मूल्य प्राप्त करना है, क्योंकि केवल K-लाइन सरणी के साथ ही बोलिंगर बैंड संकेतक की गणना की जा सकती है। कोड में यह इस प्रकार दिखता है:
img
चित्र 4-22

जैसा कि ऊपर चित्र में दिखाया गया है:
पंक्ति 4: K-लाइन सरणी प्राप्त करें, जो एक निश्चित प्रारूप है।
पंक्ति 5: K-लाइन की लंबाई को फ़िल्टर करें, क्योंकि बोलिंगर बैंड संकेतक की गणना करने के लिए हम जिस पैरामीटर का उपयोग करते हैं वह 20 है। जब K-लाइन 20 से कम होती है, तो बोलिंगर बैंड संकेतक की गणना नहीं की जा सकती है। इसलिए, हमें यहां K-लाइन की लंबाई को फ़िल्टर करने की आवश्यकता है। यदि 20 से कम K-लाइनें होंगी, तो हम सीधे वापस लौट आएंगे और अगली K-लाइन की प्रतीक्षा करेंगे।
पंक्ति 6: प्राप्त K-लाइन सरणी से, पहले पिछली K-लाइन का ऑब्जेक्ट प्राप्त करें, और फिर ऑब्जेक्ट से समापन मूल्य प्राप्त करें। किसी सारणी का दूसरा से अंतिम तत्व प्राप्त करें, जो कि सारणी की लंबाई माइनस 2 (r .) है[आर.लंबाई - 2]); के-लाइन सरणी में सभी तत्व ऑब्जेक्ट हैं, जिनमें प्रारंभिक मूल्य, उच्चतम मूल्य, निम्नतम मूल्य, समापन मूल्य, ट्रेडिंग वॉल्यूम और समय शामिल हैं। समापन मूल्य पाने के लिए, बस "." जोड़ें. और अंत में विशेषता नाम (आर[r.length - 2].Close)。

K-लाइन समय डेटा प्राप्त करें

क्योंकि हम एक इंट्राडे रणनीति का उपयोग कर रहे हैं, हमें बाजार बंद होने से पहले स्थिति को बंद करने की आवश्यकता है, इसलिए हमें यह निर्धारित करने की आवश्यकता है कि वर्तमान के-लाइन बाजार बंद होने के करीब है या नहीं। यदि ऐसा है, तो हम स्थिति को बंद कर देते हैं। यदि ऐसा नहीं है, तो हम स्थिति खोल सकते हैं। कोड इस प्रकार है:
img
चित्र 4-23

जैसा कि ऊपर चित्र में दिखाया गया है:
पंक्ति 8: वर्तमान K-लाइन की टाइमस्टैम्प विशेषता प्राप्त करें, और फिर एक समय ऑब्जेक्ट (नई तिथि (टाइमस्टैम्प)) बनाएं।
पंक्ति 9: समय ऑब्जेक्ट के आधार पर घंटों और मिनटों की गणना करें, और निर्धारित करें कि क्या K-लाइन का समय 14:45 है।

स्थिति डेटा प्राप्त करें

मात्रात्मक व्यापार रणनीतियों में स्थिति की जानकारी एक बहुत ही महत्वपूर्ण शर्त है। जब ट्रेडिंग की शर्तें पूरी हो जाती हैं, तो स्थिति की स्थिति और पोजीशन की संख्या के आधार पर यह निर्धारित करना भी आवश्यक है कि ऑर्डर दिया जाए या नहीं। उदाहरण के लिए: जब खरीद स्थिति खोलने की शर्तें पूरी हो जाती हैं, यदि आपके पास कोई स्थिति है, तो आपको फिर से ऑर्डर देने की आवश्यकता नहीं है; यदि आपके पास कोई पद नहीं है, तो आप ऑर्डर दे सकते हैं। कोड में यह इस प्रकार दिखता है:
img
चित्र 4-24
जैसा कि ऊपर चित्र में दिखाया गया है:
पंक्ति 11: वर्तमान स्थिति प्राप्त करें. यदि एक से अधिक ऑर्डर हैं, तो मान 1 है; यदि शॉर्ट ऑर्डर हैं, तो मान -1 है; यदि कोई स्थिति नहीं है, तो मान 0 है।

बोलिंगर बैंड्स डेटा प्राप्त करें

इसके बाद, आपको बोलिंगर बैंड संकेतक के ऊपरी, मध्य और निचले ट्रैक के मूल्यों की गणना करने की आवश्यकता है। फिर आपको पहले बोलिंगर बैंड सरणी प्राप्त करने की आवश्यकता है, और फिर सरणी से ऊपरी, मध्य और निचले बैंड के मान प्राप्त करें। इन्वेंटर क्वांटिटेटिव टूल में बोलिंगर बैंड ऐरे प्राप्त करना बहुत सरल है। आप सीधे बोलिंगर बैंड एपीआई को कॉल कर सकते हैं। कठिन हिस्सा ऊपरी, मध्य और निचले ट्रैक के मान प्राप्त करना है, क्योंकि बोलिंगर बैंड सरणी एक द्वि-आयामी सरणी है।

द्वि-आयामी सरणी को समझना वास्तव में बहुत आसान है। यह एक सरणी में एक सरणी है। इसलिए अधिग्रहण का क्रम है: पहले सरणी में निर्दिष्ट सरणी प्राप्त करें, और फिर निर्दिष्ट सरणी से निर्दिष्ट तत्व प्राप्त करें, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-25

जैसा कि नीचे दिए गए चित्र में दिखाया गया है, लाइनें 13 से 19 बोलिंगर बैंड के ऊपरी, मध्य और निचले रेल के मूल्यों को प्राप्त करने के लिए कोड का उपयोग करती हैं। उनमें से, लाइन 13 सीधे बोलिंगर बैंड सरणी प्राप्त करने के लिए आविष्कारक के मात्रात्मक उपकरण के एपीआई का उपयोग करती है; पंक्तियाँ 14 से 16 पहले दो-आयामी सरणी में क्रमशः ऊपरी रेल सरणी, मध्य रेल सरणी और निचली रेल सरणी प्राप्त करती हैं; रेखाएँ 17 से 19 क्रमशः ऊपरी रेल सरणी, मध्य रेल सरणी और निचली रेल सरणी से पिछली K-लाइन के बोलिंगर बैंड ऊपरी रेल, मध्य रेल और निचली रेल मान प्राप्त करती हैं।
img
चित्र 4-26

चरण 3: ऑर्डर दें

उपरोक्त डेटा के साथ, आप ट्रेडिंग लॉजिक और ऑर्डर प्लेस करने के लिए कोड लिख सकते हैं। इसका प्रारूप भी बहुत सरल है। सबसे अधिक इस्तेमाल किया जाने वाला "अगर कथन" है, जिसे शब्दों में वर्णित किया जा सकता है: यदि शर्त 1 और शर्त 2 पूरी होती हैं, तो ऑर्डर दें; यदि शर्त 3 ​​या शर्त 4 पूरी होती है, तो ऑर्डर दें। जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-27

उपरोक्त चित्र में, पंक्ति 21 से 24 ट्रेडिंग लॉजिक और ऑर्डर प्लेसमेंट कोड हैं। ऊपर से नीचे तक वे इस प्रकार हैं: क्लोज लॉन्ग, क्लोज शॉर्ट, ओपन लॉन्ग, ओपन शॉर्ट।

एक लंबी स्थिति (पंक्ति 23) को उदाहरण के रूप में लेते हुए, यह एक "यदि कथन" है। यदि इस कथन में कोड की केवल एक पंक्ति निष्पादित की जाती है, तो घुंघराले ब्रेसेज़ "{}" को छोड़ा जा सकता है। इस कथन का पाठ में अनुवाद इस प्रकार है: यदि वर्तमान स्थिति 0 है, और समापन मूल्य ऊपरी ट्रैक से अधिक है, और K-लाइन समय 14:45 नहीं है, तो "वापसी 1"

सावधान लोग पा सकते हैं कि इन पंक्तियों में "रिटर्न 1" और "रिटर्न -1" हैं। यह एक निश्चित प्रारूप है, जिसका अर्थ है: यदि यह खरीदें, तो "रिटर्न 1" लिखें; यदि यह बिक्री है, तो "रिटर्न -1" लिखें। लंबी स्थिति खोलना और छोटी स्थिति बंद करना दोनों ही खरीदना है, इसलिए "रिटर्न 1" लिखें; शॉर्ट पोजीशन खोलना और लॉन्ग पोजीशन बंद करना दोनों ही बेचना है, इसलिए "रिटर्न -1" लिखें।

संपूर्ण रणनीति कोड

इस बिंदु पर, एक पूर्ण रणनीति कोड लिखा गया है। यदि ट्रेडिंग फ्रेमवर्क, ट्रेडिंग डेटा, ट्रेडिंग लॉजिक, ऑर्डर प्लेसमेंट आदि को अलग-अलग लिखा जाए, तो क्या यह बहुत सरल नहीं होगा? इस रणनीति का संपूर्ण कोड निम्नलिखित है:
img
चित्र 4-28

ध्यान देने योग्य दो बिंदु हैं: रणनीति तर्क को लिखने का प्रयास करें (परन्तु यह आवश्यक नहीं है) कि जब मूल K-लाइन शर्त पूरी हो जाए, तो अगला K-लाइन ऑर्डर रखा जाए, या जब पिछली K-लाइन शर्त पूरी हो जाए, तो मूल K-लाइन ऑर्डर रखा जाए। इस तरह, बैकटेस्ट के परिणाम वास्तविक परिणामों से ज्यादा भिन्न नहीं होंगे। आपको इसे इस तरह लिखने की आवश्यकता नहीं है, लेकिन आपको इस बात पर ध्यान देना होगा कि रणनीति तर्क सही है या नहीं। सामान्यतः कहा जाए तो, किसी स्थिति को बंद करने का तर्क, किसी स्थिति को खोलने के तर्क से पहले लिखा जाना चाहिए। ऐसा करने का उद्देश्य रणनीति तर्क को यथासंभव आपकी अपेक्षाओं के अनुरूप बनाना है। उदाहरण के लिए: यदि रणनीति तर्क विपरीत स्थिति को पकड़ लेता है, तो विपरीत स्थिति का नियम यह है कि पहले स्थिति को बंद किया जाए और फिर नई स्थिति खोली जाए। पहले एक नया पद खोलने और फिर उसे बंद करने के बजाय। यदि हम समापन तर्क को आरंभिक तर्क से ठीक पहले लिखें तो यह समस्या उत्पन्न नहीं होगी।

संक्षेप

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

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. डबल मूविंग एवरेज रणनीति को लागू करने के लिए इस अनुभाग में दिए गए ज्ञान का उपयोग करने का प्रयास करें।
  2. इन्वेंटर क्वांटिटेटिव टूल में जावास्क्रिप्ट भाषा का उपयोग करके KDJ संकेतक एल्गोरिदम को लागू करने का प्रयास करें।

4.3 पायथन भाषा का त्वरित परिचय

सारांश

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

इतनी सारी प्रोग्रामिंग भाषाएं क्यों सीखें?

पिछले पाठ्यक्रमों पर नजर डालें तो हमने कुल मिलाकर निम्नलिखित चीजें सीखी हैं: माई भाषा, दृश्य भाषा, जावास्क्रिप्ट भाषा, जिसमें इस खंड में सीखी जाने वाली पायथन भाषा भी शामिल है। कुछ मित्रों के मन में प्रश्न हो सकते हैं। मैं यहां मात्रात्मक व्यापार सीखने आया हूं, मुझे इतनी सारी प्रोग्रामिंग भाषाएं क्यों सीखनी होंगी?

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

साथ ही, हम सभी के लिए मात्रात्मक अनुसंधान के द्वार खोलने और विभिन्न प्रोग्रामिंग भाषाओं के ज्ञान को लोकप्रिय बनाने के लिए भी प्रतिबद्ध हैं। मात्रात्मक अनुसंधान उतना रहस्यमय और पहुंच से बाहर नहीं है जितना हम सोचते हैं। मेरा मानना ​​है कि भविष्य में मात्रात्मक अनुसंधान लोकप्रिय हो जाएगा और आम जनता के लिए सुलभ हो जाएगा।

मात्रात्मक व्यापार के लिए पायथन क्यों चुनें?

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

पायथन को चुनने के पांच कारण

1. मात्रात्मक अनुप्रयोग व्यापक है:

संयुक्त राज्य अमेरिका में क्वांटोपियन और चीन में इन्वेंटर क्वांट दोनों ही पायथन भाषा का उपयोग कर सकते हैं।

2. सीखना आसान:

पायथन का डिजाइन दर्शन उपयोगकर्ता-केंद्रित है, और यह एक व्याख्या की गई भाषा है जिसे डीबग करना आसान है।

3. स्वतंत्र एवं खुला स्रोत:

कोई उपयोग लागत नहीं, ओपन सोर्स कोड साझाकरण, तथा उन्नत शिक्षण एवं उपयोग दक्षता।

4. समृद्ध पुस्तकालय:

डेटा प्रोसेसिंग, डेटा कंप्यूटिंग, विज़ुअलाइज़ेशन, सांख्यिकीय विश्लेषण, तकनीकी विश्लेषण, मशीन लर्निंग...

5. एप्लिकेशन इंटरफ़ेस:

प्रमुख प्लेटफार्मों से वास्तविक समय की बाजार जानकारी के आधार पर ऑर्डर प्राप्त करने, भंडारण करने, कॉल करने और ऑर्डर देने के लिए इंटरफेस।

पूरी रणनीति

इस खंड के प्रमुख ज्ञान को शीघ्रता से समझने में आपकी सहायता करने के लिए, आविष्कारक की क्वांटाइज्ड जावास्क्रिप्ट भाषा त्वरित परिचय को प्रस्तुत करने से पहले, आपको इस खंड की अवधारणाओं की प्रारंभिक समझ होनी चाहिए। आइए सबसे सरल डबल मूविंग एवरेज रणनीति को उदाहरण के रूप में लें:

लंबी स्थिति खोलनायदि कोई वर्तमान स्थिति नहीं है और 5-अवधि चलती औसत 20-अवधि चलती औसत से अधिक है।
एक छोटी स्थिति खोलेंयदि कोई वर्तमान स्थिति नहीं है और 5-अवधि चलती औसत 20-अवधि चलती औसत से कम है।
लंबी स्थिति समापनयदि आप वर्तमान में लंबी स्थिति रखते हैं और 5-अवधि चलती औसत 20-अवधि चलती औसत से कम है।
लघु स्थिति समापनयदि आप वर्तमान में शॉर्ट पोजीशन रखते हैं और 5-अवधि की चलती औसत 20-अवधि की चलती औसत से अधिक है।

यदि इसे पायथन में लिखा जाए तो यह कुछ इस तरह दिखेगा:
img
चित्र 4-29

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

हालाँकि, पूरी रणनीति की डिजाइन प्रक्रिया लगभग एक जैसी है: बाजार प्रकार निर्धारित करना, के-लाइन डेटा प्राप्त करना, स्थिति की जानकारी प्राप्त करना, ट्रेडिंग तर्क की गणना करना, और खरीद और बिक्री के आदेश देना। दूसरे शब्दों में, हालांकि प्रोग्रामिंग सिंटैक्स अलग है, लिखित रणनीति तर्क समान है, इसलिए आगे, आइए पायथन के मूल सिंटैक्स को सीखें!

संस्करण चयन

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

पहचानकर्ता

पहचानकर्ता चर का नाम है, जैसे test, Test, test10,डेमो, आदि। पायथन में सब कुछ (चर, फ़ंक्शन नाम और ऑपरेटर) केस-सेंसिटिव है, जिसका अर्थ है कि चर नाम टेस्ट और चर नाम टेस्ट दो अलग-अलग चर हैं। किसी पहचानकर्ता (चर, फ़ंक्शन, गुण, फ़ंक्शन पैरामीटर का नाम) का पहला अक्षर एक अक्षर, एक अंडरस्कोर (), इसके बाद आने वाले अक्षर संख्याएँ भी हो सकते हैं, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-30

टिप्पणी

टिप्पणी कोड की एक पंक्ति का अनुवाद या स्पष्टीकरण है। नियम बहुत सरल हैं और इसमें एकल-पंक्ति टिप्पणियाँ और ब्लॉक-स्तरीय टिप्पणियाँ शामिल हैं। एक एकल-पंक्ति टिप्पणी पाउंड चिह्न (#) से शुरू होती है, और एक ब्लॉक टिप्पणी तीन एकल उद्धरण चिह्न (''') या तीन दोहरे उद्धरण चिह्न (""") से शुरू होती है और तीन एकल उद्धरण चिह्न (''') या तीन दोहरे उद्धरण चिह्न (""") के साथ समाप्त होती है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-31

रेखाएँ और इंडेंट

पायथन की सबसे विशिष्ट विशेषता कोड ब्लॉकों को इंगित करने के लिए इंडेंटेशन का उपयोग है, बिना कर्ली ब्रेसेज़ {} की आवश्यकता के। इंडेंटेशन के लिए रिक्त स्थानों की संख्या परिवर्तनशील है, लेकिन समान कोड ब्लॉक में कथनों में इंडेंटेशन के लिए रिक्त स्थानों की संख्या समान होनी चाहिए। जैसा कि नीचे दिखाया गया है: इस स्थिति में, प्रोग्राम एक त्रुटि की रिपोर्ट करेगा। यदि if स्थिति सत्य भी हो, तो भी "True" आउटपुट नहीं होगा, क्योंकि पायथन कोड चलाने से पहले स्वतः ही पता लगा लेगा कि कोड सिंटैक्स सही है या नहीं। यदि कोड प्रारूप ग़लत है, तो प्रोग्राम नहीं चलेगा. इसका कारण यह है कि कोड की 5वीं पंक्ति में एकीकृत कोड इंडेंटेशन प्रारूप नहीं है। चार-स्पेस इंडेंटेशन पायथन के लिए एक निश्चित प्रारूप है, और हर किसी को इससे परिचित होना चाहिए।
img
चित्र 4-32

चर

वेरिएबल्स किसी भी प्रकार का डेटा संग्रहीत कर सकते हैं। केवल वेरिएबल का नाम लिखना ही वेरिएबल का निर्माण करना है। हालाँकि, एक चर बनाते समय, आपको उसी समय चर का मान सेट करना होगा, अन्यथा प्रोग्राम एक त्रुटि की रिपोर्ट करेगा। बराबर चिह्न (=) ऑपरेटर का बायाँ भाग चर का नाम है, और बराबर चिह्न (=) ऑपरेटर का दायाँ भाग चर में संग्रहीत मान है। जैसा कि नीचे दिए गए चित्र में दिखाया गया है: name2 चर का नाम है, और "आविष्कारक परिमाणीकरण" चर का मान है। यदि आप name2 के लिए कोई नया मान निर्धारित नहीं करते हैं, तो name2 का मान हमेशा "आविष्कारक परिमाणीकरण" होगा।
img
चित्र 4-33

डेटा

पायथन में छह डेटा प्रकार हैं, जिनमें से तीन अपरिवर्तनीय हैं और तीन परिवर्तनीय हैं। जैसा कि नाम से पता चलता है, एक बार अपरिवर्तनीय डेटा बना दिए जाने के बाद, इसका मूल्य नहीं बदला जा सकता है और मेमोरी में इसका पता अद्वितीय होता है; परिवर्तनीय डेटा मेमोरी में एक पते का संदर्भ है, और यदि इसका मान बदल जाता है, तो इसका मेमोरी पता अपरिवर्तित रहता है।
अपरिवर्तनीय डेटा (3): संख्या, स्ट्रिंग, टपल;
परिवर्तनीय डेटा (3): सूची, शब्दकोश, सेट.
img
चित्र 4-34

संख्याएँ

पायथन के संख्यात्मक प्रकार int (पूर्णांक), float (फ्लोटिंग पॉइंट), bool (बूलियन) और complex (जटिल संख्या) का समर्थन करते हैं। अंतर्निहित type() फ़ंक्शन का उपयोग किसी चर द्वारा संदर्भित ऑब्जेक्ट के प्रकार की जानकारी प्राप्त करने के लिए किया जा सकता है। जैसा कि नीचे दिया गया है:
img
चित्र 4-35

ऑपरेटर

अधिकांश भाषाओं की तरह, पायथन में गणित सरल है। चाहे वह अंकगणितीय ऑपरेटर हों, तुलना ऑपरेटर हों या तार्किक ऑपरेटर हों, वे सभी वही हैं जो हमने स्कूल में सीखा था। इनमें से, अंकगणितीय ऑपरेटर जोड़, घटाव, गुणा और भाग के गणितीय संक्रियाएं हैं। तुलना ऑपरेटर यह तुलना कर सकते हैं कि दो मान कम हैं या नहीं। मुख्य तार्किक ऑपरेटर हैं: तार्किक AND, तार्किक OR, और तार्किक NOT. [क्या आप ट्रेडिंग रणनीतियों में आमतौर पर उपयोग किए जाने वाले स्ट्रिंग्स के बारे में संक्षेप में बात कर सकते हैं?] उदाहरण के लिए, हमारी ट्रेडिंग रणनीतियों में, सबसे अधिक इस्तेमाल किया जाने वाला स्ट्रिंग उत्पाद कोड है, जैसे: "rb1910", "MA1910"।
img
चित्र 4-36

यह ध्यान दिया जाना चाहिए कि "और" एक तार्किक AND है, जिसका अर्थ "और" है। "या" एक तार्किक OR है, जिसका अर्थ है "या तो"। "!" एक तार्किक निषेध है, जिसका अर्थ है "नहीं":
"और" का अर्थ है कि जब सभी शर्तें "सत्य" हों, तो अंतिम शर्त भी "सत्य" है;
"या" का अर्थ है कि सभी शर्तों में से, जब तक उनमें से कोई एक "सत्य" है, अंतिम शर्त भी "सत्य" होगी।

प्राथमिकता

यदि कोई 100 है*अभिव्यक्ति (10-1)/(10+5) के लिए, प्रोग्राम पहले कौन सा चरण गणना करता है? मिडिल स्कूल गणित हमें बताता है: ① यदि यह समान स्तर का ऑपरेशन है, तो इसे आम तौर पर बाएं से दाएं की ओर गणना की जाती है। ② यदि जोड़ और घटाव के साथ-साथ गुणा और भाग दोनों हों, तो पहले गुणा और भाग की गणना करें, फिर जोड़ और घटाव की। ③यदि कोष्ठक हैं, तो पहले कोष्ठक की सामग्री की गणना करें। ④ यदि यह परिचालन नियमों के अनुरूप है, तो परिचालन नियमों का उपयोग गणना को सरल बनाने के लिए किया जा सकता है। माई भाषा की प्राथमिकता नीचे दर्शाई गई है:
img
चित्र 4-37

बूलियन

बूलियन सत्य या असत्य को दर्शाता है और इसका प्रयोग आमतौर पर सशर्त निर्णयों और लूप कथनों में किया जाता है। पायथन सत्य और असत्य को दर्शाने के लिए दो स्थिरांक "सत्य" और "असत्य" को परिभाषित करता है। वास्तव में, किसी भी ऑब्जेक्ट को बूलियन प्रकार में परिवर्तित किया जा सकता है और इसका उपयोग सीधे सशर्त निर्णय के लिए भी किया जा सकता है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-38

स्ट्रिंग

स्ट्रिंग्स पाठ हैं. उत्पाद कोड सेट करते समय अक्सर "if1905" जैसे स्ट्रिंग्स का उपयोग किया जाता है। पायथन में स्ट्रिंग्स को सिंगल कोट्स ' या डबल कोट्स " में संलग्न किया जाता है। प्लस चिह्न + स्ट्रिंग संयोजन ऑपरेटर है। आप इंडेक्स मान के आधार पर स्ट्रिंग में एक वर्ण प्राप्त कर सकते हैं, जैसा कि नीचे दिखाया गया है:
img
चित्र 4-39

सूची

सूची पायथन में सबसे अधिक इस्तेमाल किया जाने वाला डेटा प्रकार है। आप सूची को एक कंटेनर के रूप में सोच सकते हैं, सिवाय इसके कि कंटेनर में तत्व बाएं से दाएं क्रम में व्यवस्थित होते हैं। पहला तत्व 0 है, दूसरा तत्व 1 है, और इसी प्रकार आगे भी। इसके अतिरिक्त, पायथन सूचियाँ किसी भी डेटा प्रकार को संग्रहीत कर सकती हैं, जैसा कि नीचे दिखाया गया है:
img
चित्र 4-40

समारोह

पायथन में फंक्शन्स मूलतः वही हैं जो हमने मिडिल स्कूल में सीखे थे। आप इसे इस रूप में समझ सकते हैं कि फ़ंक्शन की गणना के माध्यम से क्या पास किया जाता है और क्या आउटपुट होता है, जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-41

if कथन

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

यदि...अन्यथा कथन

यदि...अन्यथा कथन भी सामान्यतः प्रयुक्त कथन हैं, उदाहरण के लिए: यदि आज बारिश होगी, तो मैं छाता पकड़ूंगा; अन्यथा, मैं छाता नहीं पकड़ूंगा। else कथन, if कथन का विस्तार है, अर्थात else के बाद आने वाला कोड केवल तभी निष्पादित होगा जब निर्दिष्ट शर्त False हो। जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-43

एलिफ कथन

चूंकि पायथन स्विच स्टेटमेंट्स का समर्थन नहीं करता है, इसलिए पायथन एकाधिक सशर्त निर्णयों को लागू करने के लिए केवल elif स्टेटमेंट्स का उपयोग कर सकता है। उदाहरण के लिए: यदि यह एक सकारात्मक रेखा है, तो मैं तेजी पर रहूंगा; अन्यथा, यदि यह ऋणात्मक रेखा है, तो मैं मंदी में रहूंगा; अन्यथा, मैं इंतजार करूंगा और देखूंगा। जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-44

पाश के लिए

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

जबकि लूप

हम सभी जानते हैं कि बाजार लगातार बदल रहा है। यदि आप नवीनतम K-लाइन सरणी प्राप्त करना चाहते हैं, तो आपको एक ही कोड को बार-बार चलाना होगा। फिर whilex लूप का उपयोग करें. जब तक निर्दिष्ट शर्त सत्य है, लूप हमेशा नवीनतम K-लाइन सरणी प्राप्त कर सकता है।
img
चित्र 4-46

ब्रेक स्टेटमेंट और जारी स्टेटमेंट

लूप की एक पूर्व शर्त है। केवल जब पूर्व शर्त "सत्य" होगी तभी लूप कुछ कार्य बार-बार करना शुरू करेगा, और लूप तब तक समाप्त नहीं होगा जब तक पूर्व शर्त "असत्य" न हो। हालाँकि, ब्रेक स्टेटमेंट लूप के निष्पादन के दौरान तुरंत लूप से बाहर निकल सकता है; continue कथन एक निश्चित लूप को बाधित कर सकता है और फिर अगले लूप को जारी रख सकता है। जैसा कि निम्नलिखित चित्र में दिखाया गया है:
img
चित्र 4-47

वापसी कथन

रिटर्न स्टेटमेंट किसी फ़ंक्शन के निष्पादन को समाप्त करता है और फ़ंक्शन का मान लौटाता है। रिटर्न स्टेटमेंट केवल फ़ंक्शन बॉडी में ही दिखाई दे सकता है। यदि यह कोड में कहीं और दिखाई देता है, तो यह सिंटैक्स त्रुटि उत्पन्न करेगा!
img
चित्र 4-48

रणनीति रूपरेखा

आप रणनीति वास्तुकला को रणनीति के एक निश्चित प्रारूप के रूप में समझ सकते हैं। आविष्कारक का मात्रात्मक उपकरण मतदान मोड को अपनाता है। निम्नलिखित एक क्लासिक कमोडिटी वायदा रणनीति वास्तुकला है।

पंक्ति 4 से 7 पूरे प्रोग्राम का मुख्य प्रवेश कार्य हैं, अर्थात कंप्यूटर पंक्ति 4 से कोड निष्पादित करना शुरू करता है; फिर यह सीधे लाइन 5 को निष्पादित करता है और अनंत लूप में प्रवेश करता है; फिर रणनीति तर्क फ़ंक्शन (onTick) और स्लीप फ़ंक्शन (Sleep) को अनंत लूप में निष्पादित किया जाता है; onTick फ़ंक्शन लाइन 1 में कोड है, और आप लाइन 2 में रणनीति तर्क लिख सकते हैं; हम जानते हैं कि लूप में प्रोग्राम की निष्पादन गति बहुत तेज़ होती है, इसलिए स्लीप फ़ंक्शन (स्लीप) का उपयोग करके प्रोग्राम को कुछ समय के लिए रोका जा सकता है। निम्नलिखित कोड Sleep(500) का अर्थ है कि यह प्रत्येक बार लूप पूरा होने पर 500 मिलीसेकंड के लिए सो जाता है।
img
चित्र 4-49

संक्षेप

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. ऐतिहासिक K-लाइन डेटा प्राप्त करने के लिए इन्वेंटर क्वांटिटेटिव टूल में पायथन भाषा का उपयोग करने का प्रयास करें।
  2. इस अनुभाग के आरंभ में रणनीति कोड लिखने का प्रयास करें और टिप्पणियाँ जोड़ें।

4.4 पायथन भाषा का उपयोग करके रणनीति ट्रेडिंग को कैसे लागू करें

सारांश

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

रणनीति परिचय

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

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

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

डोन्चियन चैनल रणनीति नियम

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

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

डोन्चियन चैनल गणना विधि

इन्वेंटर क्वांटिटेटिव टूल में, डोन्चियन चैनल की गणना विधि बहुत सरल है। आप इसे निर्दिष्ट अवधि के भीतर उच्चतम मूल्य या निम्नतम मूल्य प्राप्त करने के लिए सीधे उपयोग कर सकते हैं, जैसा कि नीचे दिए गए आंकड़े में दिखाया गया है: 5 वीं पंक्ति 50 अवधियों के उच्चतम मूल्य का अधिकतम मूल्य प्राप्त करने के लिए है, और 6 वीं पंक्ति 50 अवधियों के निम्नतम मूल्य का न्यूनतम मूल्य प्राप्त करने के लिए है।
img
चित्र 4-50

रणनीति तर्क

डोन्चियन चैनल का उपयोग करने के कई तरीके हैं। इसका उपयोग अकेले या अन्य संकेतकों के साथ संयोजन में किया जा सकता है। इस पाठ्यक्रम में हम सबसे सरल विधि का उपयोग करेंगे। यही है, जब कीमत नीचे से ऊपर तक ऊपरी ट्रैक को तोड़ती है, यानी ऊपरी दबाव रेखा को तोड़ती है, तो हम मानते हैं कि तेजी का बल मजबूत हो रहा है, बढ़ते बाजार की लहर बन गई है, और एक खरीद उद्घाटन संकेत है उत्पन्न होता है; जब कीमत ऊपर से नीचे की ओर गिरती है और निचले ट्रैक से टूट जाती है, अर्थात जब यह समर्थन रेखा से नीचे गिरती है, तो हम मानते हैं कि शॉर्ट साइड मजबूत हो रही है, नीचे की ओर प्रवृत्ति बन गई है, और एक बिक्री उद्घाटन है संकेत उत्पन्न होता है.
img
चित्र 4-51

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

व्यापार की शर्तें
लंबी स्थिति खोलना: यदि कोई स्थिति नहीं है और समापन मूल्य ऊपरी ट्रैक से अधिक है
एक छोटी स्थिति खोलें: यदि कोई स्थिति नहीं है और समापन मूल्य निचले ट्रैक से कम है
लंबी स्थिति समापन:यदि आप एक लंबा ऑर्डर रखते हैं और समापन मूल्य मध्य ट्रैक से कम है
लघु स्थिति समापन:यदि आप शॉर्ट ऑर्डर रखते हैं और समापन मूल्य मध्य ट्रैक से अधिक है

रणनीति कोड कार्यान्वयन

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

चरण 1: ट्रेडिंग लाइब्रेरी का उपयोग करें

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

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

जावास्क्रिप्ट की टेम्पलेट लाइब्रेरी अंतर्निहित है, पायथन को इस टेम्पलेट को कॉपी और सहेजना होगा: https://www.fmz.com/strategy/24288. फिर नीति संपादन पृष्ठ पर संदर्भ पर क्लिक करें. बेशक, आप टेम्पलेट लाइब्रेरी का उपयोग किए बिना भी रणनीति को पूरा कर सकते हैं।

img

चरण 2: विभिन्न डेटा प्राप्त करें

इस पर ध्यानपूर्वक विचार करें, आपको किस डेटा की आवश्यकता है? हमारी रणनीति ट्रेडिंग तर्क से, हमने पाया कि: सबसे पहले हमें वर्तमान स्थिति की स्थिति प्राप्त करने की आवश्यकता है, फिर समापन मूल्य और बोलिंगर बैंड संकेतक के ऊपरी, मध्य और निचले ट्रैक के बीच संबंधों की तुलना करें, और अंत में निर्धारित करें कि क्या बाजार बंद होने वाला है। तो आइये ये डेटा प्राप्त करें।

K-लाइन डेटा प्राप्त करें

पहला चरण K-लाइन सारणी और वर्तमान K-लाइन समापन मूल्य प्राप्त करना है। केवल K-लाइन सरणी के साथ ही हम N अवधियों की उच्चतम या निम्नतम कीमत प्राप्त करने के लिए API को कॉल कर सकते हैं। कोड में यह इस प्रकार दिखता है:
img
चित्र 4-53
जैसा कि ऊपर चित्र में दिखाया गया है:
पंक्ति 4: K-लाइन सरणी प्राप्त करें, जो एक निश्चित प्रारूप है।
पंक्ति 5: K-लाइन की लंबाई फ़िल्टर करें. क्योंकि हम N अवधियों की उच्चतम या निम्नतम कीमत की गणना करते हैं, इसलिए प्रयुक्त पैरामीटर 50 है। जब K-लाइनों की संख्या 50 से कम होती है, तो इसकी गणना नहीं की जा सकती। इसलिए, हमें यहां K-लाइन की लंबाई को फ़िल्टर करने की आवश्यकता है। यदि 50 से कम K-लाइनें हों, तो इस लूप को छोड़ दें और अगली K-लाइन की प्रतीक्षा जारी रखें।
पंक्ति 6: हम कोड "रिकॉर्ड्स" का उपयोग करते हैं[len(records) - 1]" सबसे पहले K-लाइन सरणी का अंतिम डेटा प्राप्त करता है, अर्थात नवीनतम K-लाइन डेटा। यह डेटा एक ऑब्जेक्ट है, जिसमें शामिल हैं: प्रारंभिक मूल्य, उच्चतम मूल्य, निम्नतम मूल्य, समापन मूल्य, ट्रेडिंग वॉल्यूम, समय और अन्य डेटा। चूंकि यह एक ऑब्जेक्ट है, इसलिए हम नवीनतम K-लाइन समापन मूल्य प्राप्त करने के लिए सीधे ".Close" का उपयोग कर सकते हैं।

स्थिति डेटा प्राप्त करें

मात्रात्मक व्यापार रणनीतियों में स्थिति की जानकारी एक बहुत ही महत्वपूर्ण शर्त है। जब ट्रेडिंग की शर्तें पूरी हो जाती हैं, तो स्थिति की स्थिति और पोजीशन की संख्या के आधार पर यह निर्धारित करना भी आवश्यक है कि ऑर्डर दिया जाए या नहीं। उदाहरण के लिए: जब खरीद स्थिति खोलने की शर्तें पूरी हो जाती हैं, यदि आपके पास कोई स्थिति है, तो आपको फिर से ऑर्डर देने की आवश्यकता नहीं है; यदि आपके पास कोई पद नहीं है, तो आप ऑर्डर दे सकते हैं। इस बार हम स्थिति की जानकारी को सीधे एक फ़ंक्शन में समाहित करते हैं, और हम इसका उपयोग केवल इस फ़ंक्शन को कॉल करके कर सकते हैं:
img
चित्र 4-54

जैसा कि ऊपर चित्र में दिखाया गया है:
यह एक ऐसा फ़ंक्शन है जो स्थिति की जानकारी प्राप्त करता है। यदि यह शॉर्ट पोजीशन है, तो यह 0 लौटाता है; यदि यह एक लंबी स्थिति है, तो यह 1 लौटाता है; यदि यह शॉर्ट पोजीशन है, तो यह -1 लौटाता है। उपरोक्त कोड पर ध्यान दें:
पंक्ति 2: mp नामक एक फ़ंक्शन बनाएं, जिसमें कोई पैरामीटर न हो।
पंक्ति 3: स्थिति सारणी प्राप्त करें, जो एक निश्चित प्रारूप है।
पंक्ति 4: स्थिति सरणी की लंबाई निर्धारित करें। यदि इसकी लंबाई बराबर है, तो यह एक रिक्त स्थान होना चाहिए, इसलिए 0 लौटाएं
पंक्ति 6: सरणी को पार करना शुरू करने के लिए for loop का उपयोग करें। निम्नलिखित तर्क बहुत सरल है। यदि आप लंबी स्थिति रखते हैं, तो यह 1 लौटाता है; यदि आप शॉर्ट पोजीशन रखते हैं, तो यह -1 लौटाता है।
पंक्ति 18: स्थिति जानकारी प्राप्त करने के लिए उस फ़ंक्शन mp को कॉल करें जिसे हमने अभी लिखा था।

पिछले 50 K लाइनों के उच्चतम और निम्नतम मूल्य प्राप्त करें

इन्वेंटर क्वांटिटेटिव टूल में, आप तार्किक गणना स्वयं लिखे बिना "TA.Highest" और "TA.Lowest" फ़ंक्शन का उपयोग करके इसे सीधे प्राप्त कर सकते हैं। और "TA.Highest" और "TA.Lowest" फ़ंक्शन द्वारा लौटाए गए परिणाम सरणियों के बजाय विशिष्ट मान हैं। यह बहुत सुविधाजनक है. इतना ही नहीं, अधिकारी ने सैकड़ों संकेतक कार्यों का भी निर्माण किया है।
img
चित्र 4-55

जैसा कि ऊपर चित्र में दिखाया गया है:
पंक्ति 19: 50 अवधियों में उच्चतम मूल्य का अधिकतम मान प्राप्त करने के लिए "TA.Highest" फ़ंक्शन को कॉल करें
पंक्ति 20: 50 अवधियों में सबसे कम कीमत का न्यूनतम मान प्राप्त करने के लिए "TA.Lowest" फ़ंक्शन को कॉल करें
पंक्ति 21: 50 अवधियों में उच्चतम मूल्य के अधिकतम मूल्य और 50 अवधियों में निम्नतम मूल्य के न्यूनतम मूल्य के आधार पर औसत मूल्य की गणना करें

चरण 3: ऑर्डर दें

उपरोक्त डेटा के साथ, आप ट्रेडिंग लॉजिक और ऑर्डर प्लेस करने के लिए कोड लिख सकते हैं। इसका प्रारूप भी बहुत सरल है। सबसे अधिक इस्तेमाल किया जाने वाला "अगर कथन" है, जिसे शब्दों में वर्णित किया जा सकता है: यदि शर्त 1 और शर्त 2 पूरी होती हैं, तो ऑर्डर दें; यदि शर्त 3 ​​या शर्त 4 पूरी होती है, तो ऑर्डर दें।
img
चित्र 4-56

जैसा कि ऊपर चित्र में दिखाया गया है:
पंक्ति 22: लेनदेन लाइब्रेरी का उपयोग करें, जो एक निश्चित प्रारूप है
पंक्ति 23 और 24: यह एक लंबी स्थिति को बंद करने के लिए एक कथन है, जो "तुलना ऑपरेटरों" और "तार्किक ऑपरेटरों" का उपयोग करता है, जिन्हें हमने पहले सीखा था। इसका अर्थ यह है कि यदि आप वर्तमान में लंबी स्थिति में हैं और समापन मूल्य मध्य ट्रैक से कम है, तो सभी स्थितियाँ बंद हो जाएंगी।
पंक्ति 25 और 26: यह एक लघु ऑर्डर को बंद करने के लिए एक कथन है, जिसमें "तुलना ऑपरेटर" और "तार्किक ऑपरेटर" का उपयोग किया गया है, जिसे हमने पहले सीखा था। इसका अर्थ यह है कि यदि आप वर्तमान में शॉर्ट ऑर्डर रखते हैं और समापन मूल्य मध्य ट्रैक से अधिक है, तो सभी पोजीशन बंद हो जाएंगी।
पंक्ति 27: वर्तमान स्थिति का निर्धारण करें। यदि पद छोटा है, तो अगले चरण पर आगे बढ़ें।
पंक्ति 28 और 29: निर्धारित करें कि समापन मूल्य ऊपरी ट्रैक से अधिक है या नहीं। यदि समापन मूल्य ऊपरी ट्रैक से ऊपर उठता है, तो स्थिति खोलने के लिए खरीदें।
पंक्ति 30 और 31: निर्धारित करें कि समापन मूल्य निचले ट्रैक से कम है या नहीं। यदि समापन मूल्य निचले ट्रैक से नीचे गिर जाता है, तो बेचें और एक स्थिति खोलें।

संक्षेप

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

अगला अनुभाग पूर्वावलोकन

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

गृहकार्य

  1. इस अनुभाग में दी गई रणनीतियों को कॉपी करके लागू करें।
  2. लेनदेन की आवृत्ति को कम करने के लिए इस अनुभाग में रणनीति में एक चलती औसत सूचक जोड़ने का प्रयास करें।

अध्याय 5 रणनीति बैकटेस्टिंग, डिबगिंग और सुधार

5.1 बैकटेस्टिंग का महत्व और नुकसान

सारांश

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

बैकटेस्टिंग का महत्व

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

मात्रात्मक व्यापार तर्क के दृष्टिकोण से, रणनीतियाँ वास्तव में बाजार के बारे में संज्ञान और मान्यताओं की एक श्रृंखला पर आधारित होती हैं। बैकटेस्टिंग कुशलतापूर्वक यह निर्धारित कर सकता है कि क्या ये धारणाएं वैध और स्थिर हैं। ऐतिहासिक रूप से अस्थिर अवधि के दौरान क्या नुकसान हो सकते हैं और उन नुकसानों को रोकने के लिए निर्णय लेने में कैसे सहायता की जा सकती है।

इसके अलावा, मात्रात्मक व्यापार संचालन के दृष्टिकोण से, बैकटेस्टिंग रणनीति तर्क में बग का पता लगाने में मदद कर सकता है, जैसे कि भविष्य के कार्य, मूल्य चोरी, मल्टी-फिटिंग, आदि। विश्वसनीय सबूत प्रदान करें कि रणनीति का उपयोग वास्तविक व्यापार में किया जा सकता है।

  • व्यापारिक संकेतों की सटीकता की पुष्टि करें।
  • लेन-देन के तर्क की पुष्टि करें और देखें कि क्या आपके विचार व्यवहार्य हैं।
  • अपनी ट्रेडिंग प्रणाली में खामियों का पता लगाएं और अपनी मूल रणनीति में सुधार करें।

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

बैकटेस्टिंग के नुकसान

बैकटेस्टिंग ट्रैप सिग्नल फ्लैशिंग:

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

भावी फ़ंक्शन का बैकटेस्टिंग ट्रैप:

भविष्य फ़ंक्शन भविष्य की कीमतों का उपयोग करता है, जिसका अर्थ है कि वर्तमान स्थितियों को भविष्य में संशोधित किया जा सकता है। भविष्य का कार्य भी सिग्नल फ्लैशिंग का कारण बन सकता है। अतः किसी भी फ़ंक्शन में भविष्य फ़ंक्शन की विशेषताएं होती हैं, जैसे कि "ज़िगज़ैग फ़ंक्शन"।

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

बैकटेस्टिंग जाल: मूल्य चोरी

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

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

बैकटेस्टिंग जाल: असंभव लेनदेन मूल्य

ऐसी कई स्थितियाँ हैं जहाँ कीमतों का व्यापार नहीं किया जा सकता:
पहला: वास्तविक ट्रेडिंग में, आप आमतौर पर तब खरीद नहीं सकते जब कीमत ऊपरी सीमा तक पहुंच जाती है, और इसके विपरीत। हालाँकि, बैकटेस्ट में व्यापार करना संभव है।

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

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

चौथा प्रकार: ब्लैक स्वान घटना. जैसा कि नीचे दिए गए चित्र में लाल वृत्त में दिखाया गया है, स्विस फ्रैंक विदेशी मुद्रा की ब्लैक स्वान घटना में, हालांकि सतह पर शुरुआती मूल्य, उच्चतम मूल्य, निम्नतम मूल्य और समापन मूल्य हैं, वास्तव में, दिन की चरम बाजार स्थितियों में, बीच में कीमत शून्य है, बड़ी संख्या में स्टॉप-लॉस ऑर्डर के कारण भगदड़ मच गई, तरलता शून्य थी, और लेनदेन बहुत मुश्किल था, लेकिन बैकटेस्टिंग में स्टॉप लॉस हासिल किया जा सकता था।
img
चित्र 5-2

बैकटेस्टिंग ट्रैप: ओवरफिटिंग

हर बार जब मैं नीचे दी गई तस्वीर देखता हूं, तो सोचता हूं: हाहाहाहा... नीचे दी गई तस्वीर से, आप देख सकते हैं कि एक बेतुका मॉडल, जब तक यह काफी जटिल है, डेटा के साथ पूरी तरह से अनुकूलित हो सकता है।
img
चित्र 5-3

मात्रात्मक व्यापार के लिए, बैकटेस्टिंग ऐतिहासिक डेटा पर आधारित है, लेकिन ऐतिहासिक डेटा के नमूने सीमित हैं। यदि ट्रेडिंग रणनीति में बहुत अधिक पैरामीटर हैं या ट्रेडिंग तर्क बहुत जटिल है, तो ट्रेडिंग रणनीति ऐतिहासिक डेटा के लिए अत्यधिक अनुकूलित होगी।

मात्रात्मक रणनीतियों की मॉडलिंग प्रक्रिया अनिवार्य रूप से बड़ी मात्रा में प्रतीत होने वाले यादृच्छिक डेटा से स्थानीय गैर-यादृच्छिक डेटा खोजने की प्रक्रिया है। सांख्यिकीय ज्ञान की सहायता के बिना, ओवरफिटिंग के जाल में फंसना आसान है।

तो, अपने आप को मूर्ख मत बनाओ. यदि आप पाते हैं कि आउट-ऑफ-सैंपल डेटा अच्छा प्रदर्शन नहीं करता है, और आपको लगता है कि मॉडल को त्यागना दुखद है या आप यह स्वीकार करने के लिए तैयार नहीं हैं कि आपका मॉडल अच्छा नहीं है, और आप आउट-ऑफ-सैंपल डेटा पर मॉडल को तब तक अनुकूलित करना जारी रखते हैं जब तक कि यह आउट-ऑफ-सैंपल डेटा पर अच्छा प्रदर्शन नहीं करता है, तो अंत में यह आपकी मेहनत की कमाई है जिसे नुकसान होगा।

बैकटेस्टिंग ट्रैप: उत्तरजीवी पूर्वाग्रह

वॉल स्ट्रीट पर एक लोकप्रिय चुटकुला है: मान लीजिए कि बाजार में निवेश में 1,000 बंदर भाग ले रहे हैं। पहले वर्ष में, बाजार में हारने वाले 500 बंदरों को समाप्त कर दिया जाएगा। दूसरे वर्ष, आधे बंदरों को फिर से मार दिया गया, जिससे 250 बंदर बचे। तीसरे वर्ष के अंत तक 125 बंदर बचे थे।
img
चित्र 5-4

नौवें वर्ष तक केवल एक बन्दर बचा था। फिर आप इसे बायीं और दायीं ओर देखते हैं, और यह परिचित लगता है। अंततः, जब मैंने एक वित्तीय पत्रिका का कवर देखा, तो मुझे अचानक याद आया, "ओह, क्या यह बफेट नहीं है?"

बेशक यह महज एक मजाक है, लेकिन क्या आपने कभी सोचा है कि अगर 1,000 फंड मैनेजर हैं, तो 10 साल बाद उनमें से करीब 10 फंड मैनेजर लगातार 10 साल तक बाजार से बेहतर प्रदर्शन करेंगे। लेकिन यह यादृच्छिकता और भाग्य से निर्धारित हो सकता है, और इसका फंड मैनेजरों के कौशल से कोई लेना-देना नहीं है।

नीचे दी गई तस्वीर के बाईं ओर के बैकटेस्ट प्रदर्शन की तरह, मेरा मानना ​​है कि अधिकांश निवेशक आश्चर्यचकित होंगे। इस निवेश रणनीति का प्रदर्शन बहुत ठोस रहा है तथा इसमें कोई महत्वपूर्ण गिरावट नहीं आई है।
img
चित्र 5-5

एक मिनट रुकिए, जैसा कि दाईं ओर की तस्वीर में दिखाया गया है, वास्तविक स्थिति अंदर है। इससे पता चला कि बाईं ओर का बैकटेस्ट वक्र, कई बैकटेस्टों में से सबसे अच्छा प्रदर्शन करने वाला वक्र है। कहने का तात्पर्य यह है कि बायीं ओर के बैकटेस्ट में कई स्थितियाँ ऐसी हैं जिनमें प्रदर्शन और भी खराब है।

बैकटेस्टिंग जाल: प्रभाव लागत

वास्तविक व्यापारिक वातावरण में, कीमतें लगातार उतार-चढ़ाव करती रहती हैं। जब आप कोई ट्रेडिंग अवसर देखते हैं और ऑर्डर देते हैं, तो कीमत बदल सकती है। इसलिए, स्लिपेज की समस्या अपरिहार्य है, चाहे वह व्यक्तिपरक व्यापार हो या मात्रात्मक व्यापार।

हालाँकि, बैकटेस्टिंग स्थैतिक डेटा पर आधारित है और वास्तविक ट्रेडिंग वातावरण का अनुकरण करना कठिन है। उदाहरण के लिए: ऑर्डर मूल्य 1050 पर खरीदना है, लेकिन वास्तविक लेनदेन मूल्य 1051 हो सकता है। इस घटना के कई कारण हैं, जैसे: चरम बाजार स्थितियों में तरलता शून्यता, नेटवर्क देरी, सॉफ्टवेयर और हार्डवेयर सिस्टम, सर्वर प्रतिक्रिया, आदि।

बिना फिसलन के बैकटेस्टिंग

img
चित्र 5-6

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

स्लिपेज के साथ बैकटेस्टिंग

img
चित्र 5-7

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

संक्षेप

कुछ मित्र पूछ सकते हैं कि चूंकि मात्रात्मक व्यापार में बहुत सारी समस्याएं हो सकती हैं, तो मैं कैसे साबित करूँ कि मेरी रणनीति ठीक है? वस्तुतः इसका उत्तर बहुत सरल है। रणनीति को व्यवहार में लागू करने से पहले, आपको कुछ समय के लिए लेनदेन का अनुकरण करना होगा। यदि सिम्युलेटेड लेनदेन का लेनदेन मूल्य बैकटेस्ट के दौरान लेनदेन मूल्य के लगभग समान है, तो यह साबित होता है कि रणनीति में कोई समस्या नहीं है, कम से कम रणनीति तर्क के साथ कोई समस्या नहीं है।

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

गृहकार्य

  1. ओवरफिटिंग क्या है और इससे कैसे बचा जाए?
  2. वास्तविक जीवन में उत्तरजीवी पूर्वाग्रह के कुछ उदाहरण क्या हैं?

5.2 मात्रात्मक ट्रेडिंग बैकटेस्टिंग कैसे करें

सारांश

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

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

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

बैकटेस्टिंग इंटरफ़ेस परिचय

आइए इन्वेंटर क्वांटिटेटिव की माई लैंग्वेज रणनीति को एक उदाहरण के रूप में लें और इन्वेंटर क्वांटिटेटिव ट्रेडिंग टूल (www.fmz.com) की आधिकारिक वेबसाइट खोलें। नियंत्रण केंद्र, रणनीति लाइब्रेरी, रणनीति का चयन करें, बैकटेस्ट का अनुकरण करें पर क्लिक करें और निम्नलिखित पृष्ठ दर्ज करें:
img
चित्र 5-8

बैकटेस्ट कॉन्फ़िगरेशन इंटरफ़ेस में, आप इसे अपनी वास्तविक आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं। उदाहरण के लिए: बैकटेस्ट समय, के-लाइन अवधि, डेटा प्रकार (सिमुलेशन स्तर डेटा या वास्तविक समय स्तर डेटा) सेट करें। तुलना में, सिमुलेशन स्तर डेटा बैकटेस्टिंग तेज है, जबकि वास्तविक समय स्तर डेटा बैकटेस्टिंग अधिक सटीक है)। इसके अलावा, आप बैकटेस्टिंग शुल्क और खाते की प्रारंभिक धनराशि आदि भी निर्धारित कर सकते हैं।

माई लैंग्वेज ट्रेडिंग लाइब्रेरी पर क्लिक करें, पहला ट्रेडिंग सेटिंग्स टैब है। इन्वेंटर क्वांटिटेटिव ट्रेडिंग टूल में माई लैंग्वेज रणनीति में दो बैकटेस्ट निष्पादन विधियां हैं, अर्थात्: समापन मूल्य मॉडल और वास्तविक समय मूल्य मॉडल। समापन मूल्य मॉडल का अर्थ है कि मॉडल का निष्पादन केवल वर्तमान K-लाइन के पूरा होने के बाद ही किया जाता है, तथा लेनदेन का निष्पादन तब किया जाता है जब अगली K-लाइन शुरू होती है। वास्तविक समय मूल्य मॉडल का अर्थ है कि मॉडल को हर बार मूल्य परिवर्तन होने पर एक बार निष्पादित किया जाता है, और ट्रेडिंग सिग्नल स्थापित होने पर लेनदेन तुरंत निष्पादित किया जाता है। जैसा कि नीचे दिया गया है:
img
चित्र 5-9

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

वायदा विकल्प में बैकटेस्ट किए जाने वाले अनुबंध प्रकार को भरें, जैसे कि rb000 या rb888। वास्तविक विकल्प का उपयोग मुख्य रूप से वास्तविक ट्रेडिंग के लिए किया जाता है, और डिफ़ॉल्ट सेटिंग्स को बैकटेस्टिंग में रखा जा सकता है। यदि स्वचालित पुनर्प्राप्ति प्रगति को सत्य पर क्लिक किया जाता है, तो जब रणनीति वास्तविक समय संचालन के दौरान रोबोट को रोकती है, तो रोबोट को पुनः आरंभ करने से सिग्नल की पुनर्गणना किए बिना स्वचालित रूप से पिछली सिग्नल स्थिति बहाल हो जाएगी। ऑर्डर पुनःप्रयासों की डिफ़ॉल्ट संख्या 20 है। यदि कोई ऑर्डर विफल हो जाता है, तो सिस्टम ऑर्डर को पुनः रखने का प्रयास करेगा। नेटवर्क पोलिंग अंतराल वह समय अंतराल है जिस पर रोबोट रणनीति कोड निष्पादित करता है।
img
चित्र 5-10

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

रणनीति बैकटेस्टिंग

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

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

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

जैसा कि नाम से पता चलता है, वार्षिक अस्थिरता दैनिक अस्थिरता को प्रति वर्ष व्यापारिक दिनों की संख्या से गुणा करने पर प्राप्त होती है। यह किसी फंड के जोखिम को मापता है, लेकिन यह निश्चित रूप से कुल जोखिम नहीं है। उदाहरण के लिए, रणनीति ए में अस्थिरता अधिक है, लेकिन यह अच्छी दर से रिटर्न के साथ ऊपर की ओर उतार-चढ़ाव करती रही है, जबकि रणनीति बी में अस्थिरता कम है, लेकिन यह स्थिर रही है। क्या हम कह सकते हैं कि रणनीति बी, रणनीति ए से बेहतर है? जैसा कि निम्नलिखित चित्र में दिखाया गया है, रणनीति A:
img
चित्र 5-14

अंत में, लॉग सूचना कॉलम में, बैकटेस्ट के दौरान प्रत्येक लेनदेन की मिलान स्थिति को विस्तार से दर्ज किया जाता है, जिसमें लेनदेन का विशिष्ट समय, विनिमय, खरीद और बिक्री, उद्घाटन और समापन प्रकार, बैकटेस्ट इंजन द्वारा मिलान किए गए लेनदेन मूल्य, लेनदेन की मात्रा और मुद्रित जानकारी आदि शामिल हैं।
img
चित्र 5-15

बैकटेस्टिंग के बाद

कई बार, यहां तक ​​कि अधिकांश मामलों में, बैकटेस्टिंग के परिणाम आपकी अपेक्षाओं से बहुत दूर होंगे। आखिरकार, ऐसी रणनीति जो दीर्घकालिक, सतत और स्थिर लाभ उत्पन्न करती है, उसे प्राप्त करना आसान नहीं है। इसके लिए बाजार को समझने की आपकी क्षमता की आवश्यकता होती है।

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

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

संक्षेप

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

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

गृहकार्य

  1. इस अनुभाग में रणनीति की प्रतिलिपि बनाने और प्रदर्शन रिपोर्ट का बैकटेस्ट करने का प्रयास करें
  2. अपने स्वयं के ट्रेडिंग अनुभव के आधार पर, इस अनुभाग में रणनीतियों को बेहतर बनाने और अनुकूलित करने का प्रयास करें

5.3 रणनीति बैकटेस्टिंग प्रदर्शन रिपोर्ट को कैसे समझें

सारांश

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

वस्तुनिष्ठ एवं पूर्ण मूल्यांकन

चाहे वह वास्तविक ट्रेडिंग डेटा का रिकॉर्ड हो या ऐतिहासिक डेटा का उपयोग करके बैक-टेस्टिंग रिपोर्ट हो, मॉडल की गुणवत्ता का मूल्यांकन ट्रेडिंग स्थितियों के आंकड़ों के माध्यम से किया जाता है।

मुख्य प्रश्न यह है कि तुलना के लिए कौन से सांख्यिकीय डेटा की आवश्यकता है? आइए एक उदाहरण देखें: जैसा कि नीचे दिए गए चित्र में दिखाया गया है, यह मानते हुए कि परीक्षण में एक ही समय अवधि के दौरान डेटा के निम्नलिखित दो सेट प्राप्त किए गए हैं, क्या हम यह निर्धारित कर सकते हैं कि कौन सा मॉडल बेहतर प्रदर्शन करता है?
img
चित्र 5-16

इसका उत्तर है, नहीं। मूल्यांकन प्रणाली की एकतरफाता मात्रात्मक व्यापार प्रणाली को एक मृत अंत तक ले जाएगी।

ट्रेडिंग सिस्टम को उपयोग में लाने से पहले उसे ऐतिहासिक बैकटेस्टिंग में सफल होना होगा। जो ट्रेडिंग सिस्टम ऐतिहासिक बैकटेस्टिंग में सफल नहीं हो सकता, उसके दीर्घकाल में वास्तविक ट्रेडिंग में लाभ कमाने की संभावना नहीं होती। किसी ट्रेडिंग सिस्टम को वास्तविक ट्रेडिंग में लाने के लिए ऐतिहासिक बैकटेस्टिंग एक आवश्यक शर्त है।

एक ट्रेडिंग सिस्टम जो ऐतिहासिक बैकटेस्टिंग को पास कर सकता है, जरूरी नहीं कि वह एक अच्छा ट्रेडिंग सिस्टम हो, लेकिन अगर वह ऐतिहासिक बैकटेस्टिंग को पास नहीं कर सकता है, तो वह निश्चित रूप से एक अच्छा ट्रेडिंग सिस्टम नहीं है। सामान्यतः, हमें प्रदर्शन रिपोर्टों का विश्लेषण स्थिरता, सततता तथा यह कि क्या वे अपेक्षाओं पर खरी उतरती हैं, के दृष्टिकोण से करना चाहिए।
img
चित्र 5-17

जैसा कि ऊपर चित्र में दिखाया गया है, जो कोई भी मात्रात्मक व्यापार से परिचित है, उसने इन लंबे और अस्पष्ट बैकटेस्ट प्रदर्शन डेटा शब्दों को देखा होगा। इन प्रदर्शन आंकड़ों में से कई तो विरोधाभासी भी हैं। कई मात्रात्मक शुरुआती लोग इस बात को लेकर भ्रमित रहते हैं कि किस डेटा पर ध्यान केंद्रित किया जाए।

उपरोक्त चित्र में प्रदर्शन संकेतक शब्दों को आम तौर पर कई श्रेणियों में विभाजित किया जा सकता है: प्रदर्शन अनुपात, चक्र विश्लेषण, विभिन्न वक्र, चरम व्यापार विश्लेषण, आदि। यहां तक ​​कि फंड उत्पादों के नजरिए से भी, उनमें से ज्यादातर सिर्फ बैकटेस्ट गणना परिणामों का प्रदर्शन हैं, जिनका व्यावहारिक अनुप्रयोग महत्व बहुत कम है, जैसे: खाता पूंजी आवश्यकता, होल्डिंग आय, विश्वास सीमा, आदि। आपको केवल महत्वपूर्ण लोगों पर ध्यान केंद्रित करने की आवश्यकता हो सकती है। नीचे मैं विस्तृत विवरण के लिए बैकटेस्ट प्रदर्शन संकेतकों में से सबसे महत्वपूर्ण का चयन करूंगा।

महत्वपूर्ण प्रदर्शन संकेतक

अधिकतम ड्रॉडाउन

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

गणितीय दृष्टिकोण से, यदि पूंजी में 20% की हानि होती है, तो शेष निधियों को मूल पूंजी स्तर को बहाल करने के लिए 25% का लाभ अर्जित करना होगा। यदि हानि 50% है, तो हानि से पहले पूंजी स्तर को बहाल करने के लिए शेष निधियों को 100% लाभ अर्जित करना होगा।

फिर इसमें कोई संदेह नहीं है कि नुकसान जितना अधिक होगा, प्रारंभिक पूंजी स्तर तक पहुंचने की संभावना उतनी ही कम होगी और कठिनाई भी उतनी ही अधिक होगी। फंडों के लिए ऊपर की ओर लाभ की संभावना असीमित है, लेकिन नीचे की ओर हानि की संभावना सीमित है, तथा नीचे गिरने की संभावना अधिक है।

चाहे इसे कैसे भी परिभाषित किया जाए, कम से कम ये दो बिंदु वर्तमान मुख्यधारा की समझ हैं:

  1. अधिकतम रिट्रेसमेंट जितना छोटा होगा, उतना बेहतर होगा;
  2. ड्रॉडाउन जोखिम के सीधे आनुपातिक है। जितनी अधिक गिरावट होगी, जोखिम उतना ही अधिक होगा, तथा जितनी कम गिरावट होगी, जोखिम उतना ही कम होगा।

समायोजित जोखिम-से-लाभ अनुपात (RAROC)

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

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

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

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

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

लेन-देन की संख्या

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

सामान्यतः, घरेलू स्टॉक और कमोडिटीज के लिए, डेटा का 5 वर्ष से अधिक समय तक बैकटेस्टिंग किया जाना चाहिए, तथा नए सूचीबद्ध उत्पादों के लिए, कम से कम 3 वर्ष तक बैकटेस्टिंग की आवश्यकता होती है। अंतर्राष्ट्रीय बाजार में पहले से सूचीबद्ध उत्पादों या वस्तुओं जैसे सोना और अमेरिकी डॉलर सूचकांक के लिए, कम से कम एक तेजी-मंदी चक्र का परीक्षण किया जाना चाहिए, जो आमतौर पर 10 से 15 वर्ष से अधिक होना चाहिए। बैकटेस्टिंग अवधि इतनी लंबी होनी चाहिए कि बैकटेस्टिंग परिणाम विश्वसनीय हों। जो उत्पाद इस आवश्यकता को पूरा नहीं करते हैं, उनके लिए जोखिम जोखिम को कम करने के लिए स्थिति खोलते समय R मान को उचित रूप से भारित किया जाना चाहिए।

औसत लाभ

औसत लाभ सूचक साधारण लगता है, लेकिन यह वास्तव में बहुत महत्वपूर्ण है। इसकी गणना भी बहुत सरल है: शुद्ध लाभ / लेनदेन की संख्या। यह कहना कोई अतिशयोक्ति नहीं है कि यह एक दर्पण है जो उन बैकटेस्ट प्रदर्शनों का पता लगा सकता है जो सतह पर उज्ज्वल दिखाई देते हैं। जैसा कि नीचे दिए गए चित्र में दिखाया गया है, यदि यह रणनीति पैसा कमा सकती है, तो यह असामान्य है:
img
चित्र 5-18
img
चित्र 5-19

यदि आप इस रणनीति के बैकटेस्ट प्रदर्शन को देखें, तो आपके मन में यह प्रश्न उठ सकता है: क्या ऐसी लगभग पूर्ण रणनीति का उपयोग न करना दुख की बात नहीं होगी? ज़रा ठहरिये! कृपया दूसरी तस्वीर में औसत लाभ को ध्यान से देखें, जो केवल 17 है, जिसका अर्थ है कि प्रत्येक लेनदेन से औसत लाभ केवल 17 युआन है।

उदाहरण के तौर पर 10 युआन की उछाल वाले वायदा बाजार के अधिकांश उत्पादों को लें। जिसने भी वास्तविक ट्रेडिंग की है वह इसका अर्थ समझ सकता है। वास्तविक ट्रेडिंग में एक छलांग तो दूर, दस या आठ छलांग भी संभव है। दो छलांग और तीन छलांग आम बात है।

जीत दर

जीतने की दर कभी भी अकेली नहीं होती, या केवल जीतने की दर के आधार पर समस्या के बारे में बात करना अवास्तविक है। यदि आप सही बाजार में सही मॉडल का उपयोग करते हैं, तो 80% जीत दर हासिल करना आश्चर्य की बात नहीं है, लेकिन यह अर्थहीन है।

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

विस्तृत इक्विटी वक्र

जैसा कि कहा जाता है, एक तस्वीर हजार शब्दों के बराबर होती है। विस्तृत इक्विटी वक्र पहली प्रविष्टि के समय से शुरू होकर चार्ट के अंतिम बार के समय तक चलता है। यह ट्रेडिंग के लिए एक वास्तविक समय इक्विटी वक्र है। यह वास्तविक समय है क्योंकि यह प्रत्येक बार पर अस्थायी लाभ और हानि को ध्यान में रखता है।
img
चित्र 5-20

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

वार्षिकीकृत रिटर्न दर

वार्षिक रिटर्न एक विवादास्पद संकेतक है। कुछ लोग सोचते हैं कि यह आम लोगों के देखने के लिए है और इसका कोई संदर्भ मूल्य नहीं है। सबसे पहले, लाभ कमाना मॉडल के चयन के लिए एक पूर्व शर्त है, या दूसरे शब्दों में, मॉडल रिटर्न का अपेक्षित मूल्य सकारात्मक होना चाहिए।
img
चित्र 5-21

आप अनगिनत 100% रिटर्न पा सकते हैं, लेकिन अधिकतम आप केवल एक बार ही 100% रिटर्न पा सकते हैं। वार्षिकीकृत रिटर्न दर और वास्तविक रिटर्न दर (होल्डिंग अवधि रिटर्न दर) के बीच का अंतर बहुत बड़ा हो सकता है, कभी-कभी तो हमारी कल्पना से भी अधिक।

संक्षेप

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

इससे भी महत्वपूर्ण बात यह है कि क्रियान्वयन स्तर पर भावनात्मक मुद्दे, मॉडल को उत्पादन में लाने में महत्वपूर्ण कारक होते हैं। वास्तविक व्यापार "भावनात्मक शून्य" वातावरण में नहीं चलाया जा सकता। फैट-टेल घटना एक ऐसी चीज है जिसके बारे में प्रत्येक प्रोग्रामेटिक ट्रेडर को हमेशा सतर्क रहना चाहिए।

गृहकार्य

  1. उन प्रदर्शन संकेतकों की सूची बनाएं जो आपको लगता है कि बैकटेस्टिंग में सबसे महत्वपूर्ण हैं
  2. शार्प अनुपात सूचक की गणना करने का प्रयास करें

5.4 आउट-ऑफ-सैंपल परीक्षण की आवश्यकता क्यों है

सारांश

पिछले अनुभाग में, हमने आपको रणनीति बैकटेस्टिंग प्रदर्शन रिपोर्ट को समझने का तरीका सिखाने के लिए कई महत्वपूर्ण प्रदर्शन संकेतकों पर ध्यान केंद्रित किया था। वास्तव में, ऐसी रणनीति लिखना जो बैकटेस्टिंग के माध्यम से पैसा कमा सके, सबसे कठिन काम नहीं है। इससे भी अधिक कठिन बात यह है कि यह मूल्यांकन कैसे किया जाए कि क्या यह रणनीति वास्तविक व्यापार में भी प्रभावी रहेगी। तो आज मैं आपको आउट-ऑफ-सैंपल परीक्षण और इसके महत्व के बारे में समझाऊंगा।

बैकटेस्टिंग वास्तविक ट्रेडिंग के समान नहीं है

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

मैंने कई ट्रेडिंग रणनीतियाँ देखी हैं जिनकी बैकटेस्ट करने पर सफलता दर 50% से अधिक होती है। इतनी ऊंची जीत दर के साथ, लाभ और हानि अनुपात अभी भी 1:1 से ऊपर हो सकता है। हालाँकि, एक बार जब इन रणनीतियों को व्यवहार में लाया जाता है, तो मूलतः इनका परिणाम नुकसान ही होता है। नुकसान के कई कारण हैं, जिनमें से एक यह है कि बैकटेस्टिंग के समय डेटा नमूने बहुत कम होते हैं, जिससे डेटा पूर्वाग्रह पैदा होता है।

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

आउट-ऑफ-सैंपल परीक्षण क्या है?

जब डेटा सीमित है तो हम ट्रेडिंग रणनीतियों का वैज्ञानिक रूप से बैकटेस्ट करने के लिए सीमित डेटा का सर्वोत्तम उपयोग कैसे कर सकते हैं? इसका उत्तर है नमूना-बाहर परीक्षण। बैकटेस्टिंग के समय, ऐतिहासिक डेटा को समय अनुक्रम के अनुसार दो खंडों में विभाजित किया जाता है। डेटा का पहला खंड रणनीति अनुकूलन के लिए उपयोग किया जाता है और इसे प्रशिक्षण सेट कहा जाता है, जबकि डेटा का दूसरा खंड आउट-ऑफ-सैंपल परीक्षण के लिए उपयोग किया जाता है और इसे परीक्षण सेट कहा जाता है।

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

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

उदाहरण के लिए, मान लीजिए कि आप कमोडिटी फ्यूचर्स रिबार का बैकटेस्ट करना चाहते हैं, और रिबार पर लगभग 10 वर्षों का डेटा (2009-2019) उपलब्ध है। फिर आप 2009 से 2015 तक के डेटा को प्रशिक्षण सेट के रूप में और 2015 से 2019 तक के डेटा को परीक्षण सेट के रूप में उपयोग कर सकते हैं। उदाहरण के लिए, एक डबल मूविंग औसत रणनीति के लिए, प्रशिक्षण सेट में सर्वोत्तम पैरामीटर समूह हैं (15-अवधि मूविंग औसत और 90-अवधि मूविंग औसत), (5-अवधि मूविंग औसत और 50-अवधि मूविंग औसत), (10-अवधि मूविंग औसत और 100-अवधि मूविंग औसत)... फिर, हम पैरामीटर के इन समूहों को बैकटेस्टिंग के लिए परीक्षण सेट में डालते हैं, और प्रशिक्षण सेट और परीक्षण सेट के बैकटेस्ट प्रदर्शन रिपोर्ट और पूंजी वक्र की तुलना करते हैं ताकि यह निर्धारित किया जा सके कि उनका अंतर एक उचित सीमा के भीतर है या नहीं।

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

उन्नत आउट-ऑफ-सैंपल परीक्षण

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

पुनरावर्ती परीक्षण का मूल सिद्धांतः पहले लंबे ऐतिहासिक डेटा के साथ मॉडल को प्रशिक्षित करें, और बाद में अपेक्षाकृत छोटे डेटा के साथ मॉडल की जांच करें, और फिर डेटा की खिड़की को लगातार पीछे की ओर ले जाएं, प्रशिक्षण और परीक्षण के चरणों को दोहराएं।
प्रशिक्षण डेटा: 2000 से 2001, परीक्षण डेटा: 2002;
प्रशिक्षण डेटा: 2001 से 2002, परीक्षण डेटा: 2003;
प्रशिक्षण डेटा: 2002 से 2003, परीक्षण डेटा: 2004;
प्रशिक्षण डेटा: 2003 से 2004, परीक्षण डेटा: 2005;
प्रशिक्षण डेटा: 2004 से 2005, परीक्षण डेटा: 2006;
... और इसी तरह ...
अंत में, रणनीति के प्रदर्शन का समग्र मूल्यांकन करने के लिए [2002, 2003, 2004, 2005, 2006 ... ] के परीक्षण परिणामों का आंकलन किया गया।

अनुवर्ती परीक्षण के सिद्धांतों को निम्नानुसार समझाया जा सकता है:
img
चित्र 5-22

उपरोक्त चित्र में दो अलग-अलग तरीके दिखाए गए हैं।

पहला: प्रत्येक परीक्षण में, परीक्षण डेटा छोटा होता है और परीक्षण की संख्या अधिक होती है।
दूसरा प्रकार: प्रत्येक परीक्षण के दौरान, परीक्षण डेटा अपेक्षाकृत लंबा होता है और परीक्षण की संख्या कम होती है।

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

2000 से 2003 तक के वर्षों को चार भागों में विभाजित करें। क्रॉस-चेकिंग की प्रक्रिया इस प्रकार हैः
1। प्रशिक्षण डेटाः 2001-2003, परीक्षण डेटाः 2000;
2. प्रशिक्षण डेटाः 2000-2002, परीक्षण डेटाः 2003
3. प्रशिक्षण डेटाः 2000, 2001, 2003, परीक्षण डेटाः 2002;
4. प्रशिक्षण डेटाः 2000, 2002, 2003, परीक्षण डेटाः 2001;
img
चित्र 5-23

जैसा कि ऊपर चित्र में दिखाया गया हैः क्रॉस-टेस्टिंग का सबसे बड़ा लाभ सीमित डेटा का पूरा उपयोग करना है, प्रत्येक प्रशिक्षण डेटा भी परीक्षण डेटा है। लेकिन जब क्रॉस-टेस्टिंग को रणनीति मॉडल के परीक्षण में लागू किया जाता है, तो स्पष्ट कमियां भी होती हैंः

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

ट्रेडिंग रणनीति मॉडल विकसित करते समय, अधिकांश तकनीकी संकेतक एक निश्चित लंबाई के ऐतिहासिक डेटा पर आधारित होते हैं। उदाहरण के लिए, ट्रेंडिंग संकेतक का उपयोग करके, पिछले 50 दिनों के ऐतिहासिक डेटा की गणना की जाती है, और अगले ट्रेडिंग दिन के लिए, यह संकेतक उस ट्रेडिंग दिन से 50 दिन पहले का डेटा है, तो इन दोनों संकेतकों के डेटा की गणना 49 दिनों के लिए समान है, जिससे प्रत्येक दो आसन्न दिनों में संकेतक में बहुत कम बदलाव होता है।
img
चित्र 5-24

डेटा ओवरलैप करने से निम्नलिखित प्रभाव पड़ते हैंः

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

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

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

संक्षेप

ट्रेडिंग की तरह, हम कभी भी समय को पार नहीं कर सकते हैं, अपने लिए एक सही निर्णय ले सकते हैं, जिसमें कोई गलती नहीं है। यदि भगवान का हाथ या भविष्य से वापस आने की क्षमता है, तो बिना परीक्षण के, सीधे ऑनलाइन ट्रेडिंग करें, और कटोरे से भरें। और मैं, एक नश्वर व्यक्ति, ऐतिहासिक डेटा में हमारी रणनीति की जांच करना चाहिए।

हालाँकि, विशाल मात्रा में ऐतिहासिक डेटा होने के बावजूद, विशाल, अंतहीन और अप्रत्याशित भविष्य के सामने यह अत्यंत दुर्लभ प्रतीत होता है। इसलिए, इतिहास के आधार पर नीचे से ऊपर तक विकसित की गई व्यापार प्रणाली अंततः समय के साथ डूब जाएगी। क्योंकि इतिहास भविष्य को समाप्त नहीं कर सकता। इसलिए, एक पूर्ण सकारात्मक अपेक्षा व्यापार प्रणाली को उसके आंतरिक सिद्धांतों और तर्क द्वारा समर्थित होना चाहिए।

“भरोसा करो, लेकिन पुष्टि भी करो” — राष्ट्रपति रीगन

गृहकार्य

  1. वास्तविक जीवन में कौन सी घटनाएं उत्तरजीवी पूर्वाग्रह के उदाहरण हैं?
  2. आविष्कारक के मात्रात्मक उपकरणों का उपयोग इन-सैंपल और आउट-सैंपल दोनों का बैकटेस्ट करने और उनके अंतर की तुलना करने के लिए करें।

5.5 ट्रेडिंग रणनीति अनुकूलन और अनुकूलन

सारांश

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

प्रवेश और निकास को अनुकूलित करें

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

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

पैरामीटर अनुकूलन

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

जैसा कि नीचे दिए गए चित्र में दिखाया गया है, डबल मूविंग एवरेज रणनीति को एक उदाहरण के रूप में लेते हुए, यह स्वयं एक बहुआयामी उदाहरण है। यदि हम प्रत्येक पैरामीटर के बैकटेस्ट परिणाम को एक बिंदु के रूप में खींचते हैं (नीचे दिए गए चित्र पर ध्यान दें), तो प्रत्येक पैरामीटर इस रणनीति का एक आयाम है, और अंततः सभी पैरामीटर संयोजन इस जटिल बहुआयामी सतह आकार (पहाड़ की तरह) का निर्माण करते हैं।
img
चित्र 5-25

जैसा कि ऊपर दिखाया गया है, यह एक दोहरे पैरामीटर वाला रणनीति प्रदर्शन चार्ट है। जैसे-जैसे पैरामीटर बदलते हैं, वापसी की अंतिम दर भी महत्वपूर्ण रूप से बदल जाती है, और सतह बहुत अधिक विकृत हो जाती है, जिससे अलग-अलग ऊंचाइयों के "शिखर" और "गर्त" बनते हैं। आमतौर पर अनुकूलन परिणाम प्राप्ति में प्रथम स्थान सम्पूर्ण सतह का उच्चतम बिंदु होता है। हालाँकि, पैरामीटर संवेदनशीलता, वस्तुनिष्ठता आदि के परिप्रेक्ष्य से, कभी-कभी यह परिणाम "इष्टतम" नहीं हो सकता है। क्योंकि बाजार लगातार बदल रहा है.

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

पैरामीटर पठार

उपरोक्त चित्र को उदाहरण के रूप में लेते हुए, एक अच्छा रणनीति पैरामीटर वितरण एक पैरामीटर पठार होना चाहिए। यहां तक ​​कि जब पैरामीटर सेटिंग विचलित हो जाती है, तब भी रणनीति की लाभप्रदता की गारंटी दी जा सकती है। ऐसे पैरामीटर अत्यधिक स्थिर होते हैं, जो भविष्य में वास्तविक परिचालनों में विभिन्न बाजार स्थितियों का सामना करते समय रणनीति को अधिक सार्वभौमिक बना सकते हैं।
img
चित्र 5-27

पैरामीटर द्वीप

उपरोक्त आंकड़े को एक उदाहरण के रूप में लेते हुए, यदि बैकटेस्ट प्रदर्शन पैरामीटर द्वीप दिखाता है, तो जब पैरामीटर थोड़ा स्थानांतरित होता है, तो रणनीति की लाभप्रदता बहुत कम हो जाएगी। ऐसे पैरामीटर अक्सर अपनी खराब सार्वभौमिकता के कारण वास्तविक लेनदेन में लगातार बदलती बाजार स्थितियों से निपटने में कठिन होते हैं।

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

फ़िल्टर जोड़ें

कई प्रवृत्ति रणनीतियाँ प्रवृत्ति को अच्छी तरह से समझ सकती हैं और बाजार के रुझान के अनुसार अच्छा रिटर्न प्राप्त कर सकती हैं। हालाँकि, दीर्घकाल में अंतिम परिणाम या तो छोटा लाभ या हानि ही होता है। समस्या क्या है?

इसका कारण यह है कि यह रणनीति अस्थिर बाजार में बार-बार व्यापार करती रहती है, और अधिकांश अस्थिर व्यापार घाटे या छोटे मुनाफे वाले होते हैं। बाजार लगभग 70% समय अस्थिर रहता है। दीर्घकालिक रूप से लगातार छोटे-छोटे नुकसान से पिछला सारा लाभ नष्ट हो जाता है।
img
चित्र 5-28

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

वित्तपोषण वक्र को सुचारू बनाना

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

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

पवित्र प्याले की खोज छोड़ दो

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

लेकिन क्या कोई पवित्र प्याला है? वास्तव में इसका उत्तर बहुत सरल है, 'नहीं'। वास्तव में, इसे समझना कठिन नहीं है। यदि इस बाजार में वास्तव में नियम हैं, तो उच्च बुद्धि, उच्च शिक्षा और कठिन परिश्रम वाले लोग नियमों को जानने में सक्षम होंगे। चाहे वे गणितीय विश्लेषण, सूचना एकाधिकार या अन्य विश्लेषण विधियों का उपयोग करें, वे अंततः बाजार में अधिकांश धन कमाएंगे। लंबे समय में, ये लोग व्यापारिक बाजार पर तब तक एकाधिकार कर लेंगे जब तक कि बाजार सामान्य रूप से संचालित नहीं हो सकेगा।

संक्षेप

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

साथ ही, आपको यह भी समझना चाहिए कि लाभ और हानि एक ही स्रोत से आते हैं। घाटा सम्पूर्ण ट्रेडिंग रणनीति का हिस्सा है। यहां तक ​​कि सबसे अच्छी ट्रेडिंग रणनीति भी कई बार गिरावट का सामना कर सकती है। जब हर व्यापार में नुकसान हो रहा हो, तो आपके व्यापार नियमों और रणनीतियों पर सवाल नहीं उठाया जाना चाहिए। कम से कम अपने रणनीतिक तार्किक ढांचे को आसानी से न बदलें, जब तक कि आपका तार्किक ढांचा शुरू से ही गलत न हो।

गृहकार्य

  1. अपनी खुद की रणनीति की विशेषताओं के आधार पर एक निवेश पोर्टफोलियो बनाएं और आविष्कारक के मात्रात्मक उपकरणों का उपयोग करके बैकटेस्ट करें
  2. इस अनुभाग की सामग्री के आधार पर अपनी मात्रात्मक ट्रेडिंग रणनीति को अनुकूलित करने का प्रयास करें

5.6 संभाव्यतावादी सोच विकसित करें और अपने ट्रेडिंग पैटर्न में सुधार करें

सारांश

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

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

हालाँकि, उन सभी में एक सामान्य विशेषता है, वह यह कि वे भविष्य के मूल्य विश्लेषण के बारे में केवल मोटा अनुमान ही लगा सकते हैं, लेकिन सटीक अनुमान नहीं लगा सकते। भले ही मौलिक विश्लेषण को तकनीकी विश्लेषण के साथ जोड़ दिया जाए, तो भी यह "सटीकता" में सुधार की समस्या को हल नहीं कर सकता है, इसलिए ट्रेडिंग शुरू से अंत तक एक संभाव्यता का खेल है।

संभावना का खेल

वास्तव में, व्यापार केवल संभावना का खेल नहीं है। किसी के जीवन में, सड़क पार करने जैसी छोटी-छोटी बातों से लेकर (बत्ती हरी है, क्या अब सड़क पार करना सुरक्षित है?) और किस तरह के दोस्त बनाएं (क्या यह दोस्त विश्वसनीय है?); किस प्रकार का कैरियर अपनाना चाहिए (क्या व्यावसायिक व्यापार वास्तव में एक अच्छा कैरियर है?) और किससे विवाह करना चाहिए (क्या हम साथ-साथ खुश रहेंगे?) जैसी बड़ी बातें, ये सभी जोखिम और लाभ का आकलन करने के संभाव्यता के खेल हैं। क्योंकि हमारे पास भविष्य की भविष्यवाणी करने की क्षमता नहीं है, इसलिए हर बार जब हम कुछ करते हैं, चाहे हम कितने भी आश्वस्त क्यों न हों, हमेशा जोखिम रहता है और हम 100% निश्चित नहीं हो सकते।

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

लेन-देन विफलता के कारण

कारण 1: मानव स्वभाव के कारण

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

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

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

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

कारण 2: मुझे जल्दी पैसा कमाना पसंद है

एक विदेशी संस्था ने एक बार आंकड़े प्रस्तुत किये थे, जिनसे पता चला कि दीर्घावधि में, अधिकांश उद्योगों की शुद्ध परिसंपत्तियों पर वार्षिक रिटर्न 15% से अधिक होने की संभावना नहीं है। इसके विपरीत, कई खुदरा निवेशक बाजार में 15% लाभ कमाने पर दूसरों को नमस्ते कहने में शर्म महसूस करते हैं। लोग शीघ्रता से पैसा कमाना चाहते हैं, इसलिए वे भारी ट्रेडिंग और अल्पकालिक ट्रेडिंग में संलग्न होते हैं।

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

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

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

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

इसके अलावा, पिछले तीन वर्षों में निजी इक्विटी उत्पादों की रैंकिंग पर गौर करें तो शीर्ष 100 में से कितने दैनिक सट्टेबाजी या अल्पकालिक व्यापार में लगे हुए हैं? इसमें कोई संदेह नहीं है कि अल्पकालिक निवेश की सफलता दर बहुत कम है। यदि यह तरीका सफल भी हो जाए तो भी शीघ्रता से धन कमाने का यह तरीका लम्बे समय तक कायम रखना कठिन है। यदि आपमें प्रतिभा नहीं है, तो इस प्रकार की तरकीबें अपनाते समय सावधान रहें, क्योंकि सिमंस तो एक ही है।

कारण 3: पूर्वाग्रह

यदि संभव हो तो मेरा सुझाव है कि आप 100 मिनट एक फिल्म - "12 एंग्री मेन" देखने में व्यतीत करें। चार देशों द्वारा बनाई गई एक फिल्म: पहला अमेरिकी संस्करण 1957 में, जापानी संस्करण 1991 में, रूसी संस्करण 1997 में और चीनी संस्करण 2014 में। हालांकि यह फिल्म आपको व्यापार करना नहीं सिखा सकती, लेकिन यह आपको सिखाती है कि चीजों को कैसे देखें और खुद को जानना सीखें, जो बहुत महत्वपूर्ण है।

चूँकि मानव अनुभव सीमित है, इसलिए मानवीय संज्ञान भी सीमित है। प्रत्येक व्यक्ति के अपने अनुभवों के आधार पर कम या अधिक हद तक पूर्वाग्रह होते हैं। कई बार, पूर्वाग्रह ज्यादातर लोगों की आदत बन जाती है, और वे अपनी भावनाओं के आधार पर कई चीजों का आकलन करना स्वीकार कर लेते हैं।

बाजार की बात करें तो, बाजार के बारे में आपका निर्णय मौलिक विश्लेषण पर आधारित है या तकनीकी विश्लेषण पर, इससे वास्तव में कोई फर्क नहीं पड़ता। यदि आपके विचार बाजार में बहुमत से भिन्न हैं, तो कीमतें बाजार के बहुमत के पक्ष में होंगी, और बाजार आपके विचारों के अनुसार काम नहीं करेगा।

इसलिए, लेन-देन में, हमें यह याद रखना चाहिए कि "निर्णय लें, लेकिन निर्णय पर भरोसा न करें"। अंततः, यह तथ्यों और कीमतों पर आधारित होना चाहिए। कीमतों को ऊपर-नीचे करने वाली एकमात्र शक्ति वही है जिसके बारे में अधिकांश लोग भविष्य में अपेक्षा करते हैं। बाजार में आपके निर्णय का कोई महत्व नहीं है, इसलिए अपने निर्णय को कभी भी अपना पूर्वाग्रह न बनने दें।

कारण 4: पूर्णता की खोज.

बाजार प्रतिभागियों में भौतिक विज्ञान, सांख्यिकी, गणित, खगोल विज्ञान आदि सहित जीवन के सभी क्षेत्रों के विशेषज्ञ शामिल हैं। कई लोग इस बाजार को समझाने के लिए अपने पेशेवर ज्ञान का उपयोग करने का प्रयास करते हैं।

लेकिन बाजार में मुख्य भागीदार लोग हैं, और लोगों की स्वयं संज्ञानात्मक सीमाएं हैं, जिसका अर्थ है कि बाजार स्वयं गलत और अपूर्ण है। तो फिर हम बाजार को समझाने के लिए इन "सही" तरीकों का उपयोग कैसे कर सकते हैं? क्या यह बाजार की प्रकृति के विरुद्ध नहीं है?

ऊपर उन कारणों की सूची दी गई है कि क्यों बाजार में आने वाले अधिकांश लोग अंततः असफल हो जाते हैं। उपर्युक्त मुख्य कारणों के अतिरिक्त कई अन्य कारक भी हैं, जिन्हें यहां एक-एक करके सूचीबद्ध नहीं किया गया है। संक्षेप में, जीत के प्रति आपके आत्मविश्वास के अलावा, बाकी सब कुछ आपके लिए बाधा है जो आपको सफलता से रोकता है।

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

संभाव्यतावादी सोच क्या है?

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

समाज में सचमुच कुछ जुआरी ऐसे हैं जो जुए के प्रति आसक्त हैं। लेकिन जुआ ≠ जुआरी। "जुआ" संभवतः सबसे अधिक गलत समझे जाने वाले शब्दों में से एक है। यदि आपकी रणनीति नकारात्मक अपेक्षा वाली है, तो आप जुआरी हैं; यदि आपकी रणनीति सकारात्मक उम्मीद है, तो आप जुआ खेल रहे हैं।

यदि हम "जुआ" के नकारात्मक अर्थ को हटा दें और इसे एक ऐसी गतिविधि के रूप में समझें जिसमें निश्चित लाभ के बदले में कुछ जोखिम उठाना शामिल है, तो जीवन वास्तव में हर जगह "जुआ" है। स्कूल में कौन सा विषय चुनना है, घर खरीदना है या नहीं, कोई प्रोजेक्ट शुरू करना है या नहीं, नौकरी करनी है या व्यवसाय शुरू करना है, आदि।

यहां तक ​​कि बैंक में पैसा लगाना भी एक जुआ है, क्योंकि आप निश्चित नहीं हैं कि भविष्य में मुद्रास्फीति होगी या बैंक दिवालिया हो जाएगा (ग्रीक ऋण संकट देखें)। संक्षेप में कहें तो जन्म से लेकर मृत्यु तक जीवन की हर प्रक्रिया एक जुआ है।

लंबे समय तक कैसे जीतें

जुए की अवधारणा को और अधिक स्पष्ट करने की आवश्यकता है: कोई व्यक्ति लम्बे समय में कैसे जीत सकता है? दीर्घकालिक विजयी रणनीतियों का अध्ययन करने से पहले, आइए हम उन दीर्घकालिक विजयी रणनीतियों के सिद्धांतों का अध्ययन करें। पैसा छापने वाली मशीन के अलावा और क्या चीज दीर्घकालिक जीत की गारंटी दे सकती है?

कैसीनो में यही होता है: बैकारेट, रूलेट, स्लॉट मशीन, ब्लैकजैक, आदि। खेलने के तरीके चाहे कितने भी बदल जाएं, अंत में कैसीनो ही जीतेगा। दरअसल यहां एक रहस्य छिपा है जिसे कैसीनो कभी नहीं बताते: बड़ी संख्या का नियम।

सिक बो कैसे काम करता है?

तीन पासे, आकार पर दांव लगाएं, 4-10 छोटा है, 11-17 बड़ा है, यदि आप सही ढंग से दांव लगाते हैं, तो आप पैसे जीतते हैं। सिक बो में एक प्रकार का घेरने वाला पासा होता है, अर्थात जब तीन पासों पर अंक समान होते हैं, तो कैसीनो डीलर जीत जाएगा। आस-पास के पासों के आने की संभावना 2.8% है। तो एक बड़ी संख्या और एक छोटी संख्या के आने की संभावना 48.6% है। कैसीनो इस 2.8% संभावना पर निर्भर करता है। यदि प्रत्येक जुआरी प्रत्येक खेल में 100 युआन का दांव लगाता है, तो कैसीनो 100 गेम खेलने के बाद 280 युआन जीतेगा।

(0.486+0.028)100100-0.486100100=280

हालाँकि, इस कैसीनो रणनीति में खामियां हैं। यदि कोई बड़ा खिलाड़ी सनक में आकर अरबों का दांव लगा दे और जीत जाए, तो कैसीनो अचानक दिवालिया हो जाएगा। इसलिए, कैसीनो एक सट्टेबाजी सीमा निर्धारित करेगा, और यदि सीमा पार हो जाती है तो इस दौर में कोई और दांव नहीं लगाया जा सकेगा। इस तरह, भले ही जुआरी कुछ समय के लिए पैसा जीतने के लिए काफी भाग्यशाली हो, लेकिन लंबे समय में, वह फिर भी संभावना से हार जाएगा। अनगिनत सिक बो खेलों में जुआरी अपनी धनराशि का 2.8% खो देगा।

बड़ी संख्या का नियम

कैसीनो मालिक का लाभ जुआरी की तुलना में केवल 2% अधिक है। एक ही जुए में, मालिक को नुकसान हो सकता है या यहां तक ​​कि लगातार नुकसान का सामना करना पड़ सकता है। हालांकि, कैसीनो मालिक घाटे से नहीं डरेगा, क्योंकि वह जानता है कि वह पैसा इसलिए कमा पा रहा है क्योंकि "बड़ी संख्या का नियम" काम कर रहा है। जब तक लोग जुआ खेलना जारी रखेंगे, उन्हें दीर्घकाल में स्थिर लाभ बनाए रखने के लिए केवल 2% के मामूली लाभ की आवश्यकता होगी।

इसलिए कैसीनो को आपके पैसे जीतने का डर नहीं है, बल्कि इस बात का डर है कि आप आएंगे ही नहीं। आपने वर्षों से बैंकों के दिवालिया होने के बारे में भी सुना है, लेकिन क्या आपने कभी किसी कैसीनो के दिवालिया होने के बारे में सुना है? लंबे समय में, कैसीनो हमेशा विजेता होता है। यही कारण है कि जुआ लंबे समय में जीतेगा।

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

संभावना में परिवर्तन

मान लीजिए कि दोनों तरफ समान वजन वाला एक सिक्का है, तो किसी शब्द (पीछे) या फूल (सामने) के उछलने की संभावना 50% है, और प्रत्येक सिक्का उछालना पिछले परिणाम से स्वतंत्र है। यदि आप लगातार 10,000 बार सिक्का उछालें तो सिर आने की संभावना लगभग 50% है।

लेकिन यदि आप इसे केवल 10 बार उछालेंगे, तो सकारात्मक परिणाम मिलने की संभावना बदल जाएगी, और संभावना 50% नहीं होगी। इसलिए, कैसीनो डीलर को यह सुनिश्चित करना चाहिए कि यह सकारात्मक अपेक्षा रणनीति प्रभावी होने के लिए पर्याप्त बार ट्रिगर हो। यही कारण है कि निजी इक्विटी संस्थाएं मात्रात्मक ट्रेडिंग रणनीति शुरू करते समय रणनीति को रोक नहीं सकतीं, जब तक कि विशेष परिस्थितियां न हों।

वित्तीय बाजार में दीर्घकालिक विजयी रणनीति बनाने के लिए "बड़ी संख्या के नियम" का उपयोग कैसे करें, यह हमारे पाठ्यक्रमों की अगली श्रृंखला की विषय-वस्तु होगी, इसलिए बने रहें!

संक्षेप

ऊपर हमने आपको समझाया है कि संभाव्यता के पहलुओं, ट्रेडिंग विफलता के कारणों, सही ट्रेडिंग मानसिकता, जुए में लंबे समय में जीतने का सिद्धांत आदि से वैज्ञानिक तरीके से ट्रेडिंग को कैसे देखा जाए। मेरा मानना ​​है कि यदि आप अच्छी तरह से सीखते हैं, तो सोच में बदलाव आपके व्यवहार में बदलाव होगा, और व्यवहार में बदलाव आपकी सफलता में बदलाव होगा।

गृहकार्य

  1. ट्रेडिंग संभावना का खेल क्यों है?
  2. लेनदेन विफलता के अन्य कारण क्या हैं?
Related Recommendations
Comment
All comments (2)

    好文章啊!

    5 years ago

    mark

    5 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)