2.4 एफएमजेड क्वांट प्लेटफॉर्म पर ट्रेडिंग रणनीति कैसे लिखें

लेखक:अच्छाई, बनाया गयाः 2019-06-25 12:04:22, अद्यतन किया गयाः 2023-11-13 19:50:01

img

एफएमजेड क्वांट प्लेटफॉर्म पर ट्रेडिंग रणनीति कैसे लिखें

सारांश

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

तैयार

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

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

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

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

img

रणनीति तर्क

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

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

  • खुली शॉर्ट पोजीशनः यदि वर्तमान में कोई पोजीशन नहीं है, और क्लोजिंग प्राइस अल्पकालिक मूविंग एवरेज से कम है, और क्लोजिंग प्राइस दीर्घकालिक मूविंग एवरेज से कम है, और अल्पकालिक मूविंग एवरेज दीर्घकालिक मूविंग एवरेज से कम है, और दीर्घकालिक मूविंग एवरेज गिर रहा है।

  • बंद करें लंबी स्थितिः यदि वर्तमान में लंबी स्थिति है, और बंद करने की कीमत लंबी अवधि के चलती औसत से कम है, या अल्पकालिक चलती औसत लंबी अवधि के चलती औसत से कम है, या लंबी अवधि के चलती औसत गिर रहा है।

  • बंद शॉर्ट पोजीशनः यदि वर्तमान में शॉर्ट पोजीशन हो, और बंद होने की कीमत लंबी अवधि के मूविंग एवरेज से अधिक हो, या अल्पकालिक मूविंग एवरेज लंबी अवधि के मूविंग एवरेज से अधिक हो, या लंबी अवधि के मूविंग एवरेज में वृद्धि हो।

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

एम भाषा रणनीति

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

अगली बात यह है कि संकेतक की गणना करें। इस रणनीति में, हम दो संकेतक का उपयोग करेंगे, अर्थात्ः अल्पकालिक चलती औसत और दीर्घकालिक चलती औसत। हम मानते हैं कि अल्पकालिक चलती औसत 10 अवधि चलती औसत है और दीर्घकालिक चलती औसत 50 अवधि चलती औसत है। इन दोनों का प्रतिनिधित्व करने के लिए कोड का उपयोग कैसे करें? कृपया नीचे देखेंः

MA10:=MA(CLOSE,10); // Get the 10-cycle moving average of the latest K-line and save the result in variable MA10
MA50:=MA(CLOSE,50); // Get the 50-cycle moving average of the latest K-line and save the result in variable MA50

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

MA10:=MA(CLOSE,10); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10
MA50:=MA(CLOSE,50); //Get the 50-cycle moving average of the latest K line and save the result to variable MA10

MA10_1:=REF(MA10,1); //Get the 10-cycle moving average of the pervious K line and save the result to variable MA10_1
MA50_1:=REF(MA50,1); //Get the 50-cycle moving average of the pervious K line and save the result to variable MA50_1
MA10_2:=REF(MA10,2); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10_2
MA50_2:=REF(MA50,2); //Get the 50-cycle moving average of the latest K line and save the result to variable MA50_2
MA50_ISUP:=MA50>MA50_1 AND MA50_1>MA50_2; //Determine whether the current 50-line moving average of the K line is rising
MA50_ISDOWN:=MA50<MA50_1 AND MA50_1<MA50_2; //Determine whether the current 50-line moving average of the K line is falling

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

अंतिम चरण ऑर्डर देने के लिए है, आपको लॉजिक कोड के बाद खरीद और बिक्री ऑपरेशन निष्पादित करने के लिए केवल FMZ Quants ऑर्डर एपीआई को कॉल करने की आवश्यकता है। कृपया नीचे देखेंः

MA10:=MA(CLOSE,10); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10
MA50:=MA(CLOSE,50); //Get the 50-cycle moving average of the latest K line and save the result to variable MA10

MA10_1:=REF(MA10,1); //Get the 10-cycle moving average of the pervious K line and save the result to variable MA10_1
MA50_1:=REF(MA50,1); //Get the 50-cycle moving average of the pervious K line and save the result to variable MA50_1
MA10_2:=REF(MA10,2); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10_2
MA50_2:=REF(MA50,2); //Get the 50-cycle moving average of the latest K line and save the result to variable MA50_2
MA50_ISUP:=MA50>MA50_1 AND MA50_1>MA50_2; //Determine whether the current 50-line moving average of the K line is rising
MA50_ISDOWN:=MA50<MA50_1 AND MA50_1<MA50_2; //Determine whether the current 50-line moving average of the K line is falling

CLOSE>MA10 AND CLOSE>MA50 AND MA10>MA50 AND MA50_ISUP,BK; //open long position
CLOSE<MA10 AND CLOSE<MA50 AND MA10<MA50 AND MA50_ISUP,SK; //open short position
CLOSE<MA50 OR MA10<MA50,SP;//close long position
CLOSE>MA50 OR MA10>MA50,BP;//close short position

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

कृपया ध्यान दें कि M भाषा में AND और OR सभी तार्किक संचालक हैं:

  • AND तब होता है जब सभी शर्तें हाँ होती हैं, और अंतिम शर्त हाँ होती है;

  • OR तब होता है जब किसी एक शर्त yes होती है, अंतिम शर्त yes होती है।

संक्षेप में

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

स्कूल के बाद व्यायाम

  1. इस खंड में दी गई रणनीतियों को स्वयं लागू करने का प्रयास करें।

  2. इस खंड की रणनीति के आधार पर स्टॉप-लॉस और टेक-प्रॉफिट फ़ंक्शन जोड़ें।

अगला अनुभाग सूचना

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


संबंधित

अधिक