
दृश्य प्रोग्रामिंग हमेशा से ही सॉफ्टवेयर उपकरण डेवलपर्स के लिए एक वांछित लक्ष्य रहा है, यहां तक कि मात्रात्मक व्यापार के क्षेत्र में भी। क्योंकि विज़ुअलाइज़ेशन का “जो आप देखते हैं वही आपको मिलता है” दृष्टिकोण प्रोग्रामिंग विकास के लिए तकनीकी सीमा को बहुत कम कर देता है। अब उपयोगकर्ताओं को बोरिंग कोडिंग से नहीं जूझना पड़ेगा। उन्हें बस अपने दिमाग, कल्पना और तार्किक सोच का इस्तेमाल करना होगा और अपने व्यवसाय पर ध्यान केंद्रित करना होगा। आप अपनी इच्छानुसार कोई भी कार्यक्रम साकार कर सकते हैं, है न आश्चर्यजनक!
तो फिर आइए एक साथ मात्रात्मक व्यापार रणनीतियों के दृश्य प्रोग्रामिंग के क्षेत्र में प्रवेश करें!
https://www.fmz.com पर लॉग इन करने के बाद, एक खाता पंजीकृत करें (यदि आपने पहले ही पंजीकरण कर लिया है, तो सीधे लॉग इन करें), और क्लिक करें: नियंत्रण केंद्र-> नीति लाइब्रेरी-> नई नीति।

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

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

कुछ मॉड्यूल में कुछ विशेष सेटिंग्स होती हैं, उदाहरण के लिए:

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

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

मॉड्यूल को बाएं माउस बटन से क्लिक करके खींचा जा सकता है। मॉड्यूल को ctrl + c का उपयोग करके कॉपी किया जा सकता है और ctrl + v का उपयोग करके पेस्ट किया जा सकता है, ठीक उसी तरह जैसे कोड या टेक्स्ट को कॉपी और पेस्ट करना सुविधाजनक होता है। माउस व्हील का उपयोग करके ऑपरेशन क्षेत्र को ऊपर या नीचे बढ़ाया जा सकता है, तथा सभी मॉड्यूल को ऊपर या नीचे बढ़ाया जा सकेगा। ऑपरेशन क्षेत्र में रिक्त स्थान पर क्लिक करके रखें तथा ऑपरेशन क्षेत्र को स्थानांतरित करने के लिए खींचें। दाईं ओर स्थित ट्रैश कैन में हाल ही में हटाए गए मॉड्यूल रिकॉर्ड किए गए हैं। सबसे महत्वपूर्ण बात, मॉड्यूल रणनीति को इकट्ठा करने के बाद, “सहेजें” पर क्लिक करना न भूलें।
आप देख सकते हैं कि दृश्य संपादन क्षेत्र के बाईं ओर कई मॉड्यूल श्रेणियां हैं, और प्रत्येक श्रेणी में कई उपलब्ध दृश्य मॉड्यूल हैं।
कुल 11 श्रेणियां हैं।

इस मॉड्यूल का उपयोग आमतौर पर पाठ मॉड्यूल के साथ संयोजन में किया जाता है, जैसा कि नीचे दिखाया गया है:
आप टेक्स्ट क्लास मॉड्यूल में एक स्ट्रिंग दर्ज कर सकते हैं, ताकि जब आप “आउटपुट जानकारी” मॉड्यूल चलाएं, तो टेक्स्ट मॉड्यूल में स्ट्रिंग सामग्री मुद्रित हो जाएगी।
बैकटेस्टिंग:

जावास्क्रिप्ट भाषा कोड की तरह:
function main(){
Log("你好,可视化编程!")
}
यह मॉड्यूल “आउटपुट सूचना” जैसा ही दिखता है, सिवाय इसके कि यह सूचना को आउटपुट करता है और उसे वर्तमान खाते से जुड़े WeChat खाते में भेजता है।

जावास्क्रिप्ट भाषा कोड की तरह:
function main () {
Log("微信推送!@")
}
थ्रो एक्सेप्शन मॉड्यूल प्रोग्राम को त्रुटि उत्पन्न करने और फिर प्रोग्राम निष्पादन को रोकने की अनुमति देता है (अपवाद हैंडलिंग कोड लिखे बिना)।

यह जावास्क्रिप्ट रणनीति के समान है जहां throw “string to be output” फ़ंक्शन को सीधे मुख्य फ़ंक्शन में निष्पादित किया जाता है।
function main () {
throw "第一句就抛出异常,让程序停止!"
}
बैकटेस्टिंग परिणाम:
इसका प्रयोग आमतौर पर डिबगिंग के दौरान अधिक किया जाता है, उदाहरण के लिए, जब आप चाहते हैं कि प्रोग्राम एक निश्चित स्थिति में रुक जाए और उस समय आसान अवलोकन के लिए कुछ डेटा प्रिंट कर लें।
या आप कोड प्रवाह में अपवाद फेंकने वाला मॉड्यूल रख सकते हैं जहां समस्याएं हो सकती हैं, ताकि प्रोग्राम त्रुटियों की रिपोर्ट कर सके और कुछ त्रुटियों का पता लगा सके।
हाइबरनेशन मॉड्यूल
जैसा कि जावास्क्रिप्ट रणनीति में है:
function main () {
Sleep(1000 * 5)
}
हाइबरनेशन मॉड्यूल का परीक्षण करें:
बैकटेस्टिंग परिणाम:


