
موجد مقداری تجارتی پلیٹ فارم پراسٹریٹجی اسکوائراس وقت انٹرنیٹ پر بہت ساری دلچسپ حکمت عملییں استعمال ہوتی تھیں۔restپروٹوکول کے API انٹرفیس، بہت سے حکمت عملی پر مبنی ہیںrestانٹرفیس، کبھی کبھی مارکیٹ اپ ڈیٹس سست ہیں. اس کے علاوہ، کچھ تبادلے حال ہی میں شائع ہوئے ہیںrestانٹرفیس کی ناکامی پالیسی کے ناقابل استعمال ہونے کا سبب بنتی ہے۔ اگر پالیسی میں ترمیم کی گئی ہے تو شامل کریں۔websocketانٹرفیس سپورٹ کے لیے حکمت عملی کے کوڈ میں کچھ تبدیلیوں کی ضرورت ہوتی ہے، جو عام طور پر پریشان کن ہوتی ہے (حکمت عملی کو تبدیل کرنا اسے دوبارہ لکھنے سے کہیں زیادہ مشکل ہے)۔
میں ایک ہی حکمت عملی کو تبدیل کیے بغیر کیسے استعمال کرسکتا ہوں؟websocketمارکیٹ انٹرفیس کے بارے میں کیا خیال ہے؟
یہ مکمل طور پر موجد مقداری تجارتی پلیٹ فارم کی طاقتور لچک کو ظاہر کرتا ہے:
exchange.GetTicker مارکیٹ کی معلومات حاصل کرنے کے لیے فنکشن ہک آپریشن۔یہ حکمت عملی کو کنٹرول کرنے کی اجازت دیتا ہے۔websocketمارکیٹ انٹرفیس سے چلنے والا ڈیٹا چل رہا ہے۔
کوڈنگ زبان استعمال کی گئی۔JavaScriptزبان
مثال کے طور پر، ہم ایک کلاسک پرانی حکمت عملی “آئس بریکر” میں ترمیم کرنا چاہتے ہیں۔
آئیے سب سے پہلے حکمت عملی کے کوڈ کو دیکھیں اور معلوم کریں کہ حکمت عملی ٹک مارکیٹ کے حالات سے چلتی ہے اور بنیادی طور پر استعمال کرتی ہے۔tickerڈیٹا میںBuy、Sell、Lastیہ صفات،tickerڈیٹا FMZ پلیٹ فارم کے API فنکشن سے حاصل کیا گیا ہے:exchange.GetTicker حاصل کریں۔ اس طرح مقصد واضح ہو جاتا ہے۔exchange.GetTickerفنکشنHookآپریشن (یعنی اسے دوسرے ورژن کے ساتھ دوبارہ لکھنا اور اسے تبدیل کرنا) بس اتنا ہی ضروری ہے۔
تاہم، ہم آئس بریکر کی حکمت عملی کو دوبارہ نہیں لکھ سکتے کیونکہ یہ حکمت عملی کو متاثر کرے گا جو ہم چاہتے ہیں ایک ہموار کنکشن ہے! !
لہذا اگلے مرکزی کردار کو ظاہر ہونے کی ضرورت ہے۔
initفنکشن کوآرڈینیشنہم ایک “ٹیمپلیٹ لائبریری” بناتے ہیں اور اسے نام دیتے ہیں:SeamlessConnWSابتدائی کوڈ کو صاف کریں۔

پھر دیناSeamlessConnWSٹیمپلیٹ 2 پیرامیٹرز سیٹ کرتا ہے۔

