Bagaimana untuk membuat bot perdagangan anda sendiri

Penulis:Kebaikan, Dicipta: 2019-03-16 10:29:22, Dikemas kini: 2019-03-16 10:29:54

Pengantar

Saya sudah tentu bukan seorang pengaturcara yang hebat, tetapi menulis projek ini mengajar saya banyak (dan membuat saya sibuk).FMZ.COM, dan jika saya refactor kod python saya akan menggunakan model yang lebih berorientasikan objek.

Apa gunanya? Ia adalah bot arbitrase. Ini bermakna ia memperoleh wang dari perdagangan perbezaan antara harga pada dua (atau lebih) bursa. Sehingga kini ia adalah unidirectional dan hanya perdagangan antara Etherdelta dan Bittrex: mereka berkongsi kira-kira dua puluh pasangan et / token. Berikut adalah rajah untuk menggambarkan bagaimana ia berfungsi:imgPerkataan yang diikuti oleh kurung adalah transaksi ethereum yang memanggil panggilan fungsi kontrak pintar.

Kod

Saya boleh gunakanfmz.complatform editor python untuk membuat transaksi dan panggilan fungsi dan ia akan menjadi agak mudah. Saya memerlukan sesuatu yang lebih boleh dipercayai; transaksi yang gagal bermakna kehilangan wang. Setiap satu permintaan GET saya memerlukan jawapan, walaupun pakej TCP hilang atau pelayan web di hujung yang lain turun sementara. Oleh itu saya memutuskan untuk melaksanakan python sendiri etherscan API wrapper dan menggunakan pythereum untuk membuat transaksi dan etherscan untuk menerbitkannya. Saya juga menulis permintaan saya sendiri.

Ini adalah kod yang saya gunakan untuk mengkodkan jawapan API etherdelta json sebagai hexadecimal, rlp dikodkan, transaksi ethereum (bukan untuk orang yang lemah hati):img

Nilai hexadecimal mentah dalam penutupan di bahagian bawah adalah tanda tangan fungsi yang sepadan dengan setiap fungsi. Tanda tangan fungsi berasal dari keccak fungsi dan argumennya. Ia mesti dilampirkan ke parameter data transaksi diikuti oleh data yang membentuk argumen. Secara keseluruhan kod saya adalah kira-kira 400 baris panjang dan terkandung dalam 5 fail yang berbeza.

Hasilnya

Saya membuat beberapa grafik dari data yang saya log menggunakan pymatplotlib.img img img

Kesimpulan

Secara keseluruhan keseluruhan projek ini mengambil masa saya kira-kira dua minggu semasa masa lapang saya di sekolah dan ia adalah letupan di seluruh. saya telah mengambil rehat dari pengekodan kuat dan kini dalam proses merancang bot arbitrage v2. versi seterusnya akan merangkumi 86 pertukaran yang berbeza dan banyak pasangan dagangan.

Ke bulan!


Lebih lanjut