ویب ساکٹ ایکسلریٹر ڈرائیور
WebSocket کی بنیاد پر ریئل ٹائم ڈیٹاسیٹ ایکسلریٹڈ ٹیمپلیٹ کلاس لائبریری
بیان کریں:
اس حکمت عملی نے کثیر تار ویب ساکٹ کنکشن کے ذریعہ متعدد ایکسچینجوں کے لئے ریئل ٹائم ڈیٹا پروسیسنگ کو بہتر بنایا ہے۔ ایف ایم زیڈ کے مقداری تجارتی پلیٹ فارم میں ویب ساکٹ کنکشن کا استعمال کرتے ہوئے گہرائی سے آرڈر بک اور تجارتی اعداد و شمار تک رسائی حاصل کی گئی ہے ، جس سے مارکیٹ کے اعداد و شمار تک رسائی میں تاخیر میں نمایاں کمی واقع ہوئی ہے اور ہائی فریکوئینسی ٹریڈنگ سسٹم کی کارکردگی میں اضافہ ہوا ہے۔
اہم خصوصیات:
- متعدد ایکسچینج سپورٹاس حکمت عملی میں متعدد تبادلے جیسے کہ بٹین ، او کے ایکس ، بائبٹ ، اور بٹ گیٹ کے لئے ویب ساکٹ کنکشن کی حمایت کی گئی ہے ، جو روایتی REST API سروے سے کہیں زیادہ تیز اور زیادہ مستحکم ڈیٹا اسٹریم فراہم کرتا ہے۔
- حسب ضرورت سبسکرپشن: مخصوص مارکیٹ چینلز (جیسے گہرائی، ٹریڈنگ، وغیرہ) کی رکنیت اور تجارتی حکمت عملیوں کے ذریعے فوری استعمال کے لیے موصول ہونے والے ڈیٹا کی موثر پروسیسنگ کی اجازت دیتا ہے۔
- ایڈوانسڈ ایرر ہینڈلنگ: بلٹ ان ایرر ٹریکنگ اور ویب ساکٹ ری کنکشن میکانزم ڈیٹا کے بہاؤ کی وشوسنییتا اور تسلسل کو یقینی بنانے کے لیے۔
- CRC32 کی توثیقاو کے ایکس جیسے تبادلے کے لئے ، سی آر سی 32 کی توثیق کو مربوط کیا گیا ہے تاکہ آرڈر بک کے اعداد و شمار کی سالمیت کو یقینی بنایا جاسکے۔
یہ WebSocket پر مبنی حل روایتی API سروے کی جگہ لے لیتا ہے اور تاجروں کے لئے موزوں ہے جو کم سے کم تاخیر اور زیادہ سے زیادہ مارکیٹ کی رفتار کی ضرورت ہوتی ہے.
ہدایات:
- ابتدا:استعمال
$.setupWebsocket()ٹارگٹ ایکسچینج سے WebSocket کنکشن شروع کریں۔ - رکنیت: سسٹم خود بخود متعلقہ چینلز کو سبسکرائب کر لے گا (جیسے کہ گہرائی، ٹریڈنگ وغیرہ) ان مصنوعات کے لیے جو آپ تجارت کرتے ہیں۔
- ڈیٹا کا حصول: بلا کر
GetDepth()اورGetTrades()فنکشن، مارکیٹ کی گہرائی اور لین دین کے ریکارڈ کو واپس کرنے کے لیے خودکار طور پر WebSocket کا ریئل ٹائم ڈیٹا استعمال کرتا ہے۔ - ہینڈلنگ میں خرابی: پالیسی میں ایک ٹریکنگ میکانزم شامل ہے جو کنکشن اور ڈیٹا کی غلطیوں کو لاگ کرتا ہے اور کنکشن کھو جانے کی صورت میں خود بخود دوبارہ جڑنے کی کوشش کرتا ہے۔
اس اسکرپٹ کا مقصد ایف ایم زیڈ کوانٹومیشن پلیٹ فارم پر کام کرنا ہے ، جس سے متعدد ایکسچینجز کو تیز ، قابل اعتماد اور توسیع پذیر مارکیٹ ڈیٹا تک رسائی حاصل ہوسکتی ہے۔
javascript
function main() {
$.setupWebsocket()
while (true) {
exchanges.map(e=>{
Log(e.GetName(), e.GetDepth())
Log(e.GetName(), e.GetTrades())
// support custom and auto subsribe Eg: e.GetDepth('ETH_USDT')
})
EventLoop(100) // trigger by websocket or use Sleep control delay
}
}
// @ts-check
$.setupWebsocket = function (main_exchanges) {
let crc32 = function (r) {
for (var a, o = [], c = 0; c < 256; c++) {
a = c;
for (var f = 0; f < 8; f++) a = 1 & a ? 3988292384 ^ a >>> 1 : a >>> 1;
o[c] = a
}
for (var n = -1, t = 0; t < r.length; t++) n = n >>> 8 ^ o[255 & (n ^ r.charCodeAt(t))];
return (-1 ^ n) >>> 0
}