Kesimpulan Utama

  • API adalah potongan kode yang memungkinkan aplikasi berbagi informasi dan dapat digunakan untuk meningkatkan strategi perdagangan mata uang kripto.

  • Tukang pos adalah platform API yang menyederhanakan proses pembuatan dan penggunaan API.

  • Pelajari lebih lanjut tentang penggunaan Postman untuk perdagangan spot di ekosistem Binance API.

Binance API Series Pt. I – Spot Trading with Postman

Perkenalan

Memahami dan menggunakan API untuk perdagangan mata uang kripto dapat membuka banyak kemungkinan untuk masuk dan keluar posisi. Dengan beberapa pengetahuan pengkodean sederhana, Anda dapat terhubung ke backend bursa untuk mengotomatiskan strategi perdagangan Anda. Dengan menghindari situs web, Anda dapat mengambil jalur yang lebih cepat menuju mesin pencocokan untuk aplikasi berkinerja tinggi.

Pada artikel ini, kami akan menggunakan Postman, platform API yang disederhanakan, untuk berkomunikasi dengan bursa. Jangan khawatir – kami tidak akan mempertaruhkan dana nyata apa pun.

Prasyarat

Kunci jaringan pengujian

Kami akan menggunakan testnet untuk tujuan kami saat ini. Fitur simulasi ini akan memberi kita sejumlah dana yang tidak memiliki nilai nyata untuk dimainkan. Fungsinya sama seperti koin dan token asli, jadi setelah Anda merasa nyaman dengan API ini, Anda dapat mulai menggunakannya untuk memperdagangkan dana nyata.

  1. Mulailah dengan menuju ke Spot Test Network.

  2. Untuk mendapatkan akses, masuk dengan akun GitHub. Anda harus membuatnya jika Anda belum melakukannya.

  3. Klik Otentikasi, dan masuk melalui GitHub.

  4. Di bawah Kunci API, Anda akan diberitahu bahwa Anda tidak memiliki kunci yang terdaftar. Klik Hasilkan Kunci HMAC_SHA256 untuk membuat pasangan.

  5. Di layar berikutnya, beri label pada tombol. Panggil mereka apa pun yang Anda inginkan dan tekan Hasilkan.

  6. Anda disajikan dengan dua kunci: Kunci API dan Kunci Rahasia. Penting bagi Anda untuk mencatatnya sekarang. Jika tidak, Anda harus memulai proses pembuatan kunci lagi. Kami merekomendasikan untuk menyimpannya di aplikasi catatan mesin Anda agar mudah disalin dan ditempel nanti.

Catatan: memberi label pada kunci Anda layak dilakukan saat menggunakan pertukaran nyata untuk mengelola kunci yang berbeda. Akun Anda dapat memiliki banyak kunci dengan izin berbeda. Jika Anda menjalankan beberapa bot perdagangan, menggunakan kunci terpisah dengan label deskriptif akan mempermudah pengelolaan izin atau menghapus kunci individual tanpa mengubah semua bot Anda.

Mengunduh dan menginstal Tukang Pos

Tukang pos adalah platform Kolaborasi API. Ini adalah titik awal yang sempurna bagi kami – kami akan memiliki akses ke kumpulan permintaan Binance yang akan kami uji tanpa perlu menulis satu baris kode pun.

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

Setelah selesai, cari di file explorer Anda dan instal. Jalankan aplikasinya, dan kami siap berangkat! Anda dapat membuat akun untuk masuk, tetapi itu tidak perlu. Jika Anda ingin melewati langkah ini, cukup pilih opsi untuk melakukannya di bagian bawah jendela.

Menciptakan lingkungan

Pada tahap ini, Anda harus memiliki antarmuka yang menyerupai berikut ini.

Pertama, kami ingin menciptakan lingkungan kami. Langkah ini hanyalah cara untuk menambahkan variabel ke permintaan yang akan kita kerjakan. Pertama-tama kita perlu mengambil beberapa informasi dari repositori Binance GitHub. Buka di sini dan unduh file .zip.

