درک و استفاده از API برای تجارت cryptocurrency می تواند دنیای امکانات را هنگام ورود و خروج از موقعیت ها باز کند. با برخی از دانش برنامه نویسی ساده ، می توانید برای خودکار سازی استراتژی های معاملاتی خود به یک پس زمینه مبادله وصل شوید. با کنار گذاشتن وب سایت ، می توانید مسیری بسیار سریعتر را به موتور تطبیق برای برنامه های با کارایی بالا طی کنید.
هدف از این سریال آشنایی شما با API REST Binance و آموزش تعامل با آن است. در پایان ، شما باید به توانایی خود در پرسیدن اطلاعات در مورد بازارها و موقعیت خود اطمینان داشته باشید و طیف وسیعی از انواع سفارشات مختلف را قرار دهید.
در این مقاله ، ما از پستچی برای برقراری ارتباط با مبادله استفاده خواهیم کرد. نگران نباشید - ما هیچ بودجه واقعی را در معرض خطر قرار نمی دهیم.
پیش نیازها
کلیدهای تست نت
ما قصد داریم از TestNet برای اهداف خود استفاده کنیم. این به ما کمک می کند و بودجه ای برای ما فراهم می کند تا در دنیای واقعی با آن بازی کنیم. آنها دقیقاً به همان روشی که سکه های واقعی و نشانه ها انجام می دهند ، عمل می کنند ، بنابراین هنگامی که با API راحت هستید ، می توانید از آن برای تجارت وجوه واقعی استفاده کنید.
- با حرکت به شبکه تست Spot شروع کنید.
- برای دسترسی ، باید با یک حساب GitHub وارد شوید. اگر قبلاً یکی از آنها را ایجاد کرده اید.
- روی تأیید اعتبار کلیک کنید و از طریق GitHub وارد شوید.
- تحت کلیدهای API ، به شما اطلاع داده می شود که کلیدهایی ثبت نشده اید. برای ایجاد یک جفت روی کلید HMAC_SHA256 کلیک کنید.
- در صفحه بعدی ، به کلیدها یک برچسب بدهید. آنها را هرچه می خواهید صدا کنید و به تولید ضربه بزنید.
- شما با دو کلید ارائه شده اید: کلید API و کلید مخفی. مهم است که اکنون این موارد را ضبط کنید. اگر این کار را نکنید ، باید روند ایجاد اصلی را دوباره شروع کنید. توصیه می کنیم آنها را در برنامه یادداشت های دستگاه خود برای کپی آسان بعداً ذخیره کنید.
توجه: برچسب زدن به کلیدهای شما کاری است که هنگام استفاده از مبادله واقعی به منظور مدیریت کلیدهای مختلف ، ارزش انجام آن را دارد. حساب شما می تواند چندین کلید با مجوزهای مختلف داشته باشد. اگر چندین ربات بازرگانی را اجرا می کنید ، استفاده از کلیدهای جداگانه با برچسب های توصیفی ، مدیریت مجوزها یا حذف کلیدهای جداگانه را بدون تغییر همه ربات های خود ، آسانتر می کند.
بارگیری و نصب پستچی
Postman یک بستر همکاری API است. این یک نقطه شروع عالی برای ما است - ما به مجموعه درخواست های binance دسترسی خواهیم داشت که بدون نیاز به نوشتن یک خط کد ، آزمایش خواهیم کرد.
این برنامه برای مک ، ویندوز و لینوکس در دسترس است. به صفحه بارگیری بروید و پرونده . zip را بارگیری کنید.
پس از اتمام این کار ، آن را در Explorer File خود قرار داده و آن را نصب کنید. برنامه را آتش بزنید ، و ما خوب هستیم که برویم! توجه داشته باشید که می توانید یک حساب کاربری برای ورود به سیستم ایجاد کنید ، اما لازم نیست. اگر می خواهید از آن مرحله پرش کنید ، فقط گزینه انجام این کار را در پایین پنجره انتخاب کنید.
ایجاد محیط
در این مرحله ، شما باید یک رابط کاربری داشته باشید که شبیه موارد زیر باشد.

