
حسب ضرورت کلاس لائبریری کے ساتھ تصوراتی حکمت عملی کو کیسے بڑھایا جائے؟ مثال کے طور پر، میں ایم اے اشارے کا حساب لگانا چاہتا ہوں، لیکن سسٹم صرف اس کے ساتھ آتا ہے:
میں ان اشارے میں کچھ حسب ضرورت کوڈ کیسے شامل کر سکتا ہوں؟
آئیے حسب ضرورت MA اشارے کیلکولیشن ماڈیول کو مثال کے طور پر شامل کرتے ہوئے یہ سمجھاتے ہیں کہ تصوراتی ماڈیول کو کیسے بڑھایا جائے۔
پہلے، آئیے [Cryptocurrency Spot Trading Library] ٹیمپلیٹ کے بارے میں بات کرتے ہیں، پتہ یہ ہے: https://www.fmz.com/strategy/10989 اگرچہ یہ ٹیمپلیٹ FMZ پلیٹ فارم کا جاوا اسکرپٹ لینگویج ٹیمپلیٹ ہے (جو طلباء ٹیمپلیٹس کے تصور کو نہیں سمجھتے وہ سوال کے لیے FMZ API دستاویز پر جا سکتے ہیں: https://www.fmz.com/api#%E6%A8%A1 %E6%9D%BF% E7%B1%BB%E5%BA%93) تاہم، ٹیمپلیٹ کے شروع میں تبصرے کوڈ پر مشتمل ہے جو ویژولائزیشن ماڈیول کی وضاحت کرتا ہے، اور اس جاوا اسکرپٹ ٹیمپلیٹ کے کوڈ کو متعین کوڈ میں حوالہ دیا جا سکتا ہے۔ یہ ہمارے لیے خود اس کو پھیلانا بہت آسان بناتا ہے (ہمارے لیے نقل کرنے کے لیے ایک اچھی مثال دیتا ہے)۔
ڈیجیٹل کرنسی اسپاٹ ٹریڈنگ لائبریری، شروع میں بصری تعریف:
/*blockly
{
"type": "ext_Trade",
"message0": "%1 币数 %2|%1 Coins %2",
"args0": [{
"type": "field_dropdown",
"options": [
["买入|Buy", "Buy"],
["卖出|Sell", "Sell"]
]
}, {
"type": "input_value",
"check": "Number"
}],
"template": "(function(){var r = $.%1(%2); return r ? r.amount : 0; })()",
"order": "ORDER_ATOMIC",
"output": "Number",
"colour": 85
}, {
"type": "ext_CancelPendingOrders",
"message0": "取消 %1 订单|Cancel %1 Orders",
"args0": [{
"type": "field_dropdown",
"name": "TYPE",
"options": [
["所有|All", " "],
["买单|Buy", "ORDER_TYPE_BUY"],
["卖单|Sell", "ORDER_TYPE_SELL"]
]
}],
"previousStatement": null,
"nextStatement": null,
"template": "$.CancelPendingOrders(%1);",
"colour": 85
}, {
"type": "ext_Cross",
"message0": "计算交叉 周期 %1 与 %2|Cross Period %1 and %2",
"inputsInline": true,
"args0": [{
"type": "input_value"
}, {
"type": "input_value"
}],
"template": "$.Cross(%1,%2)",
"order": "ORDER_ATOMIC",
"output": "Number"
}, {
"type": "ext_GetAccount",
"message0": "获取资产信息|GetAccount",
"template": "$.GetAccount()",
"order": "ORDER_ATOMIC",
"output": null
}
*/
وہ بالترتیب بصری ترمیم کے صفحہ میں ماڈیولز سے مطابقت رکھتے ہیں:

تیار شدہ مثالوں کے ساتھ، انہیں خود بنانا بہت آسان ہے، بس مثال کی پیروی کریں۔
سب سے پہلے، جاوا اسکرپٹ کی زبان میں ایک نیا ٹیمپلیٹ بنائیں۔

ٹیمپلیٹ کوڈ میں ترمیم کریں۔
/*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
}
*/
نئی ٹیمپلیٹ میں ترمیم کرنے کے بعد، اسے محفوظ کریں۔
پالیسی میں جہاں ہمیں اس ٹیمپلیٹ کو استعمال کرنے کی ضرورت ہے، اس ٹیمپلیٹ کو چیک کریں۔

آپ دیکھ سکتے ہیں کہ دو اور ماڈیولز ہیں:

ماڈیول کا نام ہے: testA، آئیے اس کے ایگزیکیوشن کوڈ کو دیکھیں:

function(){return 99;}()
یہ ایک بہت ہی آسان جاوا اسکرپٹ فنکشن ہے جو عمل میں آنے پر 99 کی قدر لوٹاتا ہے۔

ماڈیول کا نام ہے: MA سائیکل، آئیے اس کے عمل کوڈ کو دیکھیں:

(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()
کوڈ ایک گمنام فنکشن کال ہے جو پہلے K-line ڈیٹا حاصل کرنے کے عمل کو انجام دیتا ہے۔r. پھر، اس بات پر منحصر ہے کہ آیا حاصل کردہ r ہے۔nullیاrکیا لمبائی ماڈیول کے ان پٹ پیرامیٹر سے کم ہے؟%1واپسی کا فیصلہ کرنے جائیں۔falseیا واپسیTA.MA(r, %1)حسابی اشارے کے نتائج۔
پھر آپ اسے استعمال کر سکتے ہیں۔
بصری حکمت عملی ایڈیٹر:

چلائیں:

یہ دیکھا جا سکتا ہے کہ ایم اے اشارے کے حساب سے ڈیٹا مطلوبہ طور پر حاصل کیا گیا تھا۔
مندرجہ بالا صرف ایک نقطہ آغاز ہے۔