WebSocket API v1 - একটি বৈধ অর্ডার বুক কীভাবে বজায় রাখবেন

সর্বশেষ আপডেট হয়েছে: ১ এপ্রি, ২০২৫

WebSocket API v1 অর্ডার বুক ফিড ক্রাকেনের একটি স্থানীয় কপি বজায় রাখার জন্য প্রয়োজনীয় সমস্ত বাজার ডেটা সরবরাহ করে অর্ডার বুক

উদাহরণস্বরূপ, XBT/USD-এর জন্য অর্ডার বুক ফিড আমাদের বিটকয়েন/ইউএস ডলার কারেন্সি পেয়ারের অর্ডার বুক পুনরুদ্ধার এবং বজায় রাখতে ব্যবহার করা যেতে পারে, ঠিক যেমন অর্ডার বুক আমাদের ট্রেডিং প্ল্যাটফর্মে দেখানো হয়।

অর্ডার বুক ফিড বর্তমান অর্ডার বুকের একটি প্রাথমিক স্ন্যাপশট সরবরাহ করে এবং তারপর রিয়েল টাইমে অর্ডার বুকে আপডেট স্ট্রিম করে, যাতে অর্ডার বুক ফিডের মাধ্যমে বজায় রাখা একটি অর্ডার বুক সর্বদা আপ টু ডেট থাকে।

অর্ডার বুক ফিডের জন্য JSON ফরম্যাটের সম্পূর্ণ বিবরণ আমাদের WebSocket API v1 ডকুমেন্টেশনে উপলব্ধ।

অর্ডার বুক স্ন্যাপশট

অর্ডার বুক ফিডে সাবস্ক্রাইব করার পর, প্রথম বাজার ডেটা বার্তাটি বর্তমান অর্ডার বুকের একটি স্ন্যাপশট হবে।

অর্ডার বুক স্ন্যাপশটে অনুরোধ করা (সাবস্ক্রাইব করা) গভীরতা পর্যন্ত সম্পূর্ণ অর্ডার বুক অন্তর্ভুক্ত থাকে, যেমন XBT/USD অর্ডার বুকের 10 গভীরতার নিম্নলিখিত উদাহরণ:

[0,{"as":[["5290.80000","1.00000000","1556724667.748660"],["5290.90000","4.49956524","1556724664.331028"],["5291.70000","1.00000000","1556724653.480504"],["5292.00000","0.95388940","1556724619.682690"],["5292.20000","1.51300000","1556724494.497326"],["5293.10000","0.69800000","1556724667.635414"],["5293.20000","2.00000000","1556724656.022756"],["5293.90000","2.83200000","1556724668.057687"],["5294.10000","0.99600000","1556724666.340462"],["5294.50000","5.00000000","1556724661.980996"]],"bs":[["5290.10000","1.43195600","1556724666.594179"],["5289.80000","2.00000000","1556724663.082526"],["5289.40000","0.49400000","1556724665.274827"],["5289.20000","0.89533312","1556724640.520134"],["5287.40000","3.23600000","1556724660.997516"],["5287.30000","3.33000000","1556724659.999108"],["5287.00000","10.20000000","1556724635.850932"],["5286.00000","3.86378703","1556724662.757360"],["5285.70000","6.40000000","1556724488.785281"],["5283.90000","0.50000000","1556723616.006805"]]},"book-10","XBT/USD"]

স্ন্যাপশটে বর্তমান সেরা বিড/আস্ক মূল্য, তাদের উপলব্ধ ভলিউম এবং মূল্য স্তরটি সর্বশেষ আপডেট হওয়ার তারিখ/সময় (6 দশমিক স্থান পর্যন্ত সেকেন্ডে একটি UNIX টাইমস্ট্যাম্প হিসাবে) অন্তর্ভুক্ত থাকে।

মূল্য স্তরের পরিবর্তন

প্রাথমিক স্ন্যাপশটের পর, অর্ডার বুকের মূল্য স্তরগুলি আপডেট, ইনসার্ট এবং ডিলিট বার্তার মাধ্যমে রিয়েল টাইমে পরিবর্তিত হয়।

আপডেট বার্তা

একটি আপডেট বার্তা অর্ডার বুকের মধ্যে বিদ্যমান একটি মূল্য স্তরকে নতুন ভলিউম এবং টাইমস্ট্যাম্প সরবরাহ করে আপডেট করে, যেমন অর্ডার বুকের আস্ক সাইডে মূল্য স্তর 5293.1 এর জন্য নিম্নলিখিত আপডেট:

[0,{"a":[["5293.10000","0.39800000","1556724673.104421"]], "c":"408163318"},"book-10","XBT/USD"]

যদিও মূল্য একই থাকে (5293.1), সেই মূল্যে উপলব্ধ ভলিউম 0.69800000 (প্রাথমিক স্ন্যাপশট দ্বারা সরবরাহকৃত) থেকে 0.39800000 এ পরিবর্তিত হয় এবং মূল্য স্তরের জন্য নতুন টাইমস্ট্যাম্প পরিবর্তনের তারিখ/সময় প্রতিফলিত করে।

আপডেট বার্তাগুলি শুধুমাত্র অর্ডার বুকের মধ্যে বিদ্যমান মূল্য স্তরগুলি পরিবর্তন করে; তারা অর্ডার বুকে মূল্য স্তর যোগ বা অপসারণ করে না।

ইনসার্ট বার্তা

একটি ইনসার্ট বার্তা অর্ডার বুকে একটি নতুন মূল্য স্তর যোগ করে, যেমন অর্ডার বুকের আস্ক সাইডে মূল্য স্তর 5294.4 এর জন্য নিম্নলিখিত ইনসার্ট:

