Pengantar
Tujuan seri ini adalah untuk memperkenalkan REST API Binance dan mengajari Anda cara berinteraksi dengan alat ini. Pada akhirnya, Anda akan yakin dengan kemampuan Anda untuk menanyakan informasi mengenai pasar dan posisi Anda, dan untuk menempatkan berbagai jenis order.
Prasyarat
Testnet key
Untuk tujuan ini, kita akan menggunakan testnet. Akan diberikan sejumlah dana untuk dimainkan, yang tak ada nilainya di dunia nyata. Dana yang diberikan berfungsi sama dengan koin dan token nyata, jadi, setelah Anda merasa nyaman dengan API, Anda dapat mulai menggunakannya untuk memperdagangkan dana yang sebenarnya.
- Mulai dengan menuju ke Spot Test Network.
- Untuk mendapatkan akses, Anda harus masuk dengan akun GitHub. Jika Anda belum memilikinya, silakan buat akun.
- Klik Authenticate dan masuk via GitHub.
- Di bawah API Keys, akan diberitahu bahwa Anda tidak memiliki key yang terdaftar. Klik Generate HMAC_SHA256 Key untuk membuat pasangan.
- Di layar berikutnya, beri label key. Berikan nama semau Anda dan tekan Generate.
- Diberikan dua kunci: API Key dan Secret Key. Sangat penting jika Anda mencatatnya sekarang. Jika tidak, Anda harus memulai proses pembuatan key lagi. Kami sarankan untuk menyimpannya di aplikasi catatan mesin Anda agar mudah disalin di lain waktu.
Mengunduh dan menginstal Postman
Postman merupakan platform Kolaborasi API. Titik awal yang sempurna bagi kita – kita akan memiliki akses ke koleksi request Binance yang akan kita uji tanpa perlu menulis satu baris kode pun.
Setelah selesai, cari filenya dan instal. Nyalakan aplikasi, dan kita sudah siap! Perhatikan bahwa Anda dapat membuat akun untuk masuk, tetapi tidak perlu. Jika ingin melakukannya, cukup pilih opsi di bagian bawah jendela.
Membuat environment
Pada tahap ini, Anda harus memiliki antarmuka seperti di bawah ini.
Pengunduhan tidak akan memakan waktu lama. Temukan filenya dan unzip. Lalu, kita bisa kembali ke Postman.
- Pilih Import, dan navigasikan ke folder yang baru saja Anda ekstrak (binance-postman-api).
- Masuk, lalu masuk ke folder environments .
- Sekarang Anda akan melihat dua file (satu untuk mainnet dan satu untuk testnet). Yang kita butuhkan adalah binance_com_spot_testnet_api.postman_environment.json. Pastikan Anda mendapatkan file yang benar, karena key tidak akan berfungsi dengan file yang berbeda.
Di layar ini, biarkan bidang timestamp dan signature kosong. Kedua nilai ini akan secara otomatis dibuat atas setiap request.
Mengimpor collection
Sekarang kita akan mengimpor koleksi – ini adalah berbagai macam request yang sangat membantu saat kita melakukan call. Untuk memuatnya ke environment:
- Klik Import di sudut kiri atas.
- Di popup, di bawah tab File, pilih Upload Files.
- Kita mencari folder binance-postman-api lagi. Temukan dan buka.
- Kali ini, masukkan collection ke subdirektori.
- Ada dua file di sini. Salah satunya bekerja dengan API futures. Tapi kita membutuhkan yang spot, jadi Anda harus memilih file binance_spot_api_v1.postman_collection.json.
- Anda sekarang akan melihat layar konfirmasi yang mengidentifikasi bahwa impor ada dalam format Postman Collection. Pilih Impor.
Di bawah tab Collections di sebelah kiri jendela, Anda sekarang akan melihat bahwa kita memiliki folder dengan lebih dari 100 request. Selamat! Kita sudah siap menggunakannya. Di bagian selanjutnya, kita akan melihat jenis request yang bisa kita buat.
Membuat Request
Jika Anda membuka folder di tab Collections, Anda akan melihat bahwa kita memiliki banyak request berbeda yang dapat dibuat. Dari pengkodean warna, Anda mungkin memperhatikan bahwa ada tiga jenis metode yang dapat kita gunakan:
- GET: Metode GET digunakan untuk mengambil barang dari server. Kita akan menggunakan ini untuk mencari tahu informasi mengenai saldo akun Anda, harga aset, dll.
- POST: Kita biasanya menggunakan metode POST untuk membuat informasi di server. Ini diperlukan untuk memasang order, melakukan penarikan, dll.
- DELETE: Metode DELETE adalah permintaan server untuk menghapus informasi. Ini akan sangat berguna untuk membatalkan order.
Menemukan daftar simbol dan aturan perdagangan
Saatnya untuk membuat request pertama! Kita akan mendapatkan simbol yang dapat diperdagangkan di bursa dan aturan perdagangan:
GET /exchangeInfo
Yang ini tidak mengambil parameter tambahan apa pun – Anda bisa menyalin dan menempelkannya ke bilah alamat, dan Anda akan mendapatkan respons. Tetapi untuk request di mana kita menyertakan beberapa parameter, Postman akan memudahkan untuk melihat dan memodifikasinya.
Di bagian yang disorot paling atas, Anda akan melihat beberapa informasi penting:
- status respons (200 berarti kita berhasil, 400-499 berarti kita mengalami masalah)
waktu yang dibutuhkan untuk menerima respons (kurang dari satu detik)
ukuran respons (~22KB).
Di kotak kedua terdapat sejumlah besar respons. Tulisannya lebih jelas sehingga sedikit lebih mudah dilihat. Ini berisi informasi mengenai bursa itu sendiri, serta pasangan yang dapat Anda perdagangkan dan jumlah minimum/maksimumnya.
Sepertinya sangat banyak informasi yang perlu dicerna, tetapi formatnya membuat sangat mudah untuk dikerjakan secara terprogram. Saat menulis skrip untuk berinteraksi dengan alat ini, Anda akan dengan mudah memilih properti spesifik elemen tertentu dari respons.
Memeriksa saldo akun
Mari kita periksa aset apa yang kita miliki, dan berapa banyak jumlahnya:
GET /account
Selamat atas kekayaan (tak berwujud) yang baru Anda temukan!
Cara mendapatkan harga saat ini dengan simbol
Kita bisa mendapatkan harga aset saat ini dengan berbagai cara. Mungkin yang paling sederhana adalah dengan request berikut:
GET /api/v3/ticker/24hr
GET /api/v3/price
Seperti sebelumnya, Anda dapat mengubah variabel simbol atau menghapus sepenuhnya untuk mendapatkan harga terbaru dari semua simbol.
Memeriksa kedalaman order book saat ini
Kedalaman order book (juga disebut sebagai kedalaman pasar, depth of market, atau DOM) bisa memberi tahu banyak hal mengenai pasar. Kita akan melakukan panggilan untuk mendapatkan beberapa informasi yang berguna:
GET api/v3/depth
Saat kita mengirimkan ini dengan nilai default (Market > Order Book), kita mengirim kembali respons yang memberi tahu mengenai bid dan ask BTCUSDT. Server testnet tidak akan menghasilkan data sebanyak yang sebenarnya, jadi di bawah ini adalah tangkapan layar dari pasar yang sebenarnya:
Di bagian yang disorot di atas, kita dapat melihat bid pertama. Karena kita sedang melihat order book untuk BTCUSDT, angka atas adalah harga yang bersedia dibayar seseorang untuk BTC Anda. Yang di bawah adalah jumlah yang ingin ia beli. Oleh karena itu, order ini meminta 0,999 BTC dengan harga 9704,65 USDT per BTC. Jika terus menggulir ke bawah, kita akan melihat penurunan harga penawaran – mewakili pembeli yang akan membayar lebih murah.
Penawaran teratas secara alami adalah yang paling menarik jika Anda mencari keuntungan. Karena itu, jika Anda mencoba menjual dengan market sell, katakanlah, 3 BTC, Anda hanya dapat menjual 0,999 BTC dengan harga terbaik. Anda harus mengambil penawaran berikutnya (lebih murah) hingga keseluruhan order Anda terisi.
Memasang order percobaan
Sekarang kita akan membuat order percobaan.
POST api/v3/order/test
Anda dapat melihat kita memiliki lebih banyak parameter yang terlibat. Mari kita telusuri yang dicentang:
- symbol – kita sudah membahas ini sebelumnya. Ini adalah pasangan yang ingin Anda perdagangkan.
- side – di sini, Anda akan menentukan apakah Anda ingin melakukan BUY atau SELL. Dengan pasangan BTCUSDT, BUY menunjukkan bahwa Anda ingin membeli BTC dengan USDT, sedangkan SELL akan menjual BTC untuk mendapatkan USDT.
- type – jenis order yang ingin Anda kirim. Nilai yang mungkin (detail di sini):
- LIMIT
- MARKET
- STOP_LOSS
- STOP_LOSS_LIMIT
- TAKE_PROFIT
- TAKE_PROFIT_LIMIT
- LIMIT_MAKER
- timeInForce– parameter ini menyatakan bagaimana Anda ingin order dieksekusi:
- GTC (good till canceled) – mungkin merupakan pengaturan yang paling populer, GTC akan memastikan bahwa order Anda valid sampai terisi, atau sampai Anda membatalkannya.
- FOK (fill or kill) - FOK menginstruksikan bursa untuk mengeksekusi order sekaligus. Jika bursa tidak dapat melakukannya, order akan segera dibatalkan.
- IOC (immediate or cancel) – semua atau sebagian order harus segera dieksekusi, atau dibatalkan. Tidak seperti FOK, order tidak dibatalkan jika terisi sebagian.
- quantity – sederhananya, merupakan jumlah aset yang ingin Anda beli atau jual.
- price – harga di mana Anda ingin menjual. Untuk pasangan BTCUSDT, ini dinyatakan dalam USDT.
- newClientOrderId – merupakan pengidentifikasi order. Ini bukan bidang yang diwajibkan, tetapi Anda dapat mengaturnya, yang nantinya akan memudahkan query. Jika tidak, akan dihasilkan secara acak oleh bursa.
Memasang order yang sebenarnya
Sekarang saatnya memasang order palsu yang sebenarnya.
POST /api/v3/order
Jika berhasil, respons Anda akan memperlihatkan banyak detail mengenai order ini.
Memeriksa status order terbuka
Kita mendapat konfirmasi bahwa order ditempatkan di bagian sebelumnya, tetapi bagaimana jika kita ingin memeriksanya lagi nanti? Ada beberapa request.
GET /api/v3/openOrders
GET /api/v3/allOrders
Terakhir, kita dapat meminta order khusus dengan:
GET /api/v3/order
Membatalkan order
Setelah beberapa waktu, kita mungkin memutuskan bahwa target $40.000 agak terlalu optimis, jadi kita ingin membatalkannya. Dalam hal ini, kita akan menggunakan:
DELETE /api/v3/order
Memasang order yang terisi secara instan
Di bawah ini, Anda dapat melihat bahwa kita akan mengirimkan market order menjual BNB untuk mendapatkan BUSD pada harga pasar saat ini.
Perhatikan bahwa respons memberikan informasi minimal:
Memeriksa perdagangan Anda
Mari kita lihat endpoint untuk memeriksa perdagangan Anda:
GET /api/v3/myTrades
Debugging dengan Postman
Di Postman, dimungkinkan untuk mengungkapkan request dan respons terhadap raw HTTP lebih lanjut.
Menu ini akan membuka konsol Postman, yang menunjukkan detail setiap request.
Penutup
Tujuan panduan ini adalah untuk memperkenalkan Binance API kepada Anda tanpa menulis satu baris kode pun. Jika Anda mengikuti, Anda sekarang sudah memiliki gagasan mengenai bagaimana Anda dapat meminta dan mengirimkan informasi.