Pengunduhan tidak akan memakan waktu lama. Anda dapat menemukannya di file explorer dan mengekstraknya. Lalu, kita bisa kembali ke Postman.

Klik ikon roda gigi di pojok kanan atas (diilustrasikan di atas). Anda akan disambut dengan popup Kelola Lingkungan.

  1. Pilih Impor, dan navigasikan ke folder hasil ekstrak Anda (binance-postman-api).

  2. Masukkan, lalu masuk ke folder lingkungan.

  3. Anda sekarang akan melihat dua file (satu untuk mainnet dan satu lagi untuk testnet). Yang kami kejar adalah binance_com_spot_testnet_api.postman_environment.json. Pastikan Anda memiliki kunci yang benar karena kunci kami tidak akan berfungsi dengan kunci lainnya.

Hampir sampai. Klik pada Binance Spot Testnet API untuk melihat variabel di bawah. Edit dua parameter yang diberi garis merah dengan menempelkan kunci yang Anda simpan sebelumnya. Klik perbarui dan keluar dari popup.

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

Ada satu hal terakhir yang harus dilakukan. Di sebelah kanan ikon roda gigi yang kita klik untuk menyiapkan lingkungan sebelumnya, Anda akan melihat menu tarik-turun yang saat ini bertuliskan Tanpa Lingkungan. Klik dan pilih Binance Spot Testnet API.

Mengimpor koleksi

Sekarang kami akan mengimpor koleksinya – ini adalah beragam permintaan yang sangat membantu kami saat melakukan panggilan. Untuk memuatnya ke lingkungan kita:

  1. Klik Impor di pojok kiri atas.

  2. Di munculan, di bawah tab File, pilih Unggah File.

  3. Kami mencari folder binance-postman-api lagi. Cari dan buka.

  4. Kali ini, masukkan koleksi di subdirektori.

  5. Ada dua file di sini lagi. Salah satunya adalah untuk bekerja dengan API berjangka. Namun kami sedang mengerjakan yang pertama, jadi Anda harus memilih file Binance Spot API.postman_collection.json.

  6. Anda sekarang akan melihat layar konfirmasi yang mengidentifikasi impor dalam format Koleksi Tukang Pos. Pilih Impor.

Di bawah tab Koleksi di sebelah kiri jendela, Anda sekarang akan melihat bahwa kami memiliki folder dengan lebih dari 100 permintaan. Selamat! Kami siap berangkat. Di bagian selanjutnya, kita akan melihat jenis permintaan yang dapat kita buat.

Membuat permintaan

Jika Anda memperluas folder di bawah tab Koleksi, Anda akan melihat bahwa kami dapat membuat banyak permintaan berbeda. Dari kode warna, Anda mungkin memperhatikan bahwa ada tiga jenis metode yang dapat kita gunakan:

  • GET: Metode GET digunakan untuk mengambil barang dari server. Kami akan menggunakan ini untuk menemukan informasi tentang saldo akun Anda, harga aset, dll.

  • POST: Kami biasanya menggunakan metode POST untuk membuat informasi di server. Metode ini diperlukan untuk hal-hal seperti melakukan pemesanan, meminta penarikan, dll.

  • HAPUS: Metode DELETE meminta server untuk menghapus informasi. Ini akan berguna untuk membatalkan pesanan.

Temukan daftar simbol dan aturan perdagangan

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

DAPATKAN /api/v3/exchangeInfo

Yang ini tidak memerlukan parameter tambahan apa pun – Anda dapat menyalin dan menempelkannya ke bilah alamat, dan Anda akan mendapat respons. Namun Postman memudahkan untuk melihat dan mengubah permintaan dengan menyertakan beberapa parameter.

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

Kita tidak perlu melakukan hal lain di sini, jadi lanjutkan dan tekan Kirim. Anda kemudian akan mendapat tanggapan:

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

  • Status respon (200 berarti kita berhasil, 400-499 berarti kita mengalami masalah).

  • Waktu yang diperlukan untuk menerima respons (kurang dari satu detik).

  • Ukuran respons (~22KB).