ما می خواهیم ابتدا محیط خود را ایجاد کنیم. این فقط راهی است که ما می توانیم متغیرهایی را به مجموعه درخواست هایی که می خواهیم با آنها کار کنیم اضافه کنیم. برای انجام این کار ، ابتدا باید اطلاعاتی را از مخزن Binance Github بگیریم. به اینجا بروید و پرونده . zip را بارگیری کنید.

بارگیری نباید خیلی طولانی شود. آن را در File Explorer خود پیدا کنید و آن را از حالت فشرده خارج کنید. سپس ، ما می توانیم به پستچی برگردیم.

بر روی نماد دنده در گوشه سمت راست بالا (نشان داده شده در بالا) کلیک کنید. شما با یک محیط مدیریت قابل استقبال از شما استقبال می شود.
- واردات را انتخاب کنید و به پوشه ای که تازه استخراج کرده اید بروید (Binance-Postman-API).
- آن را وارد کنید ، سپس پوشه محیط را وارد کنید.
- اکنون دو پرونده را مشاهده خواهید کرد (یکی برای Maiet و دیگری برای TestNet). موردی که ما بعد از آن هستیم binance_com_spot_testnet_api. postman_environment. json است. اطمینان حاصل کنید که یک مورد صحیح را بدست آورده اید زیرا کلیدهای ما با دیگری کار نمی کنند.

تقریباً آنجاروی Binance Spot TestNet API کلیک کنید ، و متغیرهای زیر را مشاهده خواهید کرد. با چسباندن در کلیدهایی که قبلاً ذخیره کرده اید ، دو پارامتر ذکر شده به رنگ قرمز را ویرایش کنید. بر روی بروزرسانی کلیک کنید و از پنجره خارج شوید.

در این صفحه ، قسمت های Timestamp و Signature را خالی بگذارید. این دو مقدار به طور خودکار در هر درخواست ایجاد می شوند.
یک کار آخر وجود دارد. در سمت راست آیکون دنده ما برای تنظیم محیط قبل روی آن کلیک کردیم ، یک منوی کشویی را مشاهده خواهید کرد که در حال حاضر نمی گوید هیچ محیطی نیست. روی آن کلیک کنید و Binance Spot TestNet API را انتخاب کنید.
وارد کردن مجموعه
اکنون می خواهیم این مجموعه را وارد کنیم - این مجموعه گسترده ای از درخواست ها است که هنگام برقراری تماس ، وزنه برداری سنگین را برای ما انجام می دهد. برای بارگیری آن در محیط ما:
- روی واردات در گوشه بالا سمت چپ کلیک کنید.
- در پنجره ، در زیر برگه File ، Upload Files را انتخاب کنید.
- ما دوباره به دنبال پوشه Binance-Postman-API هستیم. آن را پیدا کرده و باز کنید.
- این بار ، مجموعه ها را در زیر مجموعه وارد کنید.
- دوباره دو پرونده در اینجا وجود دارد. یکی برای همکاری با API Futures است. اما ما با نقطه یکی کار می کنیم ، بنابراین باید پرونده binance_spot_api_v1. postman_collection. json را انتخاب کنید.
- اکنون باید یک صفحه تأیید را ببینید که واردات را در قالب مجموعه Postman مشخص می کند. واردات را انتخاب کنید.
در زیر برگه مجموعه ها در سمت چپ پنجره ، اکنون متوجه خواهید شد که ما یک پوشه با بیش از 100 درخواست داریم. تبریک می گویم! ما خوبیم که برویمدر بخش بعدی ، ما به انواع درخواست هایی که می توانیم ارائه دهیم ، خواهیم پرداخت.
درخواست
اگر پوشه ها را زیر برگه مجموعه ها گسترش دهید ، خواهید دید که ما یک دسته از درخواست های مختلف داریم که می توانیم بکنیم. از کدگذاری رنگ ، ممکن است توجه داشته باشید که سه نوع روش وجود دارد که می توانیم از آنها استفاده کنیم:
- GET: از روش GET برای بازیابی مطالب از سرور استفاده می شود. ما از این استفاده خواهیم کرد تا اطلاعات مربوط به مانده حساب ، قیمت دارایی و غیره را پیدا کنیم.
- پست: ما به طور کلی از روش پست برای ایجاد اطلاعات در سرور استفاده خواهیم کرد. این مورد برای مواردی مانند قرار دادن سفارشات ، درخواست برداشت و غیره لازم است.
- حذف: روش حذف درخواست سرور برای حذف اطلاعات است. برای لغو سفارشات مفید خواهد بود.
لیست نمادها و قوانین تجارت را پیدا کنید
زمان برای اولین درخواست ما! ما می خواهیم نمادهایی را که می توانیم در بورس و قوانین تجارت تجارت کنیم ، بدست آوریم:
دریافت /ExchangeInfo
این یکی از پارامترهای اضافی را نمی گیرد - می توانید آن را در نوار آدرس خود کپی کرده و چسباند ، و پاسخی دریافت می کنید. اما برای درخواست هایی که در آن چندین پارامتر را در بر می گیریم ، Postman دیدن و اصلاح آنها را آسان می کند.
To load up this request, select Market>اطلاعات تبادلبرگه ای مانند موارد زیر ظاهر می شود:

