टेम्पलेट लाइब्रेरीएफएमजेड क्वांट ट्रेडिंग प्लेटफ़ॉर्म में बहुउपयोगी कोड मॉड्यूल हैं, जो रणनीति कोड की एक श्रेणी है। एफएमजेड क्वांट ट्रेडिंग प्लेटफ़ॉर्म में टेम्पलेट लाइब्रेरी सुविधा का समर्थन करने वाली प्रोग्रामिंग भाषाएँ हैंJavaScript
, Python
, C++
, औरBlockly
. यदि रणनीति बनाते समय श्रेणी टेम्पलेट क्लास लाइब्रेरी पर सेट की जाती है, तो वर्तमान में लॉग इन किए गए एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म खाते की रणनीति लाइब्रेरी में एक टेम्पलेट लाइब्रेरी बनाई जाएगी, और श्रेणी को बनाने के बाद सामान्य रणनीति में बदलना संभव नहीं है.
निर्यात फ़ंक्शन टेम्पलेट लाइब्रेरी का एक इंटरफेस फ़ंक्शन है, और इसे उस रणनीति द्वारा बुलाया जा सकता है जो टेम्पलेट लाइब्रेरी को संदर्भित करता है.
/*
-- After the strategy references the template, call this method directly with $.Test()
-- The main function is not triggered in the strategy, it is only the entry point for template debugging
*/
$.Test = function() {
Log('Test')
}
function main() {
$.Test()
}
def Test():
Log("template call")
# Export the Test function, the main strategy can be called via ext.Test().
ext.Test = Test
// After the strategy references the template, call this method directly with ext::Test()
void Test() {
Log("template call");
}
टेम्पलेट लाइब्रेरी विभिन्न प्रोग्रामिंग भाषाओं के लिए एक अलग प्रारूप में लिखी गई है। टेम्पलेट लाइब्रेरी में घोषित किए जाने वाले और कार्यान्वित किए जाने वाले फ़ंक्शनों के निर्यात के लिए एक उदाहरण कोड निम्नानुसार हैः
दBlockly Visualization
रणनीति उपयोग पुस्तकालय कार्यक्षमता के लिए दृष्टिकोण में एक टेम्पलेट वर्ग पुस्तकालय लिखकर लागू किया जा सकता हैJavaScript
निम्नलिखित लेखन प्रारूप का उपयोग करके लिखी गई भाषा।
/*blockly
{
"type": "ext_testA",
"message0": "testA|testA",
"template": "function(){return 99;}()",
"order": "ORDER_ATOMIC",
"output": "Number"
},{
"type": "ext_MA",
"message0": "MA 周期 %1| MA Period %1",
"args0": [{
"type": "input_value",
"check": "Number"
}],
"template": "(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()",
"order": "ORDER_ATOMIC",
"output": null,
"colour": 85
}
*/
टेम्पलेट लाइब्रेरी अपने स्वयं के इंटरफेस पैरामीटर भी सेट कर सकती है, जिनका उपयोग टेम्पलेट लाइब्रेरी के कोड में वैश्विक चर के रूप में किया जाता है। उदाहरण के लिए, हम एक टेम्पलेट वर्ग पुस्तकालय के मापदंडों सेटः
रणनीति कोड में पैरामीटर का चर नाम | रणनीति स्क्रीन पर प्रदर्शित पैरामीटर का नाम | प्रकार | डिफ़ॉल्ट मान |
---|---|---|---|
पैरामीटर1 | पैरामीटर1 | संख्या | 99 |
$.SetParam1 = function(p1) {
param1 = p1
}
$.GetParam1 = function() {
Log("param1:", param1)
return param1
}
def SetParam1(p1):
global param1
param1 = p1
def GetParam1():
Log("param1:", param1)
return param1
ext.SetParam1 = SetParam1
ext.GetParam1 = GetParam1
void SetParam1(float p1) {
param1 = p1;
}
float GetParam1() {
Log("param1:", param1);
return param1;
}
परीक्षण के लिए टेम्पलेट क्लास लाइब्रेरी कोडparam1
मापदंड:
function main () {
Log("Call $.GetParam1:", $.GetParam1())
Log("Call $.SetParam1:", "#FF0000")
$.SetParam1(20)
Log("Call $.GetParam1:", $.GetParam1())
}
def main():
Log("Call ext.GetParam1:", ext.GetParam1())
Log("Call ext.SetParam1:", "#FF0000")
ext.SetParam1(20)
Log("Call ext.GetParam1:", ext.GetParam1())
void main() {
Log("Call ext::GetParam1:", ext::GetParam1());
Log("Call ext::SetParam1:", "#FF0000");
ext::SetParam1(20);
Log("Call ext::GetParam1:", ext::GetParam1());
}
ऊपर टेम्पलेट वर्ग पुस्तकालय उदाहरण के रणनीति कोड का संदर्भ लें और पैरामीटर प्राप्त करने के लिए टेम्पलेट वर्ग पुस्तकालय के निर्यात फ़ंक्शन का उपयोग करेंparam1
और पैरामीटर को संशोधितparam1
.
जब कोई रणनीति किसी टेम्पलेट लाइब्रेरी का संदर्भ देती है, तो इसके लिए यह आवश्यक होता है कि वर्तमान में लॉग इन किए गए FMZ क्वांट ट्रेडिंग प्लेटफॉर्म खाते में अपनी रणनीति लाइब्रेरी में एक उपलब्ध टेम्पलेट लाइब्रेरी हो।रणनीति संपादन पृष्ठ, रणनीति को बचाओ।
रणनीति ढांचा और एपीआई कार्य रणनीति पैरामीटर