Agen Perdagangan berbasis Pembelajaran Penguatan Mendalam untuk Bitcoin menggunakan Jaringan DeepSense untuk perkiraan fungsi Q.
Untuk detail lengkap tentang kumpulan data, prapemrosesan, arsitektur jaringan, dan implementasi, lihat Wiki repositori ini.
Untuk menyiapkan mesin virtual ubuntu dengan semua dependensi untuk menjalankan kode, lihat assets/vm
.
Tarik gambar buruh pelabuhan bawaan langsung dari hub buruh pelabuhan dan jalankan sebagai
docker pull samre12/deep-trading-agent:latest
docker run -p 6006:6006 -it samre12/deep-trading-agent:latest
ATAU
Bangun image buruh pelabuhan secara lokal dengan menjalankan perintah dan menjalankan image sebagai
docker build -t deep-trading-agent .
docker run -p 6006:6006 -it deep-trading-agent
Ini akan menyiapkan repositori untuk melatih agen dan
pasang direktori saat ini ke /deep-trading-agent
di dalam wadah
selama pembuatan gambar, riwayat transaksi terbaru dari bursa ditarik dan diambil sampelnya untuk membuat kumpulan data harga Bitcoin skala per menit. Kumpulan data ini ditempatkan di /deep-trading-agent/data/btc.csv
untuk memulai pelatihan agen, tentukan parameter yang sesuai dalam file konfigurasi (contoh file konfigurasi disediakan di /deep-trading-agent/code/config/config.cfg
) dan jalankan kode menggunakan /deep-trading-agent/code/main.py
pelatihan mendukung logging dan pemantauan melalui Tensorboard
vim
dan screen
dipasang di container untuk mengedit file konfigurasi dan menjalankan tensorboard
ikat port 6006 kontainer ke 6006 mesin host untuk memantau pelatihan menggunakan Tensorboard
Tolong berikan repositori ini untuk mendukung proyek ini?.
Preprocessor
terinspirasi oleh Deep Q-Trading di mana mereka memecahkan masalah perdagangan yang disederhanakan untuk satu aset.
Untuk setiap unit perdagangan, hanya satu dari tiga tindakan: netral(1), panjang(2) dan pendek(3) diperbolehkan dan hadiah diperoleh tergantung pada posisi agen saat ini. Agen Deep Q-Learning dilatih untuk memaksimalkan total akumulasi hadiah.
Model Deep Q-Trading saat ini dimodifikasi dengan menggunakan arsitektur Deep Sense untuk perkiraan fungsi Q.
Seri Bitcoin per menit diperoleh dengan memodifikasi prosedur yang disebutkan dalam repositori ini. Transaksi di bursa Coinbase diambil sampelnya untuk menghasilkan rangkaian harga Bitcoin.
Lihat assets/dataset
untuk mengunduh kumpulan data.
Pemrosesan Awal Dasar
Abaikan sepenuhnya nilai yang hilang dan hapus nilai tersebut dari kumpulan data dan kumpulkan blok nilai berkelanjutan menggunakan stempel waktu harga.
Semua akumulasi blok dengan jumlah stempel waktu lebih kecil dari gabungan panjang riwayat status dan horizon agen kemudian disaring karena tidak dapat digunakan untuk pelatihan agen.
Dalam implementasi saat ini, harga Bitcoin 3 jam (180 menit) per menit terakhir digunakan untuk menghasilkan representasi keadaan agen saat ini.
Dengan kumpulan data yang ada (pada saat penulisan), berikut adalah log yang dihasilkan saat melakukan pra-pemrosesan kumpulan data:
INFO:root:Number of blocks of continuous prices found are 58863
INFO:root:Number of usable blocks obtained from the dataset are 887
INFO:root:Number of distinct episodes for the current configuration are 558471
Pemrosesan Awal Tingkat Lanjut
Proses nilai yang hilang dan gabungkan blok yang lebih kecil untuk meningkatkan ukuran blok harga berkelanjutan.
Teknik standar dalam literatur untuk mengisi nilai yang hilang dengan cara yang tidak terlalu mempengaruhi performa model adalah menggunakan pengisian eksponensial tanpa peluruhan.
(Untuk dilaksanakan)
Tensorflow versi "1.1.0" digunakan untuk implementasi jaringan Deep Sense .
Implementasinya diadaptasi dari repositori Github ini dengan beberapa penyederhanaan dalam arsitektur jaringan untuk menggabungkan pembelajaran pada satu rangkaian waktu data Bitcoin.
Implementasi dan prapemrosesan terinspirasi dari postingan Medium ini. Implementasi sebenarnya dari Deep Q Network diadaptasi dari DQN-tensorflow.