Arbitrase Crypto dengan Intelijen Data NetworkX dan Python PlatoBlockchain. Pencarian Vertikal. ai.

Arbitrase Crypto dengan NetworkX dan Python

Menganalisis data kripto dari Coingecko API untuk membangun pemindai arbitrase kripto dengan python

McKlayne Marshall

Disusun bersama Ishak Rea

Foto oleh Alina Grubnyak on Unsplash

Pasar mata uang di seluruh dunia diperdagangkan 24 jam sehari dengan volume yang jauh lebih tinggi dibandingkan obligasi, saham, atau kontrak berjangka terbaik. Pelaku pasar valuta asing melakukan lindung nilai terhadap risiko atau berspekulasi mengenai perubahan nilai mata uang di masa depan.

Sumber keuntungan lainnya berasal dari pemanfaatan ketidakseimbangan jangka pendek dalam penilaian mata uang. Dengan menggunakan algoritme secepat kilat, pedagang frekuensi tinggi mengidentifikasi peluang arbitrase dan dengan cepat mengeksekusi serangkaian pertukaran yang menghasilkan keuntungan kecil. Lihat ini artikel dari Corporate Finance Institute untuk penjelasan dan contoh lebih mendalam.

Lembaga Keuangan Korporat

Karena tingginya persaingan dan volume perdagangan di pasar mata uang, peluang ini hanya berumur pendek dan keuntungan sangat kecil. Meskipun keuntungan melalui arbitrase mata uang dapat diperoleh seiring waktu dengan jumlah perdagangan yang tinggi, peluang serupa juga ada di pasar mata uang kripto yang mungkin bahkan lebih menguntungkan.

Karena ada banyak kripto yang bisa diperdagangkan, ada banyak kemungkinan kombinasi untuk memeriksa peluang arbitrase. Struktur data Grafik (Jaringan) sangat ideal untuk melacak perbedaan nilai tukar antar koin dan dengan cepat mengidentifikasi contoh ketidakseimbangan yang dapat kita manfaatkan. Untuk informasi lebih lanjut tentang Grafik/Jaringan, dan paket Python untuk digunakan, lihat ini Book dalam Pemrogram Pragmatis series.

Untuk membuat Grafik mata uang kripto, kami akan memanfaatkan paket NetworkX. Ini adalah alat ampuh yang memudahkan kita menganalisis koin yang kita minati dan menemukan peluang perdagangan. Pertama, kita akan mendapatkan nilai tukar kripto dari CoinGecko API. Kemudian, kita akan menginisialisasi Grafik dan menentukan hubungan (nilai tukar) antara masing-masing koin yang kita minati. Terakhir, kita akan menelusuri semua jalur dari satu koin ke koin lainnya dan kembali lagi untuk mengidentifikasi peluang arbitrase.

Jika Anda memiliki pengalaman dengan API JSON KoinGecko API relatif mudah digunakan. Dengan potongan kode ini, saya menarik nilai tukar saat ini untuk lima koin berbeda (Bitcoin, Bitcoin Cash, Ethereum, Litecoin, dan EOS).

URL untuk panggilan API akan terlihat seperti ini, tergantung pada koin yang datanya ingin Anda ambil:

https://api.coingecko.com/api/v3/simple/price?ids=bitcoin-cash,ethereum,bitcoin,litecoin,eos&vs_currencies=bch,eth,btc,ltc,eos

Dengan menggunakan paket Permintaan dan JSON untuk Python, kami dapat memuat data ini sebagai kamus dengan kunci untuk setiap kripto yang kami sertakan dalam daftar kami. Nilai yang terkait dengan masing-masing kunci tersebut adalah kamus lain dengan entri nilai tukar untuk pasangan mata uang tersebut. Misalnya, untuk Bitcoin Cash kami mendapatkan hasil berikut:

Ini menunjukkan bahwa 0.25 Ethereum atau 0.16 Bitcoin dapat dibeli dengan 1 Bitcoin Cash. Dengan hasil ini untuk masing-masing kripto, kami siap mendefinisikan Grafiknya.

Masing-masing koin mewakili 'titik' dalam Grafik dan nilai tukar antara dua koin adalah 'tepi'. Setelah menginisialisasi objek Graph yang kosong, kami menentukan daftar tupel untuk setiap pasangan koin dan nilai tukarnya di kedua arah.

Daftar tepinya akan terlihat seperti ini:

Dengan menambahkan tepi ke grafik, kami siap memindai peluang arbitrase. Dengan menggunakan fungsi kombinasi dari paket itertools, kami mendefinisikan semua kemungkinan pasangan koin. Kemudian, kami menggunakan fungsi all_simple_paths dari NetworkX untuk menentukan semua kemungkinan jalur dari koin pertama ke koin kedua.

Misalnya, jika kita melihat Litecoin dan Bitcoin Cash, ada banyak kemungkinan jalur berdasarkan koin yang kita pertimbangkan. Kita cukup membeli Bitcoin Cash dengan Litecoin atau membeli Bitcoin dengan Litecoin dan kemudian menggunakan Bitcoin untuk membeli Bitcoin Cash.

Kami mengulangi setiap jalur dan melakukan perhitungan berikut pada setiap langkah. Pertama, kita berasumsi bahwa kita memulai dengan salah satu koin awal. Kita mengalikannya dengan nilai tukar dari satu koin ke koin lainnya hingga kita mencapai ujung jalur.

Misalnya, jika kita memulai dengan satu Bitcoin Cash kita bisa membeli 0.24 Ethereum jadi kita kalikan 1 x 0.24197529 = 0.24197529. Nilai tukar Ethereum ke Bitcoin adalah 0.06 jadi kita kalikan 0.24197529 x 0.06484324 = 0.0156904618035396. Nilai ini sangat dekat dengan nilai tukar antara Bitcoin Cash dan Bitcoin tetapi tidak persis sama.

Pada titik ini, kita memeriksa kebalikan jalurnya, yaitu Bitcoin ke Ethereum ke Bitcoin Cash dengan mengalikan 1 x 15.414849 x 4.132739 = 63.705547641411. Kita mengalikan kedua hasil ini untuk evaluasi akhir jalur kita (0.0156904618035396 x 63.705547641411 = 0.9995694619411315). Sepengetahuan saya, tidak ada istilah pasti untuk nilai ini. Kita bisa menyebutnya Faktor Arbitrase.

Jika nilai tukar selaras, Faktor Arbitrase akan menjadi satu. Nilai yang kurang dari satu menunjukkan bahwa kita melalui serangkaian pertukaran dan menyelesaikannya dengan nilai yang lebih kecil dari yang kita mulai. Jadi, kami mencari nilai ini lebih besar dari satu karena melakukan pertukaran akan menghasilkan keuntungan. Jika kami menemukan Faktor Arbitrase sebesar 1.005 pada contoh sebelumnya, hal ini menunjukkan bahwa dengan mengikuti jalur pertukaran dari satu kripto ke kripto lainnya dan sebaliknya, kami dapat memperoleh 0.005 Bitcoin Cash (bernilai sekitar $3).

Peluang arbitrase datang dan pergi untuk kripto yang berbeda sepanjang hari dan dimungkinkan untuk memeriksa semua kombinasi beberapa koin tanpa menemukan Faktor Arbitrase yang jauh di atas satu. Namun, saya telah melihat Faktor Arbitrase di atas 1.01, yang menunjukkan bahwa pengembalian 1% dapat diperoleh dalam hitungan saat melalui pertukaran mata uang kripto yang sederhana.

Dengan memanfaatkan ketiga fungsi yang dijelaskan di atas, kami dapat membuat pemindai arbitrase kripto.

Arbitrase mata uang adalah metode perdagangan yang mapan dan berisiko rendah, namun pasar mata uang tradisional sangat efisien dan kompetitif. Peluang yang lebih besar ada dalam mata uang kripto dan beberapa alat Python sederhana dapat membantu memfasilitasi strategi tersebut. NetworkX dapat digunakan untuk membuat Grafik dan mencari peluang arbitrase dengan cepat.

Namun, masih ada tantangan yang harus diatasi. Pertama, biaya untuk memperdagangkan mata uang kripto bisa sangat tinggi. Ini berarti bahwa setiap ketidakseimbangan antar kripto harus signifikan agar dapat menghasilkan keuntungan. Pada saat yang sama, strategi ini akan menjadi paling efektif jika diotomatisasi dan diatur agar berjalan secara berkala atau sepanjang waktu. Nantikan artikel mendatang tentang penerapan strategi perdagangan kripto dengan instans AWS EC2 atau fungsi Lambda.

Lebih banyak konten di bahasa inggris.io

Source: https://python.plainenglish.io/crypto-arbitrage-with-networkx-and-python-638166e5a947?source=rssโ€”โ€”-8โ€”โ€”โ€”โ€”โ€”โ€“cryptocurrency

Stempel Waktu:

Lebih dari Medium