Tidak terlalu. Anda mungkin tidak akan kaya kecuali jika Anda bekerja sangat keras… Sebagus apa pun itu, Anda tidak dapat benar-benar memprediksi harga saham hanya berdasarkan ML, tetapi sekarang saya mendapat perhatian Anda!
Melanjutkan posting blog saya sebelumnya tentang betapa hebat dan mudahnya mengembangkan aplikasi berbasis web yang didukung oleh Cloudera Operational Database (COD), saya memulai sebuah proyek kecil untuk mengintegrasikan COD dengan pengalaman cloud CDP lainnya, Cloudera Machine Learning (CML).
Dalam demo kali ini saya akan mencoba memprediksi perilaku harga pembukaan saham berdasarkan data historisnya, artinya jika harga pembukaan saham akan naik atau turun. Saya bukan ilmuwan data, tetapi ada banyak contoh online tentang cara melakukannya (saya mengambil beberapa contoh kode, memperbaikinya, dan menyesuaikannya agar berfungsi dengan COD). Untuk tujuan ini, saya akan menggunakan algoritma LSTM (Long Short-term memory). RNN secara umum (jaringan saraf berulang) dan LSTM secara khusus bekerja sangat baik dengan data deret waktu
Untuk menghindari keraguan, kami tidak bermaksud menjadi pakar pasar saham, dan tidak ada dalam posting blog ini yang dapat dianggap sebagai nasihat keuangan dengan cara apa pun. Ini murni contoh bagaimana mengembangkan solusi menggunakan perangkat lunak Cloudera.
Komponen utama yang digunakan dalam demo ini:
- Cloudera Operational Database (COD), seperti yang disebutkan dalam posting saya sebelumnya, adalah solusi dbPaaS terkelola yang tersedia sebagai pengalaman di Cloudera Data Platform (CDP)
- CML dirancang untuk ilmuwan data dan insinyur ML, memungkinkan mereka membuat dan mengelola proyek ML dari kode hingga produksi. Fitur utama CML:
- Lingkungan Pengembangan untuk Ilmuwan Data, Terisolasi, Terkemas, dan Elastis
- Toolkit ML Produksi – Menerapkan, Melayani, Memantau, dan Tata Kelola model ML
- Penayangan Aplikasi – Membuat dan Melayani Aplikasi khusus untuk kasus penggunaan ML
- Aplikasi pra-paket untuk wawasan bagi pengguna bisnis
- Pembuatan dasbor dan aplikasi yang sederhana, seret dan lepas dengan Visualisasi Data Cloudera
- Aplikasi template sebagai starter kit untuk kasus penggunaan Anda
- Data Stok – untuk menarik data stok, saya menggunakan layanan alpha vantage (versi gratis). Pada dasarnya, ini adalah layanan yang memungkinkan Anda mendapatkan ringkasan harian untuk statistik saham (buka, tutup, rendah, volume tinggi)
Membangun aplikasi
Hal pertama yang perlu kita lakukan adalah membuat database di COD.
1. Masuk ke control plane Cloudera Data Platform Public Cloud
2. Pilih Database Operasional dan kemudian klik “Buat Database”
3. Pilih lingkungan Anda dan beri nama database Anda
4. Setelah database aktif dan berjalan, alihkan ke tab JDBC
5. Setel kata sandi beban kerja CDP Anda
6. Sekarang mari beralih ke CML – Kembali ke bidang kontrol dan klik “Pembelajaran mesin” lalu “Sediakan ruang kerja” Beri nama ruang kerja Anda dan pilih lingkungan yang ingin Anda gunakan
7. Setelah ruang kerja disediakan, buat proyek baru, beri nama dan gunakan git untuk kode sumbernya. Semua kode sumber dapat ditemukan di sini.
8. Setelah proyek dibuat, Anda akan melihat semua file di direktori proyek:
9. Sedikit logistik tambahan – kita perlu membuat variabel lingkungan untuk proyek, yang akan menyimpan akses ke database kita, dan Kunci API alpha vantage. Untuk melakukan ini, buka tab “pengaturan proyek -> lanjutan”
10. Sekarang, mari kita mulai menjalankan proyek – klik “sesi baru”, beri nama sesi Anda, pilih “python 3” dan profil sumber daya
11. Baik di terminal atau CLI di bagian bawah, instal semua pustaka yang diperlukan dengan menjalankan “pip3 install -r requirements.txt”
12. Langkah selanjutnya adalah membuat tabel kita dimana data akan disimpan di database kita. untuk itu, jalankan skrip penyiapan:
13. Sekarang, mari kita mulai menguji model kita! Buka runner.py dan jalankan. Pada dasarnya, skrip ini melakukan hal berikut:
a) Mendapatkan data stok harian dari alpha vantage
b) Transformasi data dasar
c) Menyimpan data di Cloudera Operational Database
d) Jalankan model dan buat file model (tech_ind_model.py)
e) Jalankan prediksi selama 120 hari terakhir
f) Hitung penghasilan yang diprediksi jika kita membeli dan menjual saham dengan harga yang tepat
14. Saat program sedang berjalan, Anda akan melihat bahwa program mengumpulkan data untuk setiap saham, mengunggahnya ke COD, melakukan prediksi, dan memplot grafik yang menampilkan harga prediksi vs harga saat ini. Meskipun bagan menunjukkan bahwa tren dalam banyak kasus sangat mirip, bahkan sedikit perbedaan dapat memengaruhi pendapatan total dari rekomendasi tersebut. Keluaran dari proses tersebut mencakup informasi yang disebutkan di bawah ini untuk setiap stok:
a) rekomendasi:simpan/beli/jual
b) prediksi terakhir:prediksi harga terakhir
c) harga:harga terakhir
d) prediksi:prediksi harga pembukaan berikutnya
e) sinyal:tinggi/rendah – apakah rekomendasinya kuat/tidak
15. Berdasarkan terakhir kali saya menjalankan program, saya akan kehilangan uang di sebagian besar saham berdasarkan rekomendasi, tetapi pada saat yang sama, ada beberapa yang memperkirakan keuntungan hingga 20%!!!
Sekarang, perdagangan algoritmik secara umum dan prediksi harga saham adalah topik yang telah ada selama bertahun-tahun. Untuk mengoperasionalkan kasus penggunaan machine learning seperti ini, Anda memerlukan alat canggih yang mudah digunakan, skalabel, dan siap untuk perusahaan.
Cloudera Operational Database menyediakan latensi sub-detik untuk baca/tulis acak dan persis seperti yang dibutuhkan untuk aplikasi waktu nyata seperti yang digunakan dalam industri jasa keuangan.
Untuk memulai CML dan COD…
Semoga bermanfaat,
Selamat membuat kode!!