اگر تا به حال به هر یک از مبادلات رمزنگاری شده اید ، من مطمئن هستم که شما قبلاً نمودار عمق را دیده اید ، دقیقاً مانند نمونه موجود در تصویر بالا. در این مقاله ، من می خواستم به سرعت در مورد اینکه یک نمودار عمق در واقع چیست ، چه نوع اطلاعاتی را می توانیم از آن استنباط کنیم ، و سپس نشان دهم که چگونه می توان با استفاده از پایتون ایجاد کرد.
لطفاً در نظر داشته باشید که این مقاله با تمرکز بر دستیابی به داده های کتاب سفارش و ایجاد تجسم مناسب است. این یک قطعه مشاوره سرمایه گذاری نیست!
نمودار عمق - این چیست؟
نمودار عمق نوعی تجسم است که ما را در مورد تقاضا و عرضه یک دارایی خاص (سهام ، کالا ، رمزنگاری و غیره) با قیمت های مختلف آگاه می کند. این مبتنی بر داده های کتاب سفارش است ، یعنی تعداد سفارشات خرید و فروش باز ، از جمله مقدار دارایی. هرچه حجم بیشتر این سفارشات ، بازار آن دارایی مایع تر باشد.
معامله گران از عرضه و تقاضای زمان واقعی برای ارزیابی جهت احتمالی قیمت دارایی استفاده می کنند. علاوه بر این ، از آن برای تخمین تعداد واحدهای دارایی که می توان خریداری کرد بدون اینکه باعث پرش قیمت آن شود ، استفاده می شود. به عنوان نمونه ، قیمت یک دارایی بسیار نقدی (با تعداد زیادی از خریداران و فروشندگان) به این ترتیب پس از تحقق یک سفارش بزرگ احتمالاً تغییر نمی کند. در مورد دارایی هایی که فاقد نقدینگی هستند ، همین حرف را نمی توان گفت.
مثال در پایتون
مثل همیشه ، ما با وارد کردن کتابخانه های مورد نیاز شروع می کنیم.
برای ایجاد نمودار عمق ، ما باید به داده های کتاب سفارش دسترسی پیدا کنیم. ما داده ها را از Binance دریافت می کنیم (سلب مسئولیت: پیوند وابسته) ، یکی از محبوب ترین مبادلات رمزنگاری. روشهای چند برابر وجود دارد که می توانیم به داده ها دسترسی پیدا کنیم:
- استفاده از API Binance از طریق کتابخانه درخواست های Python ،
- با استفاده از کتابخانه غیررسمی پایتون-بنانس ،
- با استفاده از کتابخانه Binance-Connector.
ما با آخرین گزینه خواهیم رفت. ما با فوری مشتری Binance شروع می کنیم. برای این نقطه پایانی خاص ، ما نیازی به داشتن یک حساب و کلید API نداریم. با این حال ، اگر قصد دارید از API آنها گسترده تر استفاده کنید ، ممکن است بخواهید آن را تنظیم کنید. سپس ، ما از روش عمق برای بارگیری داده های کتاب سفارش برای جفت ETHUSDT استفاده می کنیم.
داده های برگشتی در یک فرهنگ لغت با کلیدهای زیر ذخیره می شوند: ["LastUpdateid" ، "پیشنهادات" ، "سؤال"]. پیشنهادات و درخواست ها به عنوان لیست لیست ها ذخیره می شوند ، بنابراین ما باید با استفاده از قطعه بعدی آنها را به یک Dataframe Pandas تبدیل کنیم.
DataFrame به شرح زیر است:
ما همچنین می توانیم داده ها را با استفاده از روش توصیف بازرسی کنیم.
می بینیم که طرفین هر کدام دارای 100 مشاهده هستند. ما می توانیم به اندازه 5000 مشاهده در هر طرف درخواست کنیم. برای جزئیات بیشتر، لطفا به مستندات مراجعه کنید.
به عنوان اولین گام برای کاوش در داده های کتاب سفارش، می توانیم آن را با استفاده از یک نمودار پراکنده تجسم کنیم.
در حالی که میتوانیم جزئیات بسیار بیشتری در مورد دادهها ببینیم، تصمیم گیری بر اساس طرح دشوار است. به همین دلیل است که ما نیاز به تجمیع بیشتری داریم. به عنوان دومین برداشت در کاوش این داده ها، بیایید یک هیستوگرام ترسیم کنیم.
یک هیستوگرام تعداد پیشنهادات و درخواست ها را با قیمت های خاص نشان می دهد، با این حال، حجم را مبهم می کند. این بدان معناست که یک نقطه داده با قیمت 3300 دلار با مقدار 0. 1 سکه عملاً به اندازه یک نقطه داده با قیمت 3301 دلار و حجم 100 سکه ارزش دارد.
کل کل همه میلهها در این طرح 200 خواهد بود، زیرا ما این تعداد نقطه داده داریم.
ما میتوانیم با ایجاد یک هیستوگرام وزندار، اطلاعات مربوط به کمیت را در تجزیه و تحلیل بگنجانیم، که فقط به تغییر جزئی کد نیاز دارد.
این طرح در حال حاضر داستان دقیق تری را در مورد عرضه و تقاضا بیان می کند. اما تصمیم گیری بر اساس آن سخت است. فرض کنید که می خواهید 50 ETH بخرید. با استفاده از هیستوگرام وزنی، نمی توانید بگویید که برای اطمینان از اینکه سفارش خرید شما توسط موتور منطبق پر می شود، باید با چه قیمتی پیشنهاد دهید. اینجاست که نمودار عمق وارد عمل می شود.
برای پاسخ به سوال بالا، به مجموع تجمعی مقدار با اطلاعات قیمت به ترتیب صعودی نیاز داریم. به طور مشابه، برای همان سوال فوق اما با تمرکز بر قیمت درخواستی، به اطلاعات مشابه به ترتیب نزولی نیاز داریم.
ما می توانیم اطلاعاتی را که در بالا توضیح داده شد با استفاده از تابع توزیع تجمعی تجربی (ECDF) بدست آوریم. seaborn با یک تابع مفید (sns. ecdfplot) ارائه می شود که می توانیم برای بدست آوردن آن نمودار از آن استفاده کنیم. برای بدست آوردن دقیقاً آنچه نیاز داریم، باید برخی از استدلال ها را مشخص کنیم:
- وزن = "کمیت" - برای اطمینان از وزن دهی ECDF به مقدار، همانطور که با هیستوگرام وزنی انجام دادیم،
- stat =”count” - به طوری که از شمارش ها استفاده می کنیم و نمودار به محدوده [0، 1] نرمال نمی شود،
- مکمل = True — زمانی که می خواهیم ترتیب جمع آوری جمع را معکوس کنیم. ما از این فقط در مورد مناقصه استفاده می کنیم.
با استفاده از این طرح می توان به سوالی که قبلا گفته شد پاسخ داد. برای اطمینان نسبتاً از اینکه سفارش خرید ما برای 50 ETH پر می شود، باید پیشنهاد دهیم~3392. 5 دلار در هر اتریوم.
غذای آماده
- نمودار عمق نوعی تجسم است که تقاضا و عرضه یک دارایی خاص را با قیمت های مختلف نشان می دهد.
- میتوانیم نمودارهای عمقی را بر اساس دادههای کتاب سفارش بسازیم - فهرستی از سفارشهای خرید و فروش با قیمتهای خاص.
- با نگاهی به نمودار عمق، میتوانیم قیمتی را که باید برای خرید/فروش مقدار معینی از دارایی هدفگذاری کنیم، تخمین بزنیم تا مطمئن شویم که موتور منطبق صرافی سفارش را برآورده میکند.
می توانید کد استفاده شده برای این مقاله را در GitHub من پیدا کنید. همچنین، از هرگونه بازخورد سازنده استقبال می شود. می توانید در توییتر یا در نظرات با من تماس بگیرید.
مقاله را دوست داشتید؟برای ادامه یادگیری با خواندن بدون محدودیت، عضو Medium شوید. اگر از این لینک برای عضویت استفاده کنید، بدون هیچ هزینه اضافی از من حمایت خواهید کرد. پیشاپیش متشکرم و شما را در اطراف می بینم!