यह मॉड्यूल इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफॉर्म एपीआई के लॉगप्रॉफिट फ़ंक्शन के समान है, जो लाभ लॉग को प्रिंट करता है और इनपुट मापदंडों के आधार पर स्वचालित रूप से लाभ वक्र खींचता है।
उदाहरण के लिए:
बैकटेस्ट का निष्पादन नीचे दिखाया गया है:
संबंधित जावास्क्रिप्ट नीति कोड इस प्रकार है:
function main () {
LogProfit(1)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(3)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(5)
}
इसे किसी भी स्थान पर विभाजित किया जा सकता है जहां आप राजस्व जानकारी आउटपुट करना चाहते हैं।
लूप मॉड्यूल विभाजित मॉड्यूल संयोजनों की एक श्रृंखला को लपेट सकता है और इस मॉड्यूल संयोजन को लूप में निष्पादित कर सकता है।
परीक्षा:
बैकटेस्टिंग परिणाम:
यह देखा जा सकता है कि लूप मॉड्यूल द्वारा प्रिंट प्रॉफिट और स्लीप से युक्त मॉड्यूल संयोजन को लपेटने के बाद, मॉड्यूल संयोजन लगातार निष्पादित किया जाएगा।
इस मॉड्यूल का उपयोग मूलतः लूप मॉड्यूल के समान ही है, केवल अंतर यह है कि इस मॉड्यूल में स्लीप फ़ंक्शन अंतर्निहित है।

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

बैकटेस्टिंग से पता चलता है:


लॉग साफ़ करने के लिए उपयोग किया जाता है। इनपुट मापदंडों के आधार पर, लॉग का एक हिस्सा बरकरार रखा जा सकता है। जैसा कि API दस्तावेज़ में बताया गया है:
LogReset()

राजस्व लॉग को साफ़ करने के लिए उपयोग किया जाता है। इनपुट मापदंडों के आधार पर, लॉग का एक हिस्सा बनाए रखा जा सकता है। जैसा कि API दस्तावेज़ में बताया गया है:
LogProfitReset()

इस टूल मॉड्यूल को “ट्रेडिंग मॉड्यूल प्रकार” में मार्केट मॉड्यूल के साथ संयोजन में उपयोग करने की आवश्यकता है, जैसा कि चित्र में दिखाया गया है:

नवीनतम टिकर बाजार के नवीनतम लेनदेन मूल्य को आउटपुट करने के लिए आउटपुट सूचना मॉड्यूल का उपयोग करें:

बैकटेस्टिंग से पता चलता है:

जावास्क्रिप्ट रणनीति कोड की तरह:
function main () {
Log(exchange.GetTicker().Last)
}

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


इसे “लेनदेन मॉड्यूल प्रकार” में गेट डेप्थ डेटा मॉड्यूल के साथ भी उपयोग करने की आवश्यकता है।

सूचकांक को 0 पर सेट करें, विक्रय आदेश सेट करें, तथा विक्रय आदेश की जानकारी प्राप्त करें।

जावास्क्रिप्ट रणनीति कोड की तरह:
function main () {
Log(exchange.GetDepth().Asks[0])
}
इस मॉड्यूल को गेट एसेट इन्फॉर्मेशन मॉड्यूल के साथ उपयोग किया जाना चाहिए।

उदाहरण के लिए: चालू खाते में उपलब्ध सिक्कों की संख्या प्रिंट करें

बैकटेस्टिंग से पता चलता है:

जावास्क्रिप्ट रणनीति के अनुसार:
function main () {
Log(exchange.GetAccount().Stocks)
}

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

बैकटेस्टिंग परिणाम:
जावास्क्रिप्ट रणनीति के अनुसार:
function main () {
Log(exchange.GetDepth().Asks[0].Price)
}
इसका उपयोग “क्वेरी ऑर्डर विवरण मॉड्यूल” द्वारा लौटाई गई ऑर्डर जानकारी में एक निश्चित विशेषता प्राप्त करने के लिए भी किया जा सकता है (जिसे उन्नत अनुभाग में समझाया जाएगा)।

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

बैकटेस्टिंग परिणाम:

विज़ुअलाइज़ेशन उदाहरण रणनीति:
अधिक रणनीतियाँ यहां उपलब्ध हैं: https://www.fmz.com/square
इस श्रृंखला के अन्य लेख