ما نیازی به انجام کار دیگری در اینجا نداریم ، بنابراین پیش بروید و ارسال کنید. سپس پاسخی دریافت خواهید کرد:

در بالاترین بخش برجسته ، اطلاعات مهمی را مشاهده خواهید کرد:
- وضعیت پاسخ (200 به این معنی است که ما موفق بوده ایم ، 400-499 به این معنی است که ما به یک مسئله رسیدیم)
- زمان لازم برای دریافت پاسخ (کمتر از یک ثانیه)
- اندازه پاسخ (~22 کیلوبایت).
در جعبه دوم بخش عمده ای از پاسخ است. آن را بسیار چاپ کرده است به طوری که کمی در چشم ها راحت تر است. این شامل اطلاعاتی در مورد خود مبادله و همچنین جفت هایی است که می توانید تجارت کنید و حداقل/حداکثر آنها را انجام دهید.
به نظر می رسد اطلاعات زیادی است ، اما این قالب کار با برنامه نویسی را بسیار آسان می کند. هنگام نوشتن اسکریپت ها برای تعامل با آن ، به راحتی می توانید خصوصیات خاصی از عناصر خاص را از پاسخ انتخاب کنید.
مانده حساب را بررسی کنید
بیایید بررسی کنیم که چه دارایی هایی داریم و چه مقدار از هر کدام:
دریافت /حساب
This one can be found under Trade>اطلاعات حساب . روی آن کلیک کنید ، و یک طرح مشابه با مورد قبلی مشاهده خواهید کرد. با این حال ، شما همچنین توجه خواهید کرد که ما دو متغیر جدید داریم: Timestamp و Signature. امضای یک اقدام امنیتی است. از آنجا که ما اکنون می خواهیم اطلاعات حساس را بخواهیم ، ثابت می کند که ما دارنده حساب هستیم.
Timestamp هنگام ارسال درخواست به سرور می گوید. از آنجا که شبکه ها می توانند غیرقابل اعتماد باشند یا در صورت خرابی روبرو باشند ، سرور ممکن است درخواست ما را خیلی دیرتر از آنچه در نظر گرفته شده است دریافت کند. اگر زمان زیادی گذشت ، درخواست را رد می کند. می توانید مشخص کنید که چه مدت می خواهید با پارامتر recvwindow صبر کنید ، که پیش فرض 5000 میلی ثانیه است.
Postman نسل هر دو زمینه را برای ما کنترل می کند. روی ارسال کلیک کنید ، و پاسخی دریافت خواهید کرد. تحت تعادل ، شما باید شش دارایی را ببینید - BNB ، BTC ، BUSD ، ETH ، LTC و TRX. تعادل به صورت رایگان و قفل تقسیم می شود. ما هنوز قفل نشده ایم ، بنابراین دارایی های شما باید رایگان باشد.
ثروت تازه (غیر موجود) خود را تبریک می گویم!
چگونه قیمت فعلی را برای یک نماد دریافت کنیم
ما می توانیم به دنبال دریافت قیمت فعلی یک دارایی به روش های مختلف باشیم. شاید ساده ترین مورد با درخواست زیر باشد:
دریافت/api/v3/ticker/24 ساعت
As you might guess, this will give us information about asset prices from the past twenty-four hours. Find it in Market>آمار تغییر قیمت 24 ساعت. جفت پیش فرض که از آن استقبال می کنیم زیرا متغیر نماد BTCUSDT است.
می توانید این موضوع را بلافاصله ارسال کنید تا اطلاعات مربوط به قیمت را مشاهده کنید. همچنین می توانید نماد (به Bnbbusd ، LTCUSDT و غیره) را تغییر دهید ، یا می توانید متغیر را برای بازگشت داده ها برای 40 جفت بررسی کنید.
We also have a simpler call ( Market>قیمت نماد قیمت) که قیمت فعلی را که یک دارایی در آن معامله می کند ، باز می گرداند:
دریافت/api/v3/قیمت
مانند گذشته ، می توانید متغیر نماد را تغییر داده یا آن را به طور کامل حذف کنید و آخرین قیمت را برای همه نمادها دریافت کنید.
عمق کتاب سفارش فعلی را بررسی کنید
عمق کتاب سفارش (همچنین به آن عمق بازار یا DOM گفته می شود) می تواند چیزهای زیادی در مورد بازار به ما بگوید. ما می خواهیم یک تماس برقرار کنیم که اطلاعات مفیدی را بازگرداند:
دریافت API/V3/عمق
When we send this with the default values (Market>کتاب سفارش) ، ما پاسخی را ارسال می کنیم که در مورد پیشنهادات به ما می گوید و از BTCUSDT درخواست می کند. سرور TestNet به اندازه واقعی داده ها به دست نمی آورد ، بنابراین در زیر تصویری از آنچه انتظار دارید در یک محیط واقعی مشاهده کنید آورده شده است:

در بخش برجسته شده در بالا ، اولین پیشنهاد را می توانیم مشاهده کنیم. از آنجا که ما به دنبال کتاب برای BTCUSDT هستیم ، شماره بالا قیمتی است که شخصی مایل به پرداخت BTC شما است. در زیر مبلغی که مایل به خرید هستند. بنابراین ، آنچه این می گوید این است که این دستور از 0. 999 BTC با نرخ 9704. 65 USDT در هر BTC درخواست می کند. اگر ما به پایین حرکت می کردیم ، شاهد کاهش قیمت پیشنهاد - نماینده خریدارانی که کمتر پرداخت می کنند.
اگر به دنبال انفجار برای جنجال خود هستید ، پیشنهاد برتر به طور طبیعی جذاب ترین خواهد بود. گفته می شود ، اگر می خواهید به فروش فروش ، مثلاً 3 BTC ، فقط بتوانید 0. 999 BTC را با بهترین قیمت بفروشید. تا زمانی که کل سفارش شما پر شود ، باید پیشنهادات بعدی (ارزان تر) را تهیه کنید.

پیمایش را ادامه دهید ، و سؤال ها را خواهید دید. آنها از لحاظ عملکردی شبیه به پیشنهادات هستند ، مگر اینکه سفارشات فروش BTC را برای USDT نشان دهند.
یک سفارش آزمون قرار دهید
اکنون می خواهیم یک دستور آزمون ارسال کنیم.
ارسال API/V3/سفارش/آزمون
Even though we’re just using testnet funds, this request won’t actually place an order. It can come in useful for testing orders before actually submitting them. Find it under Trade>سفارش جدید (تجارت) را آزمایش کنید.

