WebSocket تیز رفتار ڈرائیور
ویب سوکیٹ پر مبنی ریئل ٹائم مارکیٹ ڈیٹا ایکسلریشن ٹیمپلیٹ لائبریری
تفصیل:
یہ حکمت عملی متعدد ایکسچینجز کے ریئل ٹائم ڈیٹا پروسیسنگ کو ملٹی تھریڈ ویب سوکیٹ کنکشن کے ذریعے بہتر بناتی ہے۔ FMZ کوانٹیٹیٹو ٹریڈنگ پلیٹ فارم میں ویب سوکیٹ کنکشن کا استعمال کرتے ہوئے ڈیپت آرڈر بک اور ٹریڈ ڈیٹا حاصل کیا جاتا ہے، جس سے مارکیٹ ڈیٹا حاصل کرنے میں تاخیر نمایاں طور پر کم ہوتی ہے اور ہائی فریکوئنسی ٹریڈنگ سسٹم کی کارکردگی بہتر ہوتی ہے۔
اہم خصوصیات:
- متعدد ایکسچینجز کی حمایت: یہ حکمت عملی بائننس، OKX، Bybit، Bitget سمیت متعدد ایکسچینجز کے ویب سوکیٹ کنکشن کو سپورٹ کرتی ہے، جو روایتی REST API پولنگ کے مقابلے میں تیز اور زیادہ مستحکم ڈیٹا سٹریم فراہم کرتی ہے۔
- قابل تخصیص سبسکرپشن: مخصوص مارکیٹ چینلز (جیسے ڈیپت، ٹریڈز وغیرہ) کو سبسکرائب کرنے اور موصولہ ڈیٹا کو مؤثر طریقے سے پروسیس کرنے کی اجازت دیتی ہے، جسے ٹریڈنگ حکمت عملی فوری طور پر استعمال کر سکتی ہے۔
- اعلیٰ درجے کی غلطیوں کا انتظام: بلٹ ان ایرر ٹریکنگ اور ویب سوکیٹ دوبارہ کنیکٹ کرنے کا طریقہ کار ڈیٹا سٹریم کی قابل اعتمادی اور تسلسل کو یقینی بناتا ہے۔
- CRC32 چیک سم: OKX جیسے ایکسچینجز کے لیے CRC32 چیک سم فنکشن شامل کیا گیا ہے تاکہ موصولہ آرڈر بک ڈیٹا کی سالمیت کو یقینی بنایا جا سکے۔
یہ ویب سوکیٹ پر مبنی حل روایتی API پولنگ کی جگہ لے لیتا ہے اور ان تاجروں کے لیے موزوں ہے جنہیں کم سے کم تاخیر اور مارکیٹ کے زیادہ سے زیادہ جوابی وقت کی ضرورت ہوتی ہے۔
استعمال کا طریقہ:
- ابتدائی ترتیب:
$.setupWebsocket()کا استعمال کرتے ہوئے ہدف ایکسچینج کے لیے ویب سوکیٹ کنکشن شروع کریں۔ - سبسکرپشن: سسٹم آپ کی تجارت کے لیے منتخب کردہ مصنوعات کے لیے خود بخود متعلقہ چینلز (جیسے ڈیپت، ٹریڈز وغیرہ) سبسکرائب کرے گا۔
- ڈیٹا حاصل کرنا:
GetDepth()اورGetTrades()فنکشنز کو کال کرکے، ویب سوکیٹ ریئل ٹائم ڈیٹا کا استعمال کرتے ہوئے مارکیٹ ڈیپت اور ٹریڈ ریکارڈز حاصل کریں۔ - غلطیوں کا انتظام: حکمت عملی میں کنکشن اور ڈیٹا کی غلطیوں کو ریکارڈ کرنے کا ایک ٹریکنگ میکانزم شامل ہے، اور کنکشن منقطع ہونے پر خود بخود دوبارہ رابطہ کرنے کی کوشش کرتا ہے۔
یہ سکرپٹ FMZ کوانٹیٹیو پلیٹ فارم پر چلانے کے لیے ڈیزائن کیا گیا ہے، جو متعدد ایکسچینجز کے لیے تیز، قابل اعتماد اور قابل توسیع مارکیٹ ڈیٹا تک رسائی فراہم کرتا ہے۔
javascript
function main() {
$.setupWebsocket()
while (true) {
exchanges.map(e=>{
Log(e.GetName(), e.GetDepth())
Log(e.GetName(), e.GetTrades())
// support custom and auto subscribe 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
}