Isi

  • Perkenalan

  • Prasyarat

    • Uji kunci jaringan

    • Unduh dan instal Tukang Pos

  • Menciptakan lingkungan

  • Impor koleksi

  • Eksekusi permintaan

  • Pikiran terakhir


Perkenalan

Memahami dan menggunakan API untuk perdagangan mata uang kripto dapat membuka banyak kemungkinan dalam hal masuk dan keluar posisi. Dengan beberapa pengetahuan pemrograman dasar, Anda dapat terhubung ke backend bursa untuk mengotomatiskan strategi perdagangan Anda. Dengan melewati situs web, Anda dapat mengakses mesin pencocokan untuk aplikasi berkinerja tinggi dengan lebih cepat.

Tujuan dari seri ini adalah untuk memperkenalkan Anda pada Binance REST API dan mengajari Anda cara berinteraksi dengannya. Pada akhirnya, Anda harus yakin dengan kemampuan Anda untuk menanyakan pasar dan posisi Anda, dan menempatkan sejumlah jenis pesanan yang berbeda.

Pada artikel ini, kami akan menggunakan Tukang Pos untuk berkomunikasi dengan bursa. Jangan khawatir - kami tidak akan mempertaruhkan uang sungguhan.


Prasyarat

Uji kunci jaringan

Kami akan menggunakan testnet untuk tujuan kami. Ini akan memberi kita sejumlah dana yang tidak memiliki nilai nyata dan dapat kita gunakan untuk bereksperimen. Mereka bekerja persis seperti koin dan token sungguhan, jadi setelah Anda terbiasa dengan API ini, Anda dapat mulai menggunakannya untuk memperdagangkan uang sungguhan.


  1. Mulailah dengan membuka Jaringan Spot Test.

  2. Anda harus masuk dengan akun GitHub untuk mendapatkan akses. Buatlah jika Anda belum melakukannya.

  3. Klik "Otentikasi" dan masuk dengan GitHub.

  4. Di bagian "Kunci API", Anda akan melihat bahwa Anda tidak memiliki kunci terdaftar. Klik Hasilkan Kunci HMAC_SHA256 untuk menghasilkan pasangan.

  5. Di layar berikutnya, beri label pada tombol. Beri nama sesuai keinginan Anda dan klik "Hasilkan".

  6. Anda akan disajikan dengan dua kunci: Kunci API dan Kunci Rahasia. Penting untuk menuliskannya sekarang. Jika tidak, Anda harus memulai proses pembuatan kunci lagi. Kami merekomendasikan untuk menyimpannya dalam aplikasi pencatatan di komputer Anda agar mudah disalin nanti.

Catatan: Memberi label pada kunci Anda adalah sesuatu yang harus Anda lakukan saat menggunakan pertukaran langsung untuk mengelola kunci yang berbeda. Akun Anda dapat memiliki banyak kunci dengan izin berbeda. Jika Anda menggunakan beberapa bot perdagangan, menggunakan kunci individual dengan label deskriptif akan mempermudah pengelolaan izin atau menghapus kunci individual tanpa mengubah semua bot Anda.


Unduh dan instal Tukang Pos

Tukang pos adalah platform untuk kolaborasi API. Ini adalah titik awal yang sempurna bagi kami – kami akan memiliki akses ke kumpulan kueri Binance untuk diuji tanpa menulis satu baris kode pun.

Program ini tersedia untuk Mac, Windows dan Linux. Buka halaman Unduhan dan unduh file .zip.

Setelah itu, temukan di explorer dan instal. Buka aplikasi untuk memulai. Harap dicatat bahwa Anda dapat membuat akun untuk masuk, tetapi ini tidak diperlukan. Jika Anda ingin melewati langkah ini, cukup pilih opsi yang sesuai di bagian bawah jendela.


Menciptakan lingkungan

Pada titik ini Anda harus memiliki antarmuka yang mirip dengan berikut ini.



Pertama, Anda perlu menciptakan lingkungan. Ini hanyalah cara untuk menambahkan variabel ke kumpulan kueri yang akan kita kerjakan. Untuk melakukan ini, pertama-tama kita perlu mendapatkan beberapa informasi dari repositori Binance GitHub. Buka di sini dan unduh file .zip.



Pengunduhannya tidak akan memakan waktu lama. Temukan di file explorer Anda dan unzip. Lalu, kita bisa kembali ke Tukang Pos.