یہ کنٹرول کرنے کے لیے استعمال کیا جاتا ہے کہ اسے فعال کرنا ہے یا غیر فعال کرنا ہے۔websocketانٹرفیس کی تقریب، کنٹرول اور مخصوص مارکیٹ انٹرفیس کے افتتاح کی وضاحت. محدود جگہ کی وجہ سے، صرفexchange.GetTickerانٹرفیس ہک آپریشن کرتا ہے۔ لہذا پیرامیٹرز صرف فعال ہیں۔GetTickerانٹرفیس ویب ساکٹ موڈ کا کنٹرول پیرامیٹر ہے: Hook_GetTicker۔
ٹیمپلیٹ بننے کے بعد، آپ ٹیمپلیٹ میں رسائی کے لیے مخصوص ایکسچینج لکھ سکتے ہیں۔websocketانٹرفیس، کچھ اقتباسات کو سبسکرائب کریں، اور پھر ڈیٹا کو آگے بڑھانے کے لیے تبادلے کا انتظار کریں۔ مخصوص کوڈ کو یہاں دہرایا نہیں جائے گا آپ SeamlessConnWS کوڈ (عوامی طور پر دستیاب) اور API دستاویزات کا حوالہ دے سکتے ہیں۔ آپ کو جو چیز دیکھنے کی ضرورت ہے وہ ٹیمپلیٹ ہے۔initافعال اور عالمی متغیرات_DictConnectCreater、_ConnMap:
کوڈ:
var _DictConnectCreater = {
"Huobi" : WSConnecter_Huobi,
"Binance" : WSConnecter_Binance,
}
var _ConnMap = {}
function init () {
if (IsUsedWebSocket) {
var connectCreater = null
if (exchanges.length != 1) {
Log("切换为ws接口只针对 exchange 交易所对象(即第一个添加的交易所对象)")
}
var isFound = false
for (var name in _DictConnectCreater) {
if (exchange.GetName() == name) {
connectCreater = _DictConnectCreater[name]
isFound = true
}
}
if (!isFound) {
throw "没有找到实现"
}
if (Hook_GetTicker) {
var symbol = exchange.GetCurrency()
_ConnMap.GetTicker = connectCreater("GetTicker", symbol)
exchange.GetTicker = function () {
return _C(_ConnMap.GetTicker.Read)
}
}
// ...
}
}
آپ دیکھ سکتے ہیں کہ یہ ٹیمپلیٹ صرف 2 ایکسچینجز کو لاگو کرتا ہے۔websocketمارکیٹ کے انٹرفیس Binance Spot اور Huobi Spot ہیں۔initفنکشن “آئس بریکر” حکمت عملی کو حوالہ دینے کی اجازت دینا ہے۔SeamlessConnWSٹیمپلیٹ بننے کے بعد، جب اصلی ڈسک چلائی جاتی ہے، تو سب سے پہلے کام کرنا ہوتا ہے۔initفنکشن، جو خود کار طریقے سے کر سکتے ہیںexchange.GetTickerفنکشن کے مواد کو اس سے تبدیل کریں۔websocketہموار کنکشن حاصل کرنے کے لیے انٹرفیس کوڈ کا نفاذwebsocketاقتباسات۔
یہ بہت آسان ہے! بنڈلSeamlessConnWSٹیمپلیٹ کو اپنی حکمت عملی کی لائبریری میں کاپی کرنے کے بعد، آپ کو صرف “آئس بریکر” حکمت عملی میں اس کا حوالہ دینا ہوگا، جیسا کہ تصویر میں دکھایا گیا ہے:

چیک کریں، محفوظ کریں، اور آپ کا کام ہو گیا۔
ایک “آئس بریکر” حکمت عملی ریئل ٹائم روبوٹ بنائیں اور بائنانس کو بطور ایکسچینج
منتخب کریں۔
کھولیں۔SeamlessConnWSٹیمپلیٹ پر پیرامیٹرز کو کنٹرول کریں۔

اسے چلائیں:

پُش کیے گئے ڈیٹا کو دیکھنا آسان بنانے کے لیے، میں نے لائن 157 میں ایک پرنٹ لاگ کوڈ شامل کیا، جو ایکسچینج کے ذریعے دھکیلے گئے ڈیٹا کو آؤٹ پٹ کرے گا۔

روبوٹ لاگ دکھاتا ہے:

اس طرح، حکمت عملی کوڈ کی ایک لائن میں ترمیم کرنے کی ضرورت نہیں ہے، اور ویب ساکٹ مارکیٹ کے انٹرفیس اور حکمت عملی کا ہموار انضمام حاصل کیا جاتا ہے۔
یہ مثال صرف استعمال کے لیے ہے۔exchange.GetTickerمارکیٹ انٹرفیس فنکشن کی حکمت عملی کی وضاحت کی گئی ہے جیسے کہ دیگر مارکیٹ انٹرفیسexchange.GetDepth、exchange.GetTrades 、exchange.GetRecordsیہ وہی معمول ہے! نمونے کے سانچے کے لیےSeamlessConnWS، جسے مزید بڑھایا جا سکتا ہے۔
ٹیمپلیٹس میں مخصوص روابط کے لیےwebsocketنفاذ کا استعمال کرتا ہے۔Dialفنکشن (دیکھیں API دستاویزات ڈائل فنکشن)، جسے ضرورت کے مطابق ایڈجسٹ کیا جا سکتا ہے۔ مثال کے طور پر آپ دے سکتے ہیں۔read()فنکشن مخصوص پیرامیٹرز-2، یعنی صرف واپسی ۔websocketکنکشن اپنے بفر میں تازہ ترین ڈیٹا حاصل کرتا ہے۔
پڑھنے کا شکریہ