एक आविष्कारक के लिए एक क्वांटिफाइड ट्रेडिंग प्लेटफॉर्म पर विकास करने वाले छोटे भागीदारों के पास अक्सर आवश्यकताएं हो सकती हैंः
एक रणनीति के लिए अलग-अलग धन सीमाएं, एक रणनीति के लिए अलग-अलग एक्सचेंज सीमाएं ("नीति के संचालन को सीमित करने वाले एक्सचेंजों") या एक रणनीति के लिए एक्सचेंज खाते के विन्यास को सीमित करने के लिए एक रणनीति किराए पर लेना चाहते हैं। (यह नीति केवल पूर्व-समझौता किए गए खातों का संचालन करने के लिए निर्दिष्ट है, और रणनीति उपयोगकर्ता अन्य खातों का उपयोग करते समय रणनीति युक्तियों का उपयोग नहीं करता है और व्यापार नहीं करता है) ।
ये स्पष्ट रूप से कोड में नहीं लिखे जा सकते हैं, क्योंकि यदि वे कोड में लिखे जाते हैं, तो सभी उपयोगकर्ता इन शर्तों के अधीन होंगे और विभिन्न उपयोगकर्ता समूहों के लिए अलग-अलग उपयोग के अधिकारों को नियंत्रित नहीं कर सकते हैं।
इन मांग परिदृश्यों के आधार पर, आविष्कारक ने क्वांटिफाइड ट्रेडिंग प्लेटफॉर्म को नई सुविधाओं के साथ विस्तारित किया हैःटैक्सी रजिस्ट्रेशन कोड मेटाडेटा सेटिंग्स
पंजीकरण कोड बनाते समय एक मेटाडेटा निर्दिष्ट करेंMeta
, डेटा स्ट्रिंग है. नोटः पंजीकरण कोड उत्पन्न करते समय मेटा की लंबाई 190 वर्णों से अधिक नहीं हो सकती है.
उदाहरण के लिए, मैं एक रणनीति डेवलपर हूँ, मैंने BTC_USDT के लिए एक मौद्रिक व्यापार जोड़ी विकसित की है, जो कि केवल बहुत कुछ करने की रणनीति है।QuoteCurrency
USDT, खरीदें और स्टॉक में लेनदेन करेंBaseCurrency
मैं इस रणनीति को किराए पर लेने जा रहा हूं, जिसका नाम हैtest1
。
जैसा कि आप देख सकते हैं, रणनीति के लिए सीमित डिजाइन के लिए विशिष्ट रणनीति के साथ संयोजन के लिए विशिष्ट डिजाइन की आवश्यकता होती है। यह उदाहरण एक मौद्रिक रणनीति का एक प्रदर्शन है, यदि रणनीति एक वायदा रणनीति है? तो यह आवधिक वस्तुओं के लिए होल्डिंग जानकारी को सीमित करता है (GetPosition द्वारा लौटाए गए होल्डिंग डेटा के आधार पर) । जब रणनीति एक सीमित होल्डिंग से अधिक पाती है, तो यह एक बार खोलने के तर्क को निष्पादित नहीं करती है (अन्य तर्क को ठीक से निष्पादित करने की आवश्यकता होती है, उदाहरण के लिए, प्लेस्टेशन जैसे ऑपरेशन) ।
इसलिए, इन डिजाइनों को रणनीति के साथ संयोजन की आवश्यकता होती है, इसलिए यह केवल एक सरल उदाहरण है और इसका कोई व्यावहारिक उपयोग मूल्य नहीं हो सकता है।
रणनीति का स्रोत कोडः
function main() {
// 策略允许的计价币最大资产数值
var maxBaseCurrency = null
// 获取创建注册码时的元数据
var level = GetMeta()
// 检测Meta对应的条件
if (level == "level1") {
// -1为不限制
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()
// 检测资产数值
var acc = exchange.GetAccount()
if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
// 停止执行策略交易逻辑
LogStatus(_D(), "持仓超过注册码的使用限定,不再执行策略交易逻辑!")
continue
}
// 其它交易逻辑
// 正常输出状态栏信息
LogStatus(_D(), "策略正常运行!ticker数据:\n", ticker)
}
}
पंजीकरण कोड बनाने के दौरान, नीति संग्रह में परीक्षण 1 नीति खोजें, दाईं ओर क्लिक करेंऑपरेशनक्लिक करेंबिक्री。
क्लिक करेंआंतरिक बिक्री。
रजिस्ट्रेशन कोड मेटाडेटा सेट करने के लिए कुंवारी कुंवारी कुंवारी पर क्लिक करें।
और फिर आप उस जानकारी को लिखते हैं जिसे आप सीमित करना चाहते हैं।मेटानियंत्रण, उदाहरण के लिए, इस मामले में डिजाइन की गई कई रणनीतियों का उपयोग करने के लिए स्तरः
हम पहले मेटा कंट्रोल सेट करते हैं।level1
, इस पंजीकरण कोड को test1 नीति के साथ बनाएँlevel1
स्तरों पर।
एक बार जब आप एक पंजीकरण कोड बनाते हैं, तो आप एक नया पंजीकरण कोड प्राप्त करते हैं।
购买地址: https://www.fmz.com/m/s/282900
注册码: 7af0c24404b268812c97b55d073c1867
इस तरह के एक पंजीकरण कोड को रणनीतिक किरायेदार को भेज दिया जाता है।
उदाहरण के लिए, इस समय मैं अपने दूसरे खाते (नीति किरायेदार) में इस पंजीकरण कोड का उपयोग कर रहा हूं, जिसे test1 नीति का उपयोग करने का अधिकार प्राप्त है।
रणनीति किरायेदार, वास्तविक डिस्क बनाने, परीक्षण 1 का उपयोग करने की रणनीति, एक WexApp वस्तु जोड़ें (WexApp FMZ प्लेटफॉर्म का एक एनालॉग डिस्क है), वास्तविक डिस्क चलाएं।
आप देख सकते हैं कि यह रणनीति काम कर रही है।level1
रैंकिंग में जमा राशि (नकद खाते में रखे गए सिक्कों की संख्या) की कोई सीमा नहीं है।
जब नीति पंजीकरण कोड का उपयोग किया जाता है, तो नीति डेवलपर को जारी किए गए पंजीकरण कोड के मेटाडेटा को संशोधित करने की आवश्यकता होती है।
इस तरह की एक तस्वीर में, हम देख सकते हैं कि क्या हुआ है।
मेटा डेटा को संशोधित किया जा सकता है।
हमने पहले के रजिस्ट्रेशन कोड के मेटाडेटा को बदलकरlevel3
, और फिर इस पक्ष में नीति उपयोगकर्ता, वास्तविक डिस्क परीक्षण को फिर से शुरू करें।
जैसा कि आप ऊपर देख सकते हैं, यह ट्रिगर करता है।level3
रैंकिंग में एक सिक्का रखने की अधिकतम सीमा है।
मेटाडेटा को अलग-अलग उपयोगकर्ता समूहों, विभिन्न भुगतान स्तर रेंटल रणनीतियों के आधार पर कॉन्फ़िगर किया जाता है ताकि रणनीति स्तर नियंत्रण को सक्षम किया जा सके।
बेशक, यह केवल सबसे आम सीमा और नियंत्रण आवश्यकताओं को सूचीबद्ध करता है। इस सुविधा का उपयोग करके कई अन्य समान आवश्यकताओं को भी पूरा किया जा सकता है।