می بینید که ما پارامترهای بیشتری داریم. بیایید از طریق موارد بررسی شده قدم بزنیم:
- نماد - ما قبلاً با این یکی روبرو شده ایم. این زوجی است که می خواهید تجارت کنید.
- طرف - در اینجا ، شما تصریح خواهید کرد که آیا می خواهید خریداری کنید یا بفروشید. با استفاده از جفت BTCUSDT ، خرید نشان می دهد که می خواهید BTC را برای USDT خریداری کنید ، در حالی که فروش BTC را برای USDT می فروشد.
- تایپ کنید - نوع نظمی که می خواهید ارسال کنید. مقادیر ممکن (در اینجا مفصل):
- حد
- بازار
- توقف_س
- Stop_loss_limit
- بهره بردن
- take_profit_limit
- سازنده مجازات
- GTC (خوب تا لغو) - شاید محبوب ترین راه اندازی ، GTC اطمینان حاصل کند که سفارش شما تا زمان پر شدن معتبر است ، یا تا زمانی که آن را لغو نکنید.
- FOK (پر یا کشتن) - FOK به مبادله دستور می دهد تا یکباره سفارش را اجرا کند. اگر مبادله نتواند این کار را انجام دهد ، سفارش بلافاصله لغو می شود.
- IOC (فوری یا لغو) - یا تمام یا بخشی از سفارش باید بلافاصله اجرا شود ، یا لغو می شود. بر خلاف FOK ، در صورت پر کردن بخشی از آنها ، سفارشات لغو نمی شوند.
باشه! بیایید اکنون یک سفارش آزمایش ایجاد کنیم. ما می خواهیم با مقادیر تولید شده به صورت خودکار پیش برویم: یک سفارش محدود برای فروش 0. 1 BTC با USDT با 9000 دلار. ارسال ارسالاگر این موفقیت آمیز بود ، ما به سادگی دریافت خواهیم کرد<>به عنوان یک پاسخ
یک سفارش واقعی قرار دهید
زمان برای قرار دادن یک سفارش جعلی واقعی.
ارسال/API/v3/سفارش
Navigate to Trade>ترتیب جدید . شما تاکنون با سفارشات آزمایشی آشنا هستید ، بنابراین پارامترهای اینجا جای تعجب نخواهد داشت. بیایید تمام ارزش ها را همانطور که هست ، رها کنیم ، اما از آنجا که ما Permabulls هستیم ، قیمتی را که می فروشیم به 40،000 دلار تغییر خواهیم داد. ارزش قیمت را برای منعکس کردن این موضوع تغییر دهید. سپس ، ارسال کنید.
پاسخ شما در صورت موفقیت ، جزئیات مربوط به سفارش را برمی گرداند.
وضعیت سفارش باز را بررسی کنید
ما تأیید کردیم که سفارش در بخش قبلی قرار داده شده است ، اما اگر بخواهیم بعداً دوباره آن را بررسی کنیم ، چه می شود؟ما چند درخواست در اختیار ما داریم.
دریافت/API/V3/OpenOrders
You’ll find this in Trade>سفارشات باز فعلی (user_data). BTCUSDT به طور پیش فرض انتخاب می شود. اگر به Send ضربه بزنید ، تمام سفارشات Open BTCUSDT خود را دریافت خواهید کرد (تاکنون ، فقط باید کسی را که قبلاً تنظیم کرده ایم ببینید). شما می توانید نمادی را مشخص نکنید که به جای آن تمام سفارشات باز شما را برمی گرداند.
دریافت/api/v3/allorders
Trade>همه سفارشات (user_data) به شما مروری بر همه سفارشات می دهد - نه فقط موارد باز. در اینجا ، شما باید نمادی ارائه دهید. OrderID ، StartTime ، Endtime و Limit پارامترهای اختیاری هستند که می توانند به شما در اصلاح جستجوی خود کمک کنند. ما آنها را در اینجا خواهیم گذاشت ، بنابراین آنها را انتخاب کنید. ارسال را ارسال کنید ، و همان پاسخ قبلی را مشاهده خواهید کرد. اگر سفارشات بسته یا لغو شده داشتید ، آنها را نیز در اینجا می بینید.
در آخر ، ما می توانیم سفارشات خاص را با:
دریافت/api/v3/سفارش
Get this under Trade>سفارش پرس و جو (user_data). شما باید OrderID یا OrigclientOrderID را ارائه دهید (برچسب اختیاری "NewClientOrderId" که می توانید به سفارشات اضافه کنید). Orderid را بررسی کنید. برای OrigclientOrderid ، ما می خواهیم برچسب پیش فرض را از قبل ارائه دهیم - "MY_ORDER_ID_1". زمینه را پر کنید و برای دریافت پاسخ ، ارسال را بزنید.
لغو سفارش
بعد از مدتی ، ممکن است تصمیم بگیریم که هدف 40،000 دلاری کمی بیش از حد خوش بین است ، بنابراین می خواهیم آن را لغو کنیم. در این حالت ، ما استفاده می کنیم:
حذف/API/v3/سفارش
Under Trade>لغو سفارش درخواستی است که به ما امکان می دهد سفارشات را برای لغو اختصاص دهیم. OrderID و NewClientOrderid را برداشت کنید و "MY_ORDER_ID_1" را به عنوان مقدار برای OrigclientOrderid منتقل کنید.
وقتی این درخواست را ارسال می کنید ، سفارش بازگردانده می شود. اگر به "وضعیت" بروید ، خواهید دید که واقعاً لغو شده است. برای تأیید این موضوع ، دوباره از نقطه انتهایی GET/API/V3/OpenOrders استفاده کنید (لیست خالی به شما می دهد) یا GET/API/V3/Order را با OrigclientOrderId انجام دهید.
سفارش را که فوراً پر می شود قرار دهید
سفارش قبلی ما پر نشده بود زیرا این یک سفارش محدود بود که تنها زمانی که قیمت BTC به 40،000 دلار رسید ، تحریک می شود. با سفارش بازار ، ما اساساً می گوییم "خرید و فروش با هر قیمتی که دارایی در حال حاضر در آن معامله می کند."این فوراً پر می شود.
For that, let’s head back to Trade>ترتیب جدید . ما می خواهیم نوع پاسخ (NewOrderResptype) را نشان دهیم ، که پارامتری است که می توانیم بسته به پاسخی که می خواهیم از سرور بدست آوریم ، ترفند کنیم. در اینجا سه گزینه وجود دارد: ACK ، نتیجه یا کامل - می توانید نمونه هایی از هر پاسخ را در اینجا مشاهده کنید. ما می خواهیم با ACK برویم ، که تصدیق ساده ای را برای دریافت سفارش به ما می دهد.
در زیر ، می بینید که ما قصد داریم سفارش بازار را برای فروش BNB برای BUSD با قیمت فعلی بازار ارسال کنیم.

