[TOC]

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

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

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

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

ड्रॉप-डाउन बॉक्स प्रकार पैरामीटर से संबंधित डिफ़ॉल्ट नियंत्रण एक ड्रॉप-डाउन बॉक्स है, लेकिन इस बार पिछले सरल एकल-चयन ड्रॉप-डाउन बॉक्स में बहुत सारे अपग्रेड किए गए हैं:
डिफ़ॉल्ट ड्रॉप-डाउन बॉक्स नियंत्रण के अतिरिक्त, इस बार प्लेटफ़ॉर्म में निम्नलिखित भी शामिल है:

एन्क्रिप्टेड स्ट्रिंग प्रकार पैरामीटर भी विशेष है, और इसका केवल एक ही संगत नियंत्रण है। यह डिफ़ॉल्ट एन्क्रिप्टेड इनपुट बॉक्स नियंत्रण है।
प्लेटफ़ॉर्म पर, एन्क्रिप्टेड स्ट्रिंग प्रकार के नियंत्रणों का उपयोग आम तौर पर कुछ संवेदनशील जानकारी, जैसे गुप्त कुंजी, पासवर्ड आदि सेट करने के लिए किया जाता है। ये इनपुट पैरामीटर मान स्थानीय रूप से एन्क्रिप्ट किए जाने के बाद प्रेषित किए जाएंगे।
इंटरफ़ेस पैरामीटर का परिवर्तनीय मान है: स्ट्रिंग.
उपरोक्त सभी प्रकार के रणनीति इंटरफ़ेस मापदंडों के लिए, यह अपग्रेड पिछले “पैरामीटर समूहीकरण” और “पैरामीटर निर्भरता” कार्यों को “घटक कॉन्फ़िगरेशन” में एकीकृत करता है। सभी इंटरफ़ेस पैरामीटर्स के घटक कॉन्फ़िगरेशन में “ग्रुपिंग” और “फ़िल्टर” सेटिंग्स हैं।
समूहन आप सीधे उन लेबलों को समूहीकृत कर सकते हैं जिन्हें आप समूहीकृत करना चाहते हैं, तथा समूह इनपुट की पुष्टि करने के लिए एंटर कुंजी का उपयोग कर सकते हैं। सिस्टम वर्तमान में प्रविष्ट लेबल को समूहीकरण विकल्पों में रिकार्ड कर लेगा। फिर आप वर्तमान इंटरफ़ेस पैरामीटर्स को समूह असाइन कर सकते हैं। समूहीकरण के बाद, रणनीति बैकटेस्टिंग/वास्तविक ट्रेडिंग इंटरफ़ेस पर, समूह के रूप में चिह्नित पैरामीटर्स को समूहीकरण क्षेत्र में प्रदर्शित किया जाएगा।
फिल्टर यह निर्धारित करने के लिए कि क्या वर्तमान पैरामीटर को सक्रिय और प्रदर्शित करने की आवश्यकता है, फ़िल्टर नियंत्रण में कुछ अभिव्यक्तियाँ दर्ज करें। यह फ़ंक्शन यह एहसास कराता है कि वर्तमान पैरामीटर को एक निश्चित पैरामीटर सेटिंग के आधार पर प्रदर्शित या छुपाया जा सकता है। फ़िल्टर अभिव्यक्ति उदाहरण:
过滤器格式: a>b , a==1 , a , !a , a>=1&&a<=10 , a>b
यहाँ, a और b दोनों रणनीति इंटरफ़ेस मापदंडों के चर का प्रतिनिधित्व करते हैं।
यदि उपरोक्त स्पष्टीकरण थोड़ा अस्पष्ट हैं, तो उन्हें समझने का सबसे अच्छा तरीका वास्तव में इन पैरामीटर फ़ंक्शनों का उपयोग और परीक्षण करना है:
जावास्क्रिप्ट भाषा नीति को उदाहरण के रूप में लें:
function main() {
Log("---------------------------开始测试数字类型参数---------------------------")
Log("变量pNum1:", pNum1, ", 变量值类型:", typeof(pNum1))
Log("变量pNum2:", pNum2, ", 变量值类型:", typeof(pNum2))
Log("变量pNum3:", pNum3, ", 变量值类型:", typeof(pNum3))
Log("变量pNum4:", pNum4, ", 变量值类型:", typeof(pNum4))
Log("---------------------------开始测试布尔类型参数---------------------------")
Log("变量pBool1:", pBool1, ", 变量值类型:", typeof(pBool1))
Log("变量pBool2:", pBool2, ", 变量值类型:", typeof(pBool2))
Log("---------------------------开始测试字符串类型参数---------------------------")
Log("变量pStr1:", pStr1, ", 变量值类型:", typeof(pStr1))
Log("变量pStr2:", pStr2, ", 变量值类型:", typeof(pStr2))
Log("变量pStr3:", pStr3, ", 变量值类型:", typeof(pStr3))
Log("变量pStr4:", pStr4, ", 变量值类型:", typeof(pStr4))
Log("---------------------------开始测试下拉框类型参数---------------------------")
Log("变量pCombox1:", pCombox1, ", 变量值类型:", typeof(pCombox1))
Log("变量pCombox2:", pCombox2, ", 变量值类型:", typeof(pCombox2))
Log("变量pCombox3:", pCombox3, ", 变量值类型:", typeof(pCombox3))
Log("---------------------------开始测试加密串类型参数---------------------------")
Log("变量pSecretStr1:", pSecretStr1, ", 变量值类型:", typeof(pSecretStr1))
}

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

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