[0,{"a":[["5294.40000","0.99600000","1556724672.663220"]], "c":"393966308"},"book-10","XBT/USD"]

প্রতিটি ইনসার্ট বার্তায় নতুন মূল্য স্তর (5294.4), সেই মূল্যে উপলব্ধ ভলিউম (0.99600000) এবং মূল্য স্তরটি সর্বশেষ আপডেট হওয়ার টাইমস্ট্যাম্প অন্তর্ভুক্ত থাকে।

ইনসার্ট বার্তাগুলি একটি নতুন মূল্য স্তর তৈরি করে, পরবর্তী সমস্ত মূল্য স্তর (নিম্ন বিড মূল্য বা উচ্চ আস্ক মূল্য) বাইরের দিকে সরিয়ে এবং অর্ডার বুকের পরিধির বাইরে সবচেয়ে বাইরের মূল্য স্তরকে ঠেলে দিয়ে অর্ডার বুকের মধ্যে মূল্য স্তরগুলি পরিবর্তন করে।

উদাহরণস্বরূপ, উপরের প্রাথমিক স্ন্যাপশট থেকে, ইনসার্ট বার্তাটি:

[0,{"a":[["5294.40000","0.99600000","1556724672.663220"]], "c":"393966308"},"book-10","XBT/USD"]

অর্ডার বুকের লেভেল 10 (সর্বোচ্চ আস্ক মূল্য) এ মূল্য স্তর 5294.4 যোগ করবে এবং মূল্য স্তর 5294.5 কে অর্ডার বুকের পরিধির বাইরে সরিয়ে দেবে (কার্যকরভাবে 5294.5 কে লেভেল 11 এ সরিয়ে)।

ডিলিট বার্তা

একটি ডিলিট বার্তা অর্ডার বুক থেকে একটি মূল্য স্তর সরিয়ে দেয়, যেমন অর্ডার বুকের আস্ক সাইডে মূল্য স্তর 5294.1 এর জন্য নিম্নলিখিত আংশিক ডিলিট বার্তা:

[0,{"a":[["5294.10000","0.00000000","1556724670.010241"]] ... },"book-10","XBT/USD"]

ডিলিট বার্তাগুলিতে যে মূল্য স্তরটি আর বিদ্যমান নেই তা অন্তর্ভুক্ত থাকে, সর্বদা 0.0 এর উপলব্ধ ভলিউম নির্দিষ্ট করে এবং মূল্য স্তরটি অর্ডার বুক থেকে সরানো হওয়ার তারিখ/সময় নির্দেশ করে একটি টাইমস্ট্যাম্প অন্তর্ভুক্ত করে।

ডিলিট বার্তাগুলি প্রভাবিত মূল্য স্তরটি সরিয়ে (অর্ডার বুক থেকে সম্পূর্ণরূপে, শুধুমাত্র সাবস্ক্রাইব করা গভীরতা থেকে নয়), পরবর্তী সমস্ত মূল্য স্তর (নিম্ন বিড মূল্য বা উচ্চ আস্ক মূল্য) ভিতরের দিকে সরিয়ে এবং একটি নতুন মূল্য স্তরকে অর্ডার বুকের পরিধির মধ্যে টেনে এনে অর্ডার বুকের মধ্যে মূল্য স্তরগুলি পরিবর্তন করে।

উল্লেখ্য যে একটি ডিলিট সর্বদা একটি ইনসার্ট দ্বারা অবিলম্বে অনুসরণ করা হয় যা সবচেয়ে বাইরের স্তরে (যেমন 10 গভীরতার জন্য লেভেল 10) একটি নতুন মূল্য স্তরকে পরিধির মধ্যে নিয়ে আসে।

উদাহরণস্বরূপ, উপরের প্রাথমিক স্ন্যাপশট থেকে, ডিলিট/ইনসার্ট বার্তাটি:

[0,{"a":[["5294.10000","0.00000000","1556724670.010241"],["5294.70000","3.34000000","1556724653.951982","r"]], "c":"3679121060"},"book-10","XBT/USD"]

এটি অর্ডার বুকের লেভেল 9 থেকে মূল্য স্তর 5294.1 মুছে ফেলবে, মূল্য স্তর 5294.5 কে লেভেল 10 থেকে লেভেল 9 এ সরিয়ে দেবে এবং অবিলম্বে নতুন মূল্য স্তর 5294.7 কে অর্ডার বুকের লেভেল 10 এ যোগ করবে (সবচেয়ে বাইরের স্তর এবং 10 গভীরতার জন্য সর্বোচ্চ আস্ক মূল্য)।

অতিরিক্ত সম্পদ

অর্ডার বুক লজিকের আরও বিশদ বিবরণ নমুনা অর্ডার বুক ট্রান্সক্রিপ্ট এবং অ্যাসিঙ্ক্রোনাস (মাল্টি-থ্রেডেড) এবং সিঙ্ক্রোনাস (সিঙ্গেল-থ্রেডেড) কমান্ড লাইন ক্লায়েন্ট বাস্তবায়নের উদাহরণ কোডের মাধ্যমে উপলব্ধ।

এই নিবন্ধে দেখানো দশমিক এবং হাজার বিভাজকগুলি আমাদের ট্রেডিং প্ল্যাটফর্মে প্রদর্শিত বিন্যাস থেকে ভিন্ন হতে পারে। আমরা কীভাবে পয়েন্ট এবং কমা ব্যবহার করি সে সম্পর্কে আরও তথ্যের জন্য আমাদের নিবন্ধটি পর্যালোচনা করুন।

আরও সাহায্যের প্রয়োজন?