دریافت عمق بازار فروش (sellDepth)
از طریق این کانال میتوانید سفارشهای فروش موجود در Order Book یک بازار خاص را بهصورت لحظهای دریافت کنید. این دادهها برای نمایش لیست سفارشهای فروش، تحلیل عمق بازار و طراحی ابزارهای معاملاتی بسیار کاربردی میباشند.
توجه داشته باشید که هر پیام یک اسنپشات کامل از عمق بازار میباشد، نه تغییرات آن. یعنی با رسیدن هر پیام باید لیست قبلی را کنار بگذارید و لیست جدید را جایگزین کنید. این موضوع در هر سه روش زیر یکسان است.
جهت دریافت این کانال سه روش وجود دارد.
ورژن ۱ (منسوخ شده)
ورژن ۱ (wss://api.wallex.ir/ws) منسوخ شده است. این ورژن هنوز کار میکند، اما کانالهای جدید مانند قیمت منصفانه و کندل چارت فقط روی ورژن ۲ (سنتریفیگو) در دسترس هستند.
برای پیادهسازی جدید از ورژن ۲ استفاده کنید. برای انتقال کد فعلی، راهنمای مهاجرت را ببینید.
آدرس اتصال WebSocket
برای اتصال باید از آدرس زیر استفاده کنید.
wss://api.wallex.ir/ws
فرمت پیام Subscribe
جهت دریافت عمق بازار باید پیام خود را با فرمت زیر ارسال کنید و میتوانید هر مارکتی را جایگزین MARKET قرار دهید.
["subscribe", { "channel": "MARKET@sellDepth" }]
مثال
["subscribe", { "channel": "BTCTMN@sellDepth" }]
["subscribe", { "channel": "USDTTMN@sellDepth" }]
نمونه پاسخ دریافتی
پس از ارسال پیام در سوکت، جوابهایی که دریافت میکنید بهصورت زیر میباشد که هر آبجکت بیانگر یک اوردر در اوردربوک میباشد.
| فیلد | نوع | توضیح |
|---|---|---|
quantity | Number | مقدار سفارش |
price | Number | قیمت هر واحد |
sum | Number | مجموع مقدار سفارش |
پاسخ یک آرایهی دوتایی میباشد که عضو اول آن نام کانال و عضو دوم آن آرایهی سفارشها است.
[
"BTCTMN@sellDepth",
[
{ "quantity": 255.75, "price": 82131, "sum": 21005003.25 },
{ "quantity": 103.07, "price": 82083, "sum": 8460294.81 },
{ "quantity": 139.05, "price": 82066, "sum": 11411277.3 }
]
]
نکتهها
- توجه داشته باشید که عضو شدن در این کانال وضعیت فعلی عمق بازار را برای شما ارسال نمیکند و اولین پیام زمانی میرسد که عمق بازار تغییر کند.
- محدودیتها، پیامهایی که دادهی کانال نیستند و نحوهی لغو عضویت در جزئیات ورژن ۱ (منسوخ شده) آمده است.
ورژن ۲ (سنتریفیگو) با SDK
آدرس اتصال WebSocket
برای اتصال باید از آدرس زیر استفاده کنید.
wss://api.wallex.ir/connection/websocket
نام کانال
میتوانید هر مارکتی را جایگزین <SYMBOL> قرار دهید.
orderbook:<SYMBOL>@sellDepth
نمونه کد عضویت
const book = client.newSubscription("orderbook:BTCTMN@sellDepth");
book.on("publication", (ctx) => renderSellDepth(ctx.data));
book.subscribe();
نمونه پاسخ دریافتی
پس از عضویت، هر اسنپشات جدید در رویداد publication به شما تحویل داده میشود و بدنهی آن در ctx.data قرار دارد.
| فیلد | نوع | توضیح |
|---|---|---|
quantity | Number | مقدار سفارش |
price | Number | قیمت هر واحد |
sum | Number | مجموع مقدار سفارش |
[
{ "quantity": 255.75, "price": 82131, "sum": 21005003.25 },
{ "quantity": 103.07, "price": 82083, "sum": 8460294.81 },
{ "quantity": 139.05, "price": 82066, "sum": 11411277.3 }
]
نکتهها
- توجه داشته باشید که عضو شدن در این کانال وضعیت فعلی عمق بازار را برای شما ارسال نمیکند و اولین پیام زمانی میرسد که عمق بازار تغییر کند.
- این کانال تاریخچه نگه نمیدارد، بنابراین اسنپشاتهایی که در زمان قطعی اتصال منتشر شدهاند دوباره ارسال نمیشوند.
- پاسخ دادن به ping سرور توسط SDK انجام میشود. جزئیات در اتصال و عضویت آمده است.
ورژن ۲ (سنتریفیگو) بدون SDK
آدرس اتصال WebSocket
برای اتصال باید از آدرس زیر استفاده کنید.
wss://api.wallex.ir/connection/websocket
نام کانال
میتوانید هر مارکتی را جایگزین <SYMBOL> قرار دهید.
orderbook:<SYMBOL>@sellDepth
فرمت پیام Subscribe
جهت دریافت عمق بازار باید دستور زیر را ارسال کنید.
{ "id": 3, "subscribe": { "channel": "orderbook:BTCTMN@sellDepth" } }
پاسخ موفق این دستور خالی میباشد و اسنپشات فعلی را همراه خود ندارد.
{ "id": 3, "subscribe": {} }
نمونه پاسخ دریافتی
پس از ارسال پیام در سوکت، جوابهایی که دریافت میکنید بهصورت زیر میباشد و آرایهی سفارشها داخل پوشش push قرار دارد.
| فیلد | نوع | توضیح |
|---|---|---|
quantity | Number | مقدار سفارش |
price | Number | قیمت هر واحد |
sum | Number | مجموع مقدار سفارش |
{
"push": {
"channel": "orderbook:BTCTMN@sellDepth",
"pub": {
"data": [{ "quantity": 255.75, "price": 82131, "sum": 21005003.25 }]
}
}
}
نکتهها
- توجه داشته باشید که عضو شدن در این کانال وضعیت فعلی عمق بازار را برای شما ارسال نمیکند و اولین پیام زمانی میرسد که عمق بازار تغییر کند.
- این کانال تاریخچه نگه نمیدارد، بنابراین اسنپشاتهایی که در زمان قطعی اتصال منتشر شدهاند دوباره ارسال نمیشوند.
- پاسخ دادن به ping سرور بر عهدهی خود شما میباشد. جزئیات در اتصال بدون SDK آمده است.