इंटरैक्टिव नियंत्रण मूलतः रणनीति इंटरफ़ेस मापदंडों के “घटक कॉन्फ़िगरेशन” के समान ही हैं।

डिफ़ॉल्ट इनपुट बॉक्स नियंत्रण के अतिरिक्त, घटक प्रकार निम्न का भी समर्थन करता है:

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

बटन-प्रकार के इंटरैक्टिव नियंत्रण में कोई इनपुट आइटम नहीं होता है। ट्रिगर होने पर, भेजे गए इंटरैक्टिव कमांड में केवल बटन नियंत्रण नाम होता है।
इसे समझने का सबसे अच्छा तरीका है इसे मैन्युअली टेस्ट करना। यहां एक टेस्टिंग रणनीति भी तैयार की गई है।
यह ध्यान दिया जाना चाहिए कि बैकटेस्टिंग प्रणाली में इंटरैक्टिव नियंत्रणों का परीक्षण नहीं किया जा सकता है, और केवल वास्तविक समय परीक्षण ही बनाया जा सकता है।
function main() {
var lastCmd = ""
while (true) {
var cmd = GetCommand() // 接收交互控件产生的消息
if (cmd) {
Log(cmd)
lastCmd = cmd
}
LogStatus(_D(), lastCmd)
Sleep(500)
}
}
बेतरतीब ढंग से कुछ जानकारी दर्ज करें, कुछ विकल्प सेट करें, और फिर इंटरैक्टिव संदेश उत्पन्न करने के लिए इंटरैक्टिव नियंत्रण बटन पर क्लिक करें। रणनीति संदेशों को कैप्चर करती है और उन्हें प्रिंट करती है।


पूर्ण इंटरैक्टिव नियंत्रण परीक्षण रणनीति: https://www.fmz.com/strategy/455231



function main() {
Log("参数test1使用币种控件选择后,test1的值为:", test1)
Log("参数test2使用交易代码控件选择后,test2的值为:", test2)
}

参数test1使用币种控件选择后,test1的值为: BTC

参数test2使用交易代码控件选择后,test2的值为: ETH_USDT.next_quarter

function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}

test1:SOL

test2:XRP_USDT.swap