Klik ikon roda gigi di pojok kanan atas (seperti gambar di atas). Anda akan melihat jendela pop-up "Kelola Lingkungan".

  1. Pilih "Impor" dan navigasikan ke folder yang baru dibuka ritsletingnya (binance-postman-api).

  2. Kemudian masuk ke folder lingkungan.

  3. Anda sekarang akan melihat dua file (satu untuk jaringan utama, satu untuk jaringan pengujian). Kami mencari binance_com_spot_testnet_api.postman_environment.json. Pastikan Anda memilih yang benar karena kunci kami tidak berfungsi dengan orang lain.



Hampir selesai. Klik pada "Binance Spot Testnet API" dan Anda akan melihat variabel di bawah. Edit dua parameter yang disorot dengan warna merah dengan memasukkan kunci yang Anda simpan sebelumnya. Klik "Perbarui" dan keluar dari jendela pop-up.



Di layar ini, biarkan kolom "stempel waktu" dan "tanda tangan" kosong. Kedua nilai ini akan dihasilkan secara otomatis pada setiap permintaan.

Masih ada sesuatu yang harus dilakukan. Di sebelah kanan ikon roda gigi yang kita klik untuk mengatur lingkungan sebelumnya, Anda akan melihat menu drop-down yang saat ini bertuliskan "Tanpa Lingkungan". Klik dan pilih "Binance Spot Testnet API".


Impor koleksi

Sekarang kita akan mengimpor koleksi yang merupakan kumpulan besar kueri yang melakukan tugas berat bagi kita. Untuk mengunggahnya ke lingkungan kami, ikuti langkah-langkah berikut:

  1. Klik "Impor" di sudut kiri atas.

  2. Di jendela pop-up, pada tab "File", pilih "Upload Files".

  3. Kita cari lagi folder binance-postman-api. Temukan dan buka.

  4. Kali ini masukkan "koleksi" di subdirektori.

  5. Ini dua file lagi. Satu untuk bekerja dengan API berjangka. Namun kami sedang mengerjakan spot, jadi Anda perlu memilih file binance_spot_api_v1.postman_collection.json.

  6. Anda sekarang akan melihat layar konfirmasi yang mengidentifikasi impor sebagai format koleksi Tukang Pos. Pilih "Impor".

Di tab "Koleksi" di sisi kiri jendela, Anda sekarang akan melihat bahwa kami memiliki folder dengan lebih dari 100 permintaan. Selamat! Baiklah. Di bagian selanjutnya, kita akan melihat permintaan apa yang dapat kita kirim.


Eksekusi permintaan

Jika Anda memperluas folder di bawah tab Koleksi, Anda akan melihat bahwa kami memiliki banyak sekali pertanyaan berbeda yang dapat kami buat. Dari kode warna, Anda dapat melihat bahwa kita dapat menggunakan tiga jenis metode:


  • GET: Metode "GET" digunakan untuk mengambil data dari server. Kami akan menggunakannya untuk mengetahui informasi tentang saldo akun Anda, harga aset, dll.

  • POST: Kami biasanya menggunakan metode "POST" untuk membuat informasi di server. Ini diperlukan untuk hal-hal seperti menempatkan pesanan, meminta penarikan, dll.

  • HAPUS: Metode "DELETE" adalah permintaan ke server untuk menghapus informasi. Ini akan berguna untuk membatalkan pesanan.


Cari daftar simbol dan aturan perdagangan

Saatnya untuk pertanyaan pertama kita! Kita akan mendapatkan simbol yang bisa diperdagangkan di bursa dan aturan perdagangannya:

DAPATKAN /exchangeInfo


Permintaan ini tidak memerlukan parameter tambahan apa pun - Anda dapat menyalin dan menempelkannya ke bilah alamat dan Anda akan mendapat respons. Tukang pos memudahkan untuk melihat dan mengubah kueri yang menyertakan beberapa parameter.

Untuk mengunduh permintaan ini, pilih Pasar > Informasi Bursa. Tab berikut akan muncul:



Kami tidak perlu melakukan apa pun di sini, jadi klik "Kirim". Anda akan mendapatkan jawabannya:



Di bagian yang disorot paling atas, Anda akan melihat informasi penting:

  • status respon (200 berarti permintaan berhasil, 400-499 berarti kita ada masalah)

  • waktu yang dibutuhkan untuk menerima respons (kurang dari satu detik)

  • ukuran respons (~22KB).


Bidang kedua berisi bagian utama jawaban. Ini dicetak dengan indah agar lebih enak dipandang. Ini berisi informasi tentang pertukaran itu sendiri, serta tentang pasangan yang dapat Anda perdagangkan dan jumlah minimum/maksimumnya.

Tampaknya ada banyak informasi, tetapi formatnya memudahkan untuk bekerja dengannya secara terprogram. Saat menulis skrip interaksi, Anda dapat dengan mudah memilih properti tertentu dari elemen tertentu dari respons.


