Saya ingin menggunakan JST untuk mengotomatisasi mata uang perdagangan, lebih disukai USD / EUR atau USD / GBP. Saya tahu ini sulit dan mungkin tidak langsung. Saya sudah membaca beberapa makalah dan melakukan beberapa percobaan tetapi tidak berhasil. Saya ingin mendapatkan saran dari AHLI untuk membuat ini berhasil.
Inilah yang saya lakukan sejauh ini:
- Saya mendapat centang pada data kutu untuk bulan Juli 2013. Ini memiliki volume bid / ask / bid / volume ask.
- Ekstrak semua kutu untuk jangka waktu 12: 00-14: 00 untuk semua hari.
- Dari data ini, dibuat kumpulan data di mana setiap entri terdiri dari n nilai penawaran secara berurutan.
- Menggunakan data itu untuk melatih JST dengan input n-1 dan hasilnya adalah nilai penawaran ke-n yang diperkirakan.
- JST memiliki n-1 input neuron, (n-1) * 2 + 1 tersembunyi dan 1 neuron output. Lapisan input memiliki TF linier, tersembunyi memiliki TF log dan output memiliki TF linier.
- Melatih jaringan dengan back propagation dengan n-125 pertama dan kemudian 10.
Untuk kedua n, MSE tidak turun di bawah 0,5 dan tetap pada nilai itu selama pelatihan penuh. Dengan asumsi bahwa ini bisa disebabkan oleh rangkaian waktu yang benar-benar acak, saya menggunakan paket R untuk menemukan autokorelasi parsial pada kumpulan data (pacf). Ini memberikan nilai bukan nol untuk 2 dan 3 lag saja.
Pertanyaan 1: Apa artinya ini tepatnya?
Kemudian saya menggunakan eksponen hurst untuk mengevaluasi keacakan. Dalam R, hurst (nilai) menunjukkan nilai di atas 0,9.
Pertanyaan 2: Seharusnya hampir acak. Haruskah nilainya mendekati 0,5?
Saya mengulangi pelatihan JST dengan n = 3. JST dilatih dan mampu memperoleh nilai MSE yang cukup rendah. Namun, output yang dihitung dari JST ini tidak jauh berbeda dari nilai penawaran (n-1). Sepertinya ANN hanya mengambil tawaran terakhir sebagai tawaran berikutnya! Saya mencoba struktur jaringan yang berbeda (semua persepsi multilayer), parameter pelatihan yang berbeda, dll, tetapi hasilnya sama.
Pertanyaan 3: Bagaimana saya bisa meningkatkan akurasi? Apakah ada metode pelatihan lain selain backpropagation?
sumber
Jawaban:
Hasil yang Anda lihat bukan merupakan produk sampingan dari produk pelatihan Anda, tetapi itu
neural nets
bukan pilihan yang bagus untuk tugas ini.Neural nets
secara efektif merupakan sarana untuk membuat fungsi non-linear orde tinggi dengan menyusun sejumlah fungsi sederhana. Ini sering kali merupakan hal yang sangat baik, karena memungkinkan jaring saraf cocok dengan pola yang sangat kompleks.Namun, di bursa saham, pola apa pun yang rumit, ketika diperdagangkan akan cepat membusuk. Mendeteksi pola yang rumit umumnya tidak akan menghasilkan hasil yang bermanfaat, karena biasanya merupakan pola yang kompleks dalam jangka pendek. Selain itu, tergantung pada metrik yang Anda pilih, ada sejumlah cara untuk berkinerja baik yang sebenarnya tidak akan membuahkan hasil dalam berinvestasi (seperti hanya memprediksi nilai terakhir dalam contoh Anda).
Selain itu pasar saham sangat kacau yang dapat mengakibatkan
neural net
overfitting. Ini berarti bahwa pola yang dipelajari akan menggeneralisasi dengan buruk. Sesuatu di sepanjang garis hanya melihat penurunan stok selama sehari dan secara seragam memutuskan bahwa stok akan selalu berkurang hanya karena dilihat dalam jangka waktu yang relatif singkat. Alih-alih teknik menyukairidge
danrobust regression
, yang akan mengidentifikasi pola yang lebih umum, kurang kompleks, lebih baik.Pemenang kompetisi Kaggle serupa digunakan
robust regression
karena alasan ini. Anda mungkin akan melihat hasil yang lebih baik jika Anda beralih ke model pembelajaran yang dangkal yang akan menemukan fungsi tatanan polinomial yang lebih rendah, di atas fungsi kompleks yang dalam dari jaringan saraf.sumber
Coba jaringan saraf berulang, model yang cocok untuk data deret waktu. Mereka terkenal sulit untuk dilatih, tetapi tampaknya berkinerja baik ketika dilatih dengan benar: http://cs229.stanford.edu/proj2012/BernalFokPidaparthi-FinancialMarketTimeSeriesPredictionwithRecurrentNeural.pdf
sumber