توجه داشته باشید که پاسخ حداقل اطلاعات را به ما می دهد:

می توانید تأیید کنید که سفارش با نقطه پایانی/API/V3/Allorders پر شده است.
بررسی معاملات خود
در آخر بیایید به نقطه پایانی برای بررسی معاملات خود نگاه کنیم:
دریافت/api/v3/mytrades
This is located under Trade>لیست تجارت حساب (user_data). این امکان را به شما می دهد تا هر تجارت را برای یک نماد خاص بررسی کنید. اگر می خواهید تمام معاملات خود را برای نماد پیش فرض (BTCUSDT) ببینید ، به سادگی شروع به کار ، EndTime و From ID کنید. این پاسخ به 500 معاملات باز می گردد - اگر می خواهید اطلاعات بیشتری ببینید ، به سادگی حد مجاز را تغییر دهید.
اشکال زدایی با پستچی
در Postman ، می توان درخواست و پاسخ خام HTTP را بیشتر فاش کرد.

این منو کنسول Postman را باز می کند ، که جزئیات هر درخواست را چاپ می کند.

افکار پایانی
هدف از این راهنما این بود که شما را به آرامی با API Binance بدون نوشتن یک خط کد واحد آشنا کنیم. اگر دنبال کرده اید ، اکنون باید ایده ای در مورد چگونگی درخواست و ارسال اطلاعات داشته باشید.
در اقساط بعدی در این سری ، ما برخی از مفاهیم اصلی برنامه نویسی را معرفی خواهیم کرد که به ما امکان می دهد خرید و فروش ارزهای رمزنگاری شده و سایر دارایی های دیجیتال را خودکار کنیم.
در ضمن سوالات؟به انجمن جامعه توسعه دهندگان در حال رشد ما بروید ، یا به مستندات نگاهی بیندازید.
دوره ی فارکس...
ما را در سایت دوره ی فارکس دنبال می کنید
برچسب :
نویسنده : پرویز حبّی
بازدید : <-PostHit->
تاريخ : چهارشنبه
18 مرداد
1402 ساعت: 13:08