Memeriksa saldo akun

Mari kita periksa aset apa saja yang kita miliki dan berapa jumlahnya:

DAPATKAN / akun

Permintaan ini dapat ditemukan di "Trade" > "Informasi Akun". Klik di atasnya dan Anda akan melihat tata letak yang mirip dengan yang sebelumnya. Namun, Anda juga akan melihat bahwa kami memiliki dua variabel baru: "cap waktu" dan "tanda tangan". Tanda tangan adalah tindakan pengamanan. Karena kami sekarang meminta informasi rahasia, ini akan membuktikan bahwa kami adalah pemilik akun tersebut.

Stempel waktu memberi tahu server kapan permintaan dikirim. Karena jaringan mungkin tidak dapat diandalkan atau tidak berfungsi, server mungkin menerima permintaan kami lebih lambat dari yang diharapkan. Jika terlalu banyak waktu berlalu, permintaan tersebut akan ditolak. Anda dapat menentukan berapa lama Anda ingin menunggu menggunakan parameter "recvWindow", yang defaultnya adalah 5.000 milidetik.

Tukang pos menangani pembuatan kedua bidang ini untuk kami. Klik "Kirim" dan Anda akan menerima balasan. Di bawah Saldo, Anda akan melihat enam aset – BNB, BTC, BUSD, ETH, LTC, dan TRX. Saldo akan dibagi menjadi gratis dan terkunci. Kami belum memblokir apa pun, jadi semua aset Anda seharusnya gratis.

Selamat atas kekayaan baru Anda (yang tidak ada)!


Cara mengetahui harga suatu simbol saat ini

Kita bisa mendapatkan harga suatu aset saat ini dengan berbagai cara. Mungkin yang paling sederhana adalah dengan permintaan seperti itu:

DAPATKAN /api/v3/ticker/24hr

Seperti yang sudah Anda duga, ini akan memberi kita informasi mengenai harga aset selama 24 jam terakhir. Temukan di "Pasar" > "Statistik Perubahan Harga Ticker 24 jam". Pasangan default yang kita lihat sebagai variabel simbol adalah BTCUSDT.

Anda dapat mengirimkannya sekarang juga untuk melihat rincian informasi harga. Anda juga dapat mengubah simbolnya (menjadi BNBBUSD, LTCUSDT, dll.), atau Anda dapat menghapus centang pada variabel untuk mengembalikan data untuk 40 pasang.

Kami juga memiliki panggilan sederhana ("Pasar" > "Simbol Harga Ticker") yang mengembalikan harga saat ini di mana aset tersebut diperdagangkan:

DAPATKAN /api/v3/price

Seperti sebelumnya, Anda dapat mengubah variabel simbol atau menghapusnya sepenuhnya dan mendapatkan harga terbaru untuk semua simbol.


Memeriksa kedalaman buku pesanan saat ini

Kedalaman buku pesanan (juga disebut kedalaman pasar atau DOM) dapat memberi tahu kita banyak hal tentang pasar. Kami akan menelepon untuk mengembalikan informasi berguna:

DAPATKAN api/v3/kedalaman

Saat kami mengirimkannya dengan nilai default ("Pasar" > "Buku Pesanan"), kami mendapat respons yang memberi tahu kami tawaran dan permintaan BTCUSDT. Server testnet tidak akan mengeluarkan data sebanyak yang sebenarnya, jadi di bawah ini adalah tangkapan layar dari apa yang Anda harapkan untuk dilihat di lingkungan nyata:



Pada bagian yang disorot di atas, kita melihat masalah pertama. Karena kita melihat buku besar BTCUSDT, angka teratas adalah harga yang bersedia dibayar seseorang untuk BTC Anda. Di bawah ini adalah jumlah yang ingin mereka beli. Jadi ini menunjukkan bahwa pesanan ini meminta 0,999 BTC dengan tarif 9,704,65 USDT per BTC. Jika kita terus menggulir ke bawah, kita akan melihat harga penawaran turun - artinya pembeli akan dibayar lebih sedikit.

Penawaran terbaik tentunya akan menjadi yang paling menarik jika ingin mendapat untung. Namun, jika Anda mencoba menjual di pasar, katakanlah 3 BTC, Anda hanya akan bisa menjual 0,999 BTC dengan harga terbaik. Anda harus menerima tawaran lebih lanjut (lebih murah) sampai pesanan Anda terisi penuh.



Terus gulir dan Anda akan melihat pertanyaannya. Secara fungsional, ini mirip dengan tawaran, hanya saja ini adalah pesanan untuk menjual BTC seharga USDT.


