एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विकास करने वाले दोस्तों की अक्सर ऐसी जरूरतें हो सकती हैंः
जब आप किराए के लिए एक रणनीति विकसित करते हैं, तो आप रणनीति पर धन की अलग-अलग सीमाएं चाहते हैं, और विभिन्न प्लेटफार्म सीमाएं (रणनीति द्वारा संचालित प्लेटफार्मों को सीमित करें), या आप प्लेटफॉर्म खाता विन्यास को सीमित करना चाहते हैं (निर्दिष्ट करें कि रणनीति केवल पूर्व-समझौता किए गए खातों पर काम कर सकती है; जब रणनीति उपयोगकर्ता अन्य खातों का उपयोग करता है, तो रणनीति संकेत देती है और अब व्यापार और अन्य संचालन नहीं करेगी) ।
ये स्पष्ट रूप से हार्ड-कोडेड नहीं हो सकते हैं, क्योंकि यदि वे हार्ड-कोडेड हैं, तो सभी उपयोगकर्ता इन सीमाओं के अधीन होंगे, और वे विभिन्न उपयोगकर्ता समूहों के लिए विभिन्न उपयोग विशेषाधिकारों को नियंत्रित नहीं कर सकते हैं।
उपरोक्त मांग परिदृश्यों के आधार पर, एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म ने एक नए कार्य का विस्तार किया हैःरणनीति किराया रजिस्टर कोड मेटाडेटा सेटिंग्स.
रजिस्टर कोड बनाते समय, आप एक मेटाडेटा निर्दिष्ट कर सकते हैंMeta
नोटः मेटा की लंबाई 190 वर्णों से अधिक नहीं हो सकती है जब यह रजिस्टर कोड उत्पन्न करता है.
उदाहरण के लिए, मैं रणनीति विकास का एक निर्यातक हूं, और मैंने BTC_USDT के स्पॉट ट्रेडिंग जोड़े के साथ एक रणनीति विकसित की है। रणनीति केवल लंबी स्थिति बनाती है (शुरू में, इसमें केवल उद्धरण मुद्रा हैQuoteCurrency
, अर्थात् USDT; खरीद लेने के बाद, यहBaseCurrency
, अर्थात् बीटीसी). अगर मैं इस रणनीति को किराए पर देना चाहते हैं, रणनीति नाम हैtest1
.
जैसा कि आप देख सकते हैं, रणनीति की सीमाओं को रणनीति की विशिष्ट स्थिति के साथ संयोजन में विशेष रूप से डिज़ाइन करने की आवश्यकता है। यह उदाहरण एक स्पॉट रणनीति का प्रदर्शन है, लेकिन क्या होगा यदि रणनीति एक वायदा रणनीति है? फिर, वायदा स्थिति की जानकारी को सीमित करना आवश्यक है (गेटपॉजिशन द्वारा लौटाए गए स्थिति डेटा के अनुसार) । जब रणनीति पाती है कि स्थिति सीमा से अधिक है, तो ऑर्डर लगाने और स्थिति खोलने का तर्क अब निष्पादित नहीं होगा (अन्य तर्क को सामान्य रूप से निष्पादित करने की आवश्यकता है, जैसे कि स्थिति को बंद करना और अन्य संचालन) ।
इसलिए, इन सीमाओं के डिजाइन को स्वयं रणनीति के साथ जोड़ा जाना चाहिए; उदाहरण केवल एक सरल निर्देश है, बिना वास्तविक उपयोग मूल्य के।
रणनीति स्रोत कोडः
function main() {
// The maximum asset value of the quote currency allowed by the strategy
var maxBaseCurrency = null
// Obtain the metadata when the register code is created
var level = GetMeta()
// Detect the corresponding conditions of Meta
if (level == "level1") {
// -1 means no limit
maxBaseCurrency = -1
} else if (level == "level2") {
maxBaseCurrency = 10
} else if (level == "level3") {
maxBaseCurrency = 1
} else {
maxBaseCurrency = 0.5
}
while(1) {
Sleep(1000)
var ticker = exchange.GetTicker()
// Detect the assets amount
var acc = exchange.GetAccount()
if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
// Stop executing the strategy trading logic
LogStatus(_D(), "If the position exceeds the usage limits of register code, the strategy trading logic will no longer be executed!")
continue
}
// Other trading logic
// Normally export the information of status bar
LogStatus(_D(), "The strategy is operating normally!ticker data:\n", ticker)
}
}
रजिस्टर कोड बनाते समय,
क्लिक करेंआंतरिक बिक्री.
छोटे
फिर, आप में सीमा जानकारी लिखने की जरूरत हैमेटानियंत्रण, जैसे इस उदाहरण में डिजाइन की गई रणनीति के कई उपयोग स्तरः
सबसे पहले, हम सेटlevel1
मेटा नियंत्रण में, और बनाए गए रजिस्टर कोड कोlevel1
परीक्षण1 का
रजिस्टर कोड बनाने के बाद, रणनीति विक्रेता रजिस्टर कोड को रणनीति खरीदार को भेजेगा।
उदाहरण के लिए, यदि मैं अपने किसी अन्य खाते (खरीदार के खाते के रूप में) पर रजिस्टर कोड का उपयोग करता हूं, तो मुझे रणनीति परीक्षण1 का उपयोग करने का अधिकार होगा।
एक रणनीति खरीदार के रूप में, आपको सबसे पहले एक बॉट जोड़ने की आवश्यकता है, रणनीति के रूप में परीक्षण1 चुनें, और एक WexApp स्पॉट एक्सचेंज ऑब्जेक्ट जोड़ें (WexApp FMZ का अनुकरणीय बॉट है), और फिर बॉट चलाएं।
जब आप देख सकते हैं कि रणनीति ठीक से चल रही है, तो इसका मतलब हैlevel1
स्थिति राशि (स्पॉट खाते में रखे गए सिक्के की राशि) के लिए कोई सीमा नहीं है।
जब रणनीति रजिस्टर कोड का उपयोग किया जाता है, यदि रणनीति डेवलपर को भेजे जाने वाले रजिस्टर कोड के मेटाडेटा को समायोजित करने की आवश्यकता होती है, तो वह इसे पूरी तरह से संशोधित कर सकता है।
मेटाडेटा को संशोधित किया जा सकता है।
हमने पुराने रजिस्टर कोड के मेटाडेटा को बदलकरlevel3
, और रणनीति उपयोगकर्ता परीक्षण करने के लिए बॉट को पुनरारंभ करने की जरूरत है. यह ट्रिगर कियाlevel3
अधिकतम स्थिति राशि को 1 सिक्के तक सीमित करने के लिए।
जब एक रणनीति किराए पर, विभिन्न उपयोगकर्ता समूहों और भुगतान स्तरों के अनुसार, आप विशेष रूप से मेटाडेटा को कॉन्फ़िगर कर सकते हैं, स्तरों द्वारा रणनीति को नियंत्रित करने के लिए।
बेशक, उपरोक्त उदाहरण केवल सबसे आम सीमाएं और नियंत्रण आवश्यकताएं हैं। अभी भी विभिन्न समान आवश्यकताएं हैं, जो फ़ंक्शन को भी महसूस कर सकती हैं।