Nội dung
Giới thiệu
Mục đích của loạt bài này là giới thiệu cho bạn về API REST của Binance và hướng dẫn bạn cách tương tác với nó. Cuối cùng, bạn có thể tự tin vào khả năng truy vấn thông tin về thị trường và vị thế của mình và đặt hàng loạt các loại lệnh khác nhau.
Điều kiện tiên quyết
Các khóa testnet
Chúng ta sẽ sử dụng testnet với mục đích của mình. Việc này sẽ cung cấp cho chúng ta một số tiền không có giá trị trong thế giới thực để thử nghiệm. Số tiền này hoạt động theo cách giống hệt như tiền mã hóa và token thực. Vì vậy khi bạn sẽ dễ làm quen với API và có thể bắt đầu sử dụng nó để giao dịch tiền thật.
- Chuyển đến Spot Test Network .
- Để có quyền truy cập, bạn cần đăng nhập bằng tài khoản GitHub. Tạo một cái nếu bạn chưa có.
- Nhấp vào Authenticate và đăng nhập qua GitHub.
- Trong API Keys, bạn sẽ được thông báo rằng mình chưa có các khóa được đăng ký. Nhấp vào Generate HMAC_SHA256 Key để tạo một cặp.
- Trên màn hình tiếp theo, hãy đặt nhãn cho các khóa. Gọi bất cứ điều gì bạn muốn và nhấn Generate.
- Bạn sẽ được cung cấp hai khóa: API Key và Secret Key . Điều quan trọng là bạn phải ghi lại những điều này ngay bây giờ. Bạn sẽ cần bắt đầu lại quá trình tạo khóa nếu không làm như vậy. Chúng tôi khuyên bạn nên lưu trữ chúng trên ứng dụng ghi chú trên máy tính để dễ dàng sao chép sau này.
Tải xuống và cài đặt Postman
Postman là một nền tảng Cộng tác API. Đây là một điểm rất thuận lợi – bởi chúng ta có quyền truy cập vào bộ sưu tập các yêu cầu của Binance mà không cần viết một dòng code nào.
Sau khi hoàn tất, hãy đặt nó trong trình khám phá tệp của bạn và cài đặt nó. Kích hoạt ứng dụng và chúng ta sẽ tiếp tục! Lưu ý, bạn có thể tạo một tài khoản để đăng nhập, nhưng điều này không cần thiết. Nếu bạn muốn bỏ qua bước này, chỉ cần chọn tùy chọn đó ở dưới cửa sổ.
Tạo môi trường
Ở giai đoạn này, bạn sẽ có một giao diện giống như sau.
Quá trình tải xuống sẽ không mất nhiều thời gian. Tìm tệp và giải nén nó. Sau đó, chúng ta có thể quay trở lại Postman.
- Chọn Import và điều hướng đến thư mục bạn vừa giải nén (binance-postman-api).
- Vào nó, sau đó vào thư mục môi trường .
- Bây giờ bạn sẽ thấy hai tệp (một cho mainnet và một cho testnet). Cái mà chúng ta đang theo đuổi là binance_com_spot_testnet_api.postman_enosystem.json. Hãy đảm bảo rằng bạn đã chọn đúng vì các khóa của chúng ta sẽ không hoạt động với các khóa khác.
Trên màn hình này, hãy để trống các trường timestamp và signature. Hai giá trị này sẽ được tạo tự động theo mỗi yêu cầu.
Nhập bộ sưu tập
Bây giờ, chúng ta sẽ nhập bộ sưu tập – một loạt các yêu cầu thực hiện công việc khi chúng ta thực hiện gọi các phương thức. Để tải nó vào môi trường chúng ta đã thiết lập, hãy làm như sau:
- Nhấp vào Import ở góc trên cùng bên trái.
- Trong cửa sổ bật lên, bên dưới tab File, hãy chọn Upload Files .
- Tìm lại thư mục binance-postman-api. Xác định vị trí và mở nó.
- Lần này, hãy nhập collections trong thư mục con.
- Có hai tệp ở đây một lần nữa. Một tệp là để làm việc với API tương lai. Nhưng chúng ta đang làm việc với tệp spot, vì vậy bạn sẽ cần chọn tệp binance_spot_api_v1.postman_collection.json.
- Bây giờ bạn sẽ thấy màn hình xác nhận xác định việc nhập đang ở định dạng Postman Collection. Chọn Import.
Trong tab Collections ở bên trái cửa sổ, bạn sẽ thấy chúng ta có một thư mục với hơn 100 yêu cầu. Xin chúc mừng! Chúng ta có thể đi tiếp. Trong phần tiếp theo, chúng ta sẽ xem xét các loại yêu cầu mà chúng ta có thể thực hiện.
Tạo yêu cầu
Nếu bạn mở rộng các thư mục trong tab Collections , bạn sẽ thấy có một loạt các yêu cầu khác nhau mà chúng ta có thể thực hiện. Từ những code-màu, bạn có thể lưu ý rằng có ba loại phương thức chúng ta có thể sử dụng:
- GET: Phương thức GET được sử dụng để truy xuất nội dung từ máy chủ. Chúng ta sẽ sử dụng thông tin này để tìm hiểu thông tin về số dư tài khoản của bạn, giá tài sản, v.v.
- POST : Chúng tôi thường sử dụng phương thức POST để tạo thông tin trên máy chủ. Điều này là cần thiết cho những việc như đặt lệnh, yêu cầu rút tiền, v.v.
- DELETE: Phương thức DELETE là một yêu cầu máy chủ xóa thông tin. Nó sẽ hữu ích cho việc hủy lệnh.
Tìm danh sách theo ký hiệu và các quy tắc giao dịch
Đã đến lúc thực hiện yêu cầu đầu tiên! Chúng ta sẽ truy xuất các ký hiệu - mã giao dịch trên sàn và các quy tắc giao dịch:
GET / exchangeInfo
Phương thức này không có bất kỳ thông số bổ sung nào – bạn có thể sao chép và dán thông số đó vào thanh địa chỉ của mình và nhận được phản hồi. Nhưng đối với các yêu cầu bao gồm một số tham số, Postman sẽ giúp bạn dễ dàng xem và sửa đổi chúng.
Trong phần được đánh dấu trên cùng, bạn sẽ thấy một số thông tin quan trọng:
- trạng thái của phản hồi ( 200 có nghĩa là chúng ta đã thành công, 400-499 có nghĩa là chúng ta đã gặp sự cố)
thời gian cần thiết để nhận được phản hồi (ít hơn một giây)
kích thước của phản hồi (~ 22KB).
Phần lớn trong hộp thứ hai là phản hồi. Nó được định dạng khá đẹp nên dễ nhìn hơn một chút. Nó chứa thông tin về chính sàn giao dịch, cũng như các cặp bạn có thể giao dịch và số tiền tối thiểu / tối đa của chúng.
Dù trông có vẻ rất nhiều thông tin để theo dõi, nhưng với định dạng, chúng sẽ giúp bạn làm việc theo chương trình một cách rất dễ dàng. Khi viết script để tương tác với nó, bạn sẽ dễ dàng chọn ra các thuộc tính cụ thể của các phần cụ thể từ phản hồi.
Kiểm tra số dư tài khoản
Hãy kiểm tra xem chúng ta có những tài sản nào và bao nhiêu của mỗi loại:
GET /account
Xin chúc mừng về sự giàu có (trên thế giới ảo) của bạn!
Cách lấy giá hiện tại từ một ký hiệu
Chúng ta có thể tìm giá hiện tại của một tài sản theo nhiều cách khác nhau. Các đơn giản nhất là gửi yêu cầu như sau:
GET / api / v3 / ticker / 24hr
GET / api / v3 / price
Như với lần trước, bạn có thể thay đổi hoặc loại bỏ hoàn toàn biến ký hiệu và nhận giá mới nhất cho tất cả các mã.
Kiểm tra độ sâu của sổ lệnh hiện tại
Độ sâu của sổ lệnh (còn được gọi là độ sâu của thị trường, hoặc DOM) có thể cho chúng ta biết rất nhiều điều về thị trường. Chúng ta sẽ thực hiện một lần gọi để trả lại một số thông tin hữu ích:
GET api / v3 / depth
Khi chúng ta gửi thông tin này với các giá trị mặc định (Market > Order Book), chúng tôi sẽ gửi lại phản hồi cho bạn biết về giá thầu và yêu cầu BTCUSDT. Máy chủ testnet sẽ không mang lại nhiều dữ liệu như máy chủ thực tế, vì vậy dưới đây là ảnh chụp màn hình những gì bạn sẽ thấy trong môi trường thực:
Trong phần được đánh dấu ở trên, chúng ta sẽ thấy giá bid đầu tiên. Vì chúng ta đang xem sổ lệnh về BTCUSDT, con số trên là giá mà ai đó sẵn sàng trả cho BTC của bạn. Dưới đây là số lượng họ sẵn sàng mua. Do đó, điều này nói lên rằng lệnh này đang yêu cầu 0,999 BTC với tỷ lệ 9704,65 USDT cho mỗi BTC. Nếu tiếp tục cuộn xuống, chúng ta sẽ thấy giá ưu đãi giảm – thể hiện người mua sẽ trả ít hơn.
Ưu đãi hàng đầu đương nhiên sẽ là ưu đãi hấp dẫn nhất, nếu bạn đang tìm kiếm sự thay đổi đáng đồng tiền bát gạo. Điều đó nói rằng, nếu bạn đang cố gắng bán 3 BTC trên thị trường, bạn có thể chỉ bán được 0,999 BTC với mức giá tốt nhất. Bạn sẽ cần nhận các lời đề nghị tiếp theo (rẻ hơn) cho đến khi toàn bộ lệnh mua của bạn được lấp đầy.
Đặt lệnh của bạn
Bây giờ chúng ta sẽ đăng một lệnh thử nghiệm.
POST api / v3 / order / test
Bạn có thể thấy chúng ta có nhiều tham số khác liên quan. Hãy xem qua những cái này:
- symbol - ký hiệu. Hay cụ thể là cặp bạn muốn giao dịch.
- side - ở đây, bạn sẽ quy định xem mình muốn MUA hay BÁN. Với cặp BTCUSDT, MUA cho biết rằng bạn muốn mua BTC bằng USDT, trong khi bán sẽ bán BTC lấy USDT.
- type - loại lệnh mà bạn muốn gửi lên hệ thống. Các giá trị có thể có (chi tiết tại đây):
- LIMIT
- MARKET
- STOP_LOSS
- STOP_LOSS_LIMIT
- TAKE_PROFIT
- TAKE_PROFIT_LIMIT
- LIMIT_MAKER
- timeInForce- tham số này thể hiện cách bạn muốn lệnh thực thi:
- GTC (tốt cho đến khi bị hủy) - có lẽ là thiết lập phổ biến nhất, GTC sẽ đảm bảo rằng lệnh bạn đặt có giá trị cho đến khi chúng được thực hiện hoặc cho đến khi bạn hủy lệnh.
- FOK (lấp đầy hoặc hủy) - FOK hướng dẫn sàn giao dịch thực hiện tất cả các lệnh cùng một lúc. Nếu sàn giao dịch không thể làm như vậy, lệnh sẽ bị hủy ngay lập tức.
- IOC (ngay lập tức hoặc hủy bỏ) - tất cả hoặc một phần của lệnh phải được thực hiện ngay lập tức, hoặc nó sẽ bị hủy. Không giống như FOK, lệnh không bị hủy nếu chúng có thể được thực thi một phần.
- quantity - đơn giản là số lượng tài sản bạn muốn mua hoặc bán.
- price - giá mà bạn muốn bán. Đối với cặp BTCUSDT, điều này được thể hiện bằng USDT.
- newClientOrderId - mã định danh cho lệnh. Đây không phải là trường bắt buộc, nhưng bạn có thể đặt nó thành một số nhận dạng để dễ dàng truy vấn sau này. Nếu không, nó sẽ được tạo ngẫu nhiên bởi sàn giao dịch.
Đặt một lệnh thật
Đã đến lúc đặt một lệnh giả nhưng thật .
POST /api/v3/order
Nếu thành công, bạn sẽ được phản hồi bằng một loạt thông tin chi tiết về lệnh vừa đặt.
Kiểm tra trạng thái của một lệnh đang mở
Chúng ta đã được xác nhận rằng lệnh đã được đặt ở phần trước, nhưng nếu chúng ta muốn kiểm tra lại thì sao? Ta có một số truy vấn có thể sử dụng.
GET / api / v3 / openOrders
GET /api/v3/allOrders
Cuối cùng, chúng ta có thể truy vấn các lệnh cụ thể với:
GET /api/v3/order
Hủy bỏ một lệnh
Sau một thời gian, chúng ta có thể quyết định rằng mục tiêu 40.000 USD hơi quá lạc quan, vì vậy chúng ta muốn hủy bỏ nó. Trong trường hợp đó, chúng ta sẽ sử dụng:
DELETE /api/v3/order
Đặt một lệnh sẽ được thực thi ngay lập tức
Dưới đây, bạn có thể thấy rằng chúng ta sắp gửi lệnh thị trường bán BNB lấy BUSD theo giá thị trường hiện tại.
Lưu ý rằng phản hồi cung cấp cho chúng ta thông tin tối thiểu:
Kiểm tra giao dịch của bạn
Cuối cùng, hãy xem xét bước cuối cùng để kiểm tra các giao dịch của bạn:
GET /api/v3/order
Debug với Postman
Trong Postman, có thể lấy yêu cầu HTTP raw và phản hồi.
Menu này sẽ mở ra bảng điều khiển Postman. Bảng điều khiển này sẽ in ra chi tiết từng yêu cầu.
Tổng kết
Mục đích của hướng dẫn này là cơ bản giới thiệu cho bạn về Binance API và bạn không cần viết một dòng code nào. Nếu bạn đã đọc hết bài viết, bạn đã có ý tưởng về cách chúng tôi có thể yêu cầu và gửi thông tin.