Menempatkan pesanan tes

Sekarang kami akan melakukan pemesanan percobaan.

POST api/v3/order/test

Meskipun kami hanya menggunakan dana testnet, permintaan ini sebenarnya tidak akan menghasilkan pesanan. Ini dapat berguna untuk menguji pesanan sebelum mengirimkannya. Temukan di "Trade" > "Test New Order (TRADE)".



Seperti yang Anda lihat, kami memiliki lebih banyak parameter yang terlibat. Mari kita bahas yang ditandai:


  • simbol - kita pernah melihat ini sebelumnya. Ini adalah pasangan yang ingin Anda perdagangkan.

  • samping – di sini Anda menunjukkan apakah Anda ingin MEMBELI atau MENJUAL. Untuk pasangan BTCUSDT, BELI menunjukkan bahwa Anda ingin membeli BTC seharga USDT, sedangkan SELL akan menjual BTC seharga USDT.

  • type – jenis pesanan yang ingin Anda kirim. Nilai yang mungkin (detailnya di sini):

    • MEMBATASI

    • PASAR

    • BERHENTI_HILANG

    • STOP_LOSS_LIMIT

    • MENGAMBIL KEUNTUNGAN

    • TAKE_PROFIT_LIMIT

    • LIMIT_MAKER

  • timeInForce – parameter ini menyatakan bagaimana Anda ingin pesanan dieksekusi:

    • GTC (Baik Sampai Dibatalkan) mungkin merupakan pengaturan yang paling populer. GTC menjamin bahwa pesanan Anda valid hingga dieksekusi atau hingga Anda membatalkannya.

    • FOK (Eksekusi atau Batal) – FOK menginstruksikan bursa untuk segera mengeksekusi pesanan. Jika penukaran tidak dapat melakukan hal ini, pesanan akan segera dibatalkan.

    • IOC (Eksekusi Segera atau Batal) – Perintah harus segera dieksekusi seluruhnya atau sebagian atau akan dibatalkan. Berbeda dengan FOK, order tidak dibatalkan jika dapat dieksekusi sebagian.

  • kuantitas hanyalah jumlah aset yang ingin Anda beli atau jual.

  • harga – harga di mana Anda ingin menjual. Untuk pasangan BTCUSDT, ini dinyatakan dalam USDT.

  • newClientOrderId – pengidentifikasi pesanan. Ini bukan bidang yang wajib diisi, namun Anda dapat mengaturnya ke pengidentifikasi yang akan menyederhanakan kueri nanti. Jika tidak, ini akan dihasilkan secara acak di bursa.

Bagus! Sekarang mari kita buat perintah pengujian. Kami akan menggunakan nilai yang dihasilkan secara otomatis: pesanan batas jual 0,1 BTC per USDT dengan harga $9.000. Klik "Kirim". Jika semuanya berhasil, kita hanya akan mendapatkan {{}} sebagai respons.

Menempatkan pesanan nyata

Saatnya melakukan pemesanan palsu yang nyata.

POST /api/v3/order

Buka Perdagangan > Orde Baru. Anda sudah familiar dengan perintah pengujian, jadi parameter di sini tidak akan mengejutkan Anda. Mari kita biarkan semua nilainya apa adanya, tetapi ubah harga jual kita menjadi $40.000. Ubah nilai harga untuk mencerminkan hal ini. Kemudian klik "Kirim".

Jika berhasil, respons Anda akan berisi informasi detail tentang pesanan tersebut.


Memeriksa status pesanan terbuka

Kami mendapat konfirmasi bahwa pesanan sudah dilakukan di bagian sebelumnya, tetapi bagaimana jika kami ingin memeriksanya nanti? Kami memiliki beberapa permintaan yang dapat kami gunakan.

DAPATKAN /api/v3/openOrders

Anda akan menemukannya di "Trade" > "Current Open Orders (USER_DATA)". BTCUSDT dipilih secara default. Jika Anda menekan "Kirim", Anda akan menerima semua pesanan BTCUSDT Anda yang terbuka (sejauh ini Anda hanya akan melihat pesanan yang kami tetapkan sebelumnya). Anda dapat mengabaikan simbol tersebut, yang akan mengembalikan semua order terbuka Anda.

DAPATKAN /api/v3/allOrders

