Membuat bot perdagangan menggunakan pembelajaran mesin dalam analisis deret waktu

Ini bukan artikel teknis, tidak ada analisis rinci tentang metode dan teori. Hanya saja entah bagaimana saya terbawa oleh pembelajaran mesin dan, seperti banyak orang yang baru dengan topik ini, saya memutuskan untuk membuat bot perdagangan. Namun, ini telah berkembang menjadi lebih dari sekedar proyek pelatihan. Itulah yang ingin saya sampaikan tentang semua ini.

Sedikit Tentang Pembelajaran Mesin


Pembelajaran mesin (Machine Learning; selanjutnya disebut MO), dalam satu atau lain cara, merupakan bagian integral dari industri Kecerdasan Buatan (Intelegensi Buatan; selanjutnya AI), ilmu pengetahuan dan teknologi, yang memungkinkan sistem komputer "cerdas" untuk mensimulasikan perilaku manusia. Industri ini juga mencakup konsep Deep Learning, yang memengaruhi jaringan saraf dan meniru pemikiran manusia.

Disiplin akademis AI dipelajari sebagai sebuah mesin, yaitu komputer, memecahkan masalah yang hanya tunduk pada pikiran manusia. Ini bisa berupa tugas seperti memahami teks yang dibaca, atau menentukan gerakan dalam permainan catur, atau memecahkan teka-teki. MO adalah mengembangkan algoritma yang membantu komputer menarik kesimpulan berdasarkan informasi yang diterima. Bahan bakar untuk semua hal dalam hal ini adalah data.

gambar
(c) Oracle

Di era informasi, informasi dan data adalah yang paling berharga. Semua yang kami lakukan, offline atau online, menghasilkan data baru: apakah itu teks, audio, data video, pengukuran sensorik, gadget "pintar" dan pertukaran data di antara mereka. Peluang untuk mengumpulkan data besar dan baru meningkat pesat karena ketersediaan perangkat perangkat keras, pengembangan infrastruktur cloud dan, karena penggunaan besar-besaran teknologi ini, penurunan biaya. Pengetahuan, atau informasi, adalah kekuatan - aksioma itu benar tetapi ada "tetapi".

Kepemilikan sejumlah besar informasi belum menguntungkan pemiliknya. Tetapi melalui algoritma dan metode MO itulah Big Data mulai masuk akal dan bermanfaat. Lebih khusus, sistem MO memperhatikan pola dan membangun kesimpulan berdasarkan banyak faktor dalam sistem data, tanpa diprogram untuk itu.

Aplikasi utama MO saat ini adalah pengenalan objek, visi komputer, analisis data, kontrol kualitas (pemantauan) dan analitik prediktif.

Jadi, kita tahu bahwa pembelajaran mesin bergantung pada algoritma pemrosesan data dan data itu sendiri. Tentang metode MO, Anda dapat mempelajari serangkaian artikel terpisah. Menggambarkan mereka akan sebanding dengan daftar kemungkinan teknologi dalam pengembangan web dan aplikasinya jika masing-masing teknologi ini memiliki kelebihan dan kekurangan.

Perlu dicatat bahwa seiring waktu, algoritma dan metode pemrosesan data meningkat, dan data menjadi lebih dan lebih, dengan demikian kualitas pemrosesan data menjadi lebih baik.

Dari tipe data, saya ingin memperhatikan seri waktu pada contoh proyek pribadi - perdagangan cryptocurrency otomatis.

Analisis Rangkaian Waktu


Rangkaian waktu adalah jenis data yang dapat direpresentasikan sebagai urutan pengukuran yang dipesan pada instans waktu nonrandom.

Ada dua tujuan utama dari analisis deret waktu:
menentukan sifat rangkaian dan peramalan (memprediksi nilai masa depan dari deret waktu dari nilai sekarang dan masa lalu). Ini melibatkan identifikasi dan deskripsi model seri, dan interpretasi data, yang memungkinkan kita untuk mendapatkan nilai seri masa depan.

Menggunakan metode MO untuk data tersebut, kami dapat menemukan pola yang lebih dalam pada data tersebut. Sebagai hasilnya, kami mendapatkan perkiraan nilai-nilai masa depan yang lebih β€œcerdas”.

Berbeda dengan analisis sampel data acak, analisis deret waktu didasarkan pada asumsi bahwa nilai sekuensial dalam file data diamati secara berkala. Dalam metode lain, kita tidak penting dan sering tidak tertarik mengaitkan pengamatan dengan waktu.

Dengan kata lain, untuk analisis penting bahwa peristiwa X terjadi pada waktu Y. Misalnya, nilai tukar, kita penting dalam pemilihan, di mana harga terikat pada titik waktu tertentu. Jika Anda mengacaukan urutan tanggal dalam serangkaian harga tanggal, maka itu akan menjadi tidak berarti.