Kotak kedua berisi sebagian besar tanggapan. Kotak ini berisi informasi tentang bursa, pasangan yang dapat Anda perdagangkan, dan jumlah minimum/maksimumnya.

Tampaknya banyak informasi, tetapi formatnya membuatnya mudah untuk dikerjakan secara terprogram. Saat menulis skrip untuk berinteraksi dengannya, Anda akan dengan mudah dapat memilih properti spesifik dari elemen tertentu dari respons.

Periksa saldo akun

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

DAPATKAN /api/v3/account

Anda dapat menemukannya di Perdagangan > Informasi Akun. Klik untuk melihat tata letak yang mirip dengan yang sebelumnya. Namun, Anda juga akan melihat bahwa kami memiliki dua variabel baru: stempel waktu dan tanda tangan. Tanda tangan adalah tindakan pengamanan. Karena kami sekarang meminta informasi sensitif, itu akan membuktikan bahwa kami adalah pemegang akun.

Stempel waktu memberi tahu server kapan permintaan dikirim. Karena jaringan mungkin tidak dapat diandalkan atau mengalami downtime, 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 dengan parameter recvWindow, yang defaultnya adalah 5000 milidetik.

Tukang pos menangani pembuatan kedua bidang ini untuk kami. Klik kirim, dan Anda akan mendapat tanggapan. Di bawah saldo, Anda akan melihat enam aset – BNB, BTC, BUSD, ETH, LTC, dan TRX. Saldonya akan dibagi menjadi aset bebas dan terkunci. Kami belum menguncinya, jadi semua aset Anda seharusnya gratis.

Dapatkan harga saat ini untuk sebuah simbol

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

DAPATKAN /api/v3/ticker/24hr

Seperti yang Anda duga, ini akan memberi kita informasi tentang harga aset selama dua puluh empat jam terakhir. Anda dapat menemukannya di Pasar > Statistik Perubahan Harga Ticker 24 jam. Pasangan default yang kita terima sebagai variabel simbol adalah BTC/USDT.

Anda dapat langsung mengirimkannya untuk melihat rincian informasi harga. Anda juga dapat mengubah simbol (menjadi BNB/USDT, LTC/USDT, dll.) atau menghapus centang pada variabel untuk mengembalikan data 40 pasang.

Kami juga memiliki panggilan yang lebih sederhana (Pasar > Simbol Harga Ticker) yang mengembalikan harga saat ini dimana suatu aset diperdagangkan:

DAPATKAN /api/v3/price

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

Periksa kedalaman buku pesanan saat ini

Kedalaman buku pesanan – juga disebut sebagai kedalaman pasar (DOM) – dapat memberi tahu kita banyak hal tentang pasar. Kami akan melakukan panggilan yang akan mengembalikan beberapa informasi berguna:

DAPATKAN /api/v3/kedalaman

Saat kami mengirimkan ini dengan nilai default (Pasar > Buku Pesanan), kami menerima respons yang memberi tahu kami tentang tawaran dan permintaan BTC/USDT. Server testnet tidak akan menghasilkan data sebanyak yang sebenarnya, jadi di bawah ini adalah tangkapan layar dari apa yang Anda harapkan untuk dilihat di lingkungan nyata:

Di bagian yang disorot di atas, kita dapat melihat tawaran pertama. Karena kita sedang melihat buku untuk BTC/USDT, angka teratas adalah harga yang bersedia dibayar seseorang untuk BTC Anda. Di bawah ini adalah jumlah yang ingin mereka beli. Oleh karena itu, dikatakan bahwa pesanan ini meminta 0,999 BTC dengan tarif 9704,65 USDT per BTC. Jika kita terus menggulir ke bawah, kita akan melihat harga penawaran turun – mewakili pembeli yang akan membayar lebih sedikit.