"Perdagangan" > "Semua Pesanan (USER_DATA)" memberi Anda gambaran umum tentang semua pesanan, bukan hanya pesanan terbuka. Di sini Anda harus menentukan simbolnya. "orderId", "startTime", "endTime" adalah parameter opsional yang dapat membantu Anda menyaring pencarian Anda. Kami akan meninggalkannya di sini, jadi hapus centang pada kotaknya. Klik "Kirim" dan Anda akan melihat respons yang sama seperti sebelumnya. Jika Anda telah menutup atau membatalkan pesanan, Anda juga akan melihatnya di sini.


Terakhir, kami dapat meminta pesanan khusus menggunakan:

DAPATKAN /api/v3/order

Dapatkan di bawah "Trade" > "Query Order (USER_DATA)". Anda harus menentukan "orderId" atau "origClientOrderId" (tag opsional "newClientOrderId" yang dapat ditambahkan ke pesanan). Hapus centang "Id pesanan". Untuk "origClientOrderId" kami akan memberikan tag default yang digunakan sebelumnya - "my_order_id_1". Isi kolom dan klik "Kirim" untuk menerima tanggapan.


Pembatalan pesanan

Setelah beberapa waktu, kami mungkin memutuskan bahwa target $40.000 terlalu optimis, sehingga kami ingin membatalkan pesanan. Dalam hal ini kami akan menggunakan:

HAPUS /api/v3/order

Di bawah "Perdagangan" > "Batalkan Pesanan", kueri yang memungkinkan kami menyorot pesanan yang akan dibatalkan. Hapus centang "orderId" dan "newClientOrderId" dan berikan "my_order_id_1" sebagai nilai untuk "origClientOrderId".

Saat Anda mengirimkan permintaan ini, pesanan akan dikembalikan. Jika Anda menggulir ke bawah ke "status" Anda akan melihat bahwa itu memang dibatalkan. Untuk mengonfirmasi hal ini, gunakan kembali titik akhir GET /api/v3/openOrders (dengan daftar kosong) atau GET /api/v3/order dengan origClientOrderId .


Kaburnya pesanan, yang terisi secara instan

Order kami sebelumnya tidak dieksekusi karena ini adalah limit order yang hanya akan berfungsi ketika harga BTC mencapai $40.000. Dalam kasus order pasar, pada dasarnya kita mengatakan "beli/jual pada harga berapa pun aset tersebut diperdagangkan". Pesanan ini akan langsung terisi.

Untuk ini, mari kembali ke "Trade" > "New Order". Kita akan mendemonstrasikan tipe respons (newOrderRespType), yang merupakan parameter yang dapat kita konfigurasikan bergantung pada respons yang ingin kita terima dari server. Ada tiga opsi di sini: ACK, RESULT, atau FULL - Anda dapat melihat contoh setiap respons di sini. Kami akan menggunakan "ACK" yang akan memberi kami konfirmasi sederhana bahwa pesanan telah diterima.

Di bawah ini Anda dapat melihat bahwa kami akan mengirimkan pesanan pasar untuk menjual BNB untuk BUSD dengan harga pasar saat ini.



Perhatikan bahwa responsnya memberi kita sedikit informasi:



Anda dapat memverifikasi bahwa pesanan telah dipenuhi melalui titik akhir /api/v3/allOrders.


Memeriksa penawaran Anda

Terakhir, mari kita lihat titik akhir untuk memverifikasi transaksi Anda:

DAPATKAN /api/v3/myTrades

Permintaannya ada di bagian "Trade" > "Daftar Trade Akun (USER_DATA)". Ini memungkinkan Anda untuk memeriksa setiap transaksi dengan simbol tertentu. Jika Anda ingin melihat semua perdagangan Anda untuk simbol default (BTCUSDT), cukup hapus centang "startTime", "endTime" dan "fromId". Jawabannya akan menghasilkan hingga 500 perdagangan - cukup ubah batasnya jika Anda ingin melihat lebih banyak.


Men-debug dengan Tukang Pos

Di Postman, Anda juga dapat mengekspos permintaan dan respons HTTP mentah.



Menu ini akan membuka konsol Postman, yang menampilkan detail setiap permintaan.



Pikiran terakhir

Tujuan dari panduan ini adalah untuk memperkenalkan Anda pada API Binance tanpa menulis satu baris kode pun. Jika Anda telah menyelesaikan semua langkah yang diperlukan, Anda sekarang harus memahami bagaimana kami dapat meminta dan mengirimkan informasi.

Pada bagian selanjutnya dari seri ini, kami akan memperkenalkan beberapa konsep pengkodean dasar yang memungkinkan kita mengotomatiskan pembelian dan penjualan mata uang kripto dan aset digital lainnya.

Apakah Anda memiliki pertanyaan lagi? Kunjungi forum komunitas pengembang Binance kami yang sedang berkembang, atau lihat dokumentasinya.