Misalnya, menggunakan deret waktu finansial, algoritme MO dapat membuat perkiraan tentang pertumbuhan atau penurunan profitabilitas. Saat memproses file audio, di mana deret waktu akan diekspresikan oleh perubahan nada dalam kaitannya dengan waktu, Anda dapat menganalisis makna ucapan. Dengan data meteorologi, ramalan cuaca yang kompleks dapat diturunkan melalui MO dan seri waktu.

Jika algoritme MO menganalisis, katakanlah, gambar segel, maka kami tidak peduli dengan waktu, atau bahkan urutan pengambilan gambar.

Menggunakan cryptocurrency sebagai contoh


Dalam proyek saya, saya mencoba menjawab pertanyaan apakah mungkin untuk membangun sistem perdagangan sepenuhnya otomatis berdasarkan metode pembelajaran mesin. Untuk melakukan ini, saya menemukan dan mengumpulkan data historis tentang harga bitcoin, volume transaksi, serta pesanan ditempatkan dan ditarik.

Setelah beberapa waktu, melalui coba-coba, saya sampai pada pemahaman tertentu tentang bagaimana data ini harus ditafsirkan, arsitektur jaringan saraf mana yang akan digunakan, cara memberi label data, dll. Secara khusus, pelatihan dilakukan dengan rincian 10 detik, dan harga di masa depan digunakan sebagai nilai yang dihasilkan.

Sekarang algoritma menggunakan beberapa model yang dilatih pada waktu yang berbeda, karena Saya terus-menerus meningkatkan algoritma pembelajaran dan menambahkan data yang dikumpulkan baru ke dalamnya. Untuk implementasi, bahasa pemrograman Python digunakan dengan pustaka Keras, Scipy, Pandas.

Skrip untuk menjalankan operasi perdagangan menempatkan pesanan pada platform perdagangan Bitmex setiap saat. Ketika sinyal muncul untuk membuka posisi dan menyelesaikan transaksi yang relevan, skrip akan menunggu sampai harga mencapai tingkat Ambil Untung atau Hentikan Kerugian, atau sampai transaksi berakhir (Waktu Untuk Hidup).


File log utama yang menampilkan pemrosesan data waktu-nyata

Algoritma pemrosesan data bergantung pada analisis data teknis, riwayat perdagangan, pesanan sebelumnya, pesanan, dan berita yang terkait dengan cryptocurrency (melalui pemrosesan bahasa alami, atau Natural Language Processing - NLP).

Metrik keberhasilan utama adalah akurasi berdasarkan jumlah pesanan Take profit dalam kaitannya dengan jumlah total pesanan. Secara total, perkiraan tersebut dianggap berhasil ketika pesanan Take Profit tercapai, sementara Stop Loss dan Time to Live diakui oleh model sebagai tidak berhasil.

Akurasi = (Jumlah pesanan jenis Ambil untung) / (Jumlah total pesanan)

Tawar-menawar dianggap menguntungkan ketika akurasi 67% tercapai.
BulanKetepatan
Januari 202072%
Februari 202070%
Maret 202060%
April 202070%

Di bawah ini adalah transaksi yang disajikan secara visual yang dibuat menggunakan solusi perangkat lunak tersebut.


Segitiga hijau adalah transaksi yang berhasil (Ambil untung tercapai), segitiga merah tidak berhasil (Stop loss, Time to Live). Segitiga mencari atas adalah penawaran beli, segitiga melihat ke bawah adalah penawaran jual.

Dalam pengawasan


Perdagangan otomatis adalah salah satu aplikasi analisis deret waktu yang paling jelas. Jika kita berbicara tentang bisnis, maka meramalkan berbagai indikator berdasarkan data yang dikumpulkan dapat menjadi sangat penting. Berdasarkan perkiraan tersebut, keputusan bisnis penting sekarang dapat dibuat, dan di masa depan volume keputusan yang dibuat secara otomatis hanya akan tumbuh.

Melakukan perhitungan seperti itu adalah proses yang cukup intensif sumber daya. Untungnya, daya komputasi sistem komputer terus meningkat. Selain itu, cabang ilmu komputer modern yang mempelajari AI bertujuan untuk menciptakan algoritma yang paling efektif menggunakan sumber daya komputasi yang tersedia untuk mengidentifikasi pola dalam akumulasi data.

Penurunan dan pembangunan prakiraan tidak mungkin dilakukan tanpa menggunakan deret waktu. Jenis data inilah yang mendasari ramalan yang membantu eksekutif membuat keputusan yang vital bagi bisnis. Tidak diragukan lagi, analisis deret waktu dan pemrosesan mereka oleh algoritma MO adalah bagian integral dari proses bisnis masa depan.

All Articles