Penawaran teratas tentu saja akan menjadi yang paling menarik jika Anda mencari keuntungan. Namun, jika Anda mencoba menjual 3 BTC, misalnya, Anda hanya dapat menjual 0,999 BTC dengan harga terbaik. Anda harus mengambil penawaran berikutnya (yang lebih murah) hingga pesanan Anda terpenuhi.

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

Tempatkan pesanan tes

Sekarang kami akan memposting perintah pengujian.

POST /api/v3/order/test

Meskipun kami hanya menggunakan dana testnet, permintaan ini sebenarnya tidak akan melakukan pemesanan. Akan bermanfaat untuk menguji pesanan sebelum benar-benar mengirimkannya. Temukan di Trade > Test New Order (TRADE).

Anda dapat melihat bahwa kami memiliki lebih banyak parameter yang terlibat. Mari kita telusuri yang sudah dicentang:

  • simbol – kita pernah menemukan yang ini sebelumnya. Ini adalah pasangan yang ingin Anda perdagangkan.

  • sisi – di sini, Anda akan menentukan apakah Anda ingin MEMBELI atau MENJUAL. Dengan pasangan BTC/USDT, BELI menunjukkan bahwa Anda ingin membeli BTC seharga USDT, sedangkan jual akan menjual BTC seharga USDT.

  • type – jenis pesanan yang ingin Anda kirimkan. Nilai yang mungkin (dirinci 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 pengaturan yang paling populer, GTC akan memastikan bahwa pesanan Anda valid hingga pesanan dipenuhi atau dibatalkan.

    • FOK (isi atau bunuh) – FOK menginstruksikan bursa untuk mengeksekusi pesanan sekaligus. Jika penukaran tidak dapat melakukannya, pesanan akan segera dibatalkan.

    • IOC (segera atau batal) – seluruh atau sebagian pesanan harus segera dieksekusi, atau dibatalkan. Berbeda dengan FOK, pesanan tidak dibatalkan jika dapat dipenuhi sebagian.

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

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

  • newClientOrderId – pengidentifikasi pesanan. Ini bukan bidang wajib, tetapi Anda dapat mengaturnya ke pengidentifikasi yang akan memudahkan pembuatan kueri nanti. Jika tidak, ini akan dihasilkan secara acak oleh bursa.

Oke! Mari buat pesanan percobaan sekarang. Kami akan melanjutkan dengan nilai yang dihasilkan secara otomatis: limit order untuk menjual 0,1 BTC seharga USDT seharga $9000. Tekan Kirim. Jika ini berhasil, kita akan mendapatkan {} sebagai respons.

Tempatkan pesanan nyata

Saatnya melakukan pemesanan nyata.

POST /api/v3/order

Navigasikan ke Perdagangan > Orde Baru. Anda sudah familiar dengan pesanan pengujian sekarang, jadi parameter di sini tidak mengherankan. Mari kita biarkan semua nilainya apa adanya tetapi ubah harga yang kita jual menjadi 40.000 USD. Sesuaikan nilai harga untuk mencerminkan hal ini. Lalu, tekan Kirim.

Respons Anda mengembalikan banyak detail tentang pesanan jika berhasil.

Periksa status pesanan terbuka

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

DAPATKAN /api/v3/openOrders

Anda akan menemukannya di Perdagangan > Pesanan Terbuka Saat Ini (USER_DATA). BTC/USDT dipilih secara default. Jika Anda menekan Kirim, Anda akan mendapatkan semua pesanan BTC/USDT yang terbuka (sejauh ini, Anda hanya akan melihat pesanan yang kami tetapkan sebelumnya). Anda juga dapat memilih untuk tidak menentukan simbol, 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 memberikan simbol. orderId, startTime, endTime, dan limit adalah parameter opsional yang dapat membantu Anda menyaring pencarian Anda. Kami akan meninggalkannya di sini, jadi hapus centangnya. Tekan Kirim, dan Anda akan melihat respons yang sama seperti sebelumnya. Jika Anda memiliki pesanan yang ditutup atau dibatalkan, Anda juga akan melihatnya di sini.

Terakhir, kita dapat menanyakan pesanan tertentu dengan yang berikut:

DAPATKAN /api/v3/order

Dapatkan ini di bawah Trade > Query Order (USER_DATA). Anda harus memberikan orderId atau origClientOrderId (tag opsional “newClientOrderId” yang dapat Anda tambahkan ke pesanan). Hapus centang orderId. Untuk origClientOrderId, kami akan memberikan tag default dari sebelumnya – ”my_order_id_1”. Isi kolom dan tekan Kirim untuk mendapatkan tanggapan.

Membatalkan pesanan

Setelah beberapa waktu, kami mungkin memutuskan bahwa target 40.000 USD terlalu optimis, sehingga kami ingin membatalkannya. Dalam hal ini, kami akan menggunakan yang berikut ini:

HAPUS /api/v3/order

Di bawah Trade > Cancel Order adalah permintaan yang memungkinkan kami memilih pesanan untuk dibatalkan. Hapus centang orderId dan newClientOrderId dan teruskan “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 titik akhir GET /api/v3/openOrders lagi (memberi Anda daftar kosong) atau GET /api/v3/order dengan origClientOrderId.

Tempatkan pesanan yang langsung terisi

Pesanan kami sebelumnya tidak terisi karena ini adalah pesanan batas yang hanya akan terpicu ketika harga BTC mencapai 40.000 USD. Dengan tatanan pasar, pada dasarnya kita mengatakan: “Beli atau jual pada harga berapa pun aset tersebut saat ini diperdagangkan.” Ini akan langsung terisi.

Untuk itu, mari kembali ke Trade > New Order. Kami akan mendemonstrasikan tipe respons (newOrderRespType), yang merupakan parameter yang dapat kami sesuaikan bergantung pada respons yang kami inginkan dari server. Ada tiga opsi di sini: ACK, RESULT, atau FULL – Anda dapat melihat contoh setiap respons di sini. Kami akan menggunakan ACK, yang memberi kami pengakuan sederhana bahwa pesanan telah diterima.

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

Perhatikan bahwa responsnya memberi kita sedikit informasi:

Anda dapat memverifikasi bahwa pesanan diisi dengan titik akhir /api/v3/allOrders.

Memeriksa perdagangan Anda

Terakhir, mari kita lihat titik akhir untuk memeriksa perdagangan Anda:

DAPATKAN /api/v3/myTrades

Ini terletak di bawah Perdagangan > Daftar Perdagangan Akun (USER_DATA). Ini memungkinkan Anda memeriksa setiap perdagangan untuk simbol tertentu. Jika Anda ingin melihat semua perdagangan Anda untuk simbol default (BTC/USDT), cukup hapus centang startTime, endTime, dan fromId. Responsnya akan menghasilkan hingga 500 perdagangan – cukup sesuaikan batasnya jika Anda ingin melihat lebih banyak.

Debugging Dengan Tukang Pos

Di Postman, dimungkinkan untuk mengungkapkan permintaan dan respons HTTP mentah lebih lanjut.

Menu ini akan membuka konsol Postman, yang mencetak rincian setiap permintaan.

Memulai Dengan API Binance

Tujuan dari panduan ini adalah untuk memperkenalkan Anda dengan lembut ke API Binance tanpa menulis satu baris kode pun. Jika Anda telah mengikuti langkah ini, Anda sekarang akan memiliki gambaran tentang bagaimana kami dapat meminta dan mengirimkan informasi.

Sementara itu, ada pertanyaan? Kunjungi forum Komunitas Pengembang Binance kami yang sedang berkembang atau lihat dokumentasinya.

Bacaan lebih lanjut

  • Glosarium: Antarmuka Pemrograman Aplikasi (API)

  • Apa Itu Kunci API dan Bagaimana Cara Menggunakannya dengan Aman?

  • Cara Menggunakan Kunci API dengan Aman: 5 Tips Dari Binance