ٹیمپلیٹ لائبریریایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم میں بار بار استعمال ہونے والے کوڈ ماڈیولز ہیں ، جو حکمت عملی کا کوڈ کا ایک زمرہ ہے۔ پروگرامنگ کی زبانیں جو ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم میں ٹیمپلیٹ لائبریری کی خصوصیت کی حمایت کرتی ہیں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
.
جب کوئی حکمت عملی کسی ٹیمپلیٹ لائبریری کا حوالہ دیتی ہے تو ، اس کی ضرورت ہوتی ہے کہ فی الحال لاگ ان ہونے والے ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم اکاؤنٹ میں اس کی حکمت عملی لائبریری میں ٹیمپلیٹ لائبریری دستیاب ہو۔حکمت عملی ترمیم کا صفحہ، حکمت عملی کو بچانے.
حکمت عملی کا فریم ورک اور API افعال حکمت عملی کے پیرامیٹرز