利用AI炒股開掛!這屆程序員真會玩
用深度學(xué)習(xí)預(yù)測股票價格想過去有些不明覺厲,但已經(jīng)不是什么新鮮事了,今天猿妹和大家分享一個股票預(yù)測模型,收集了機器學(xué)習(xí)和股票預(yù)測的深度學(xué)習(xí)模型,包括交易機器人和(股票)模擬。
想要準(zhǔn)確預(yù)測股票市場是一項復(fù)雜的任務(wù),因為有數(shù)百萬個因素和先決條件會影響股票的走勢,所以這個模型需要盡可能多的捕捉到這些先決條件,同時還需要作出幾個重要的先決假設(shè):1)市場不是100%隨機的,2)歷史重復(fù),3)市場遵循人們的理性行為,4)市場是“非常好”。
創(chuàng)建者以高盛公司為例子,預(yù)測高盛的股票走勢,使用 2010 年 1 月 1 日至 2018 年 12 月 31 日的日收盤價作為訓(xùn)練(七年)和測試(兩年)數(shù)據(jù)。
為了創(chuàng)建所有神經(jīng)網(wǎng)絡(luò),創(chuàng)建者使用MXNet及其高級API - Gluon,并在多個GPU上進(jìn)行訓(xùn)練。整體架構(gòu)如下:
GitHub上還給出了詳細(xì)的教程介紹每一個步驟,創(chuàng)建者表示最困難的部分是GAN,想要成功訓(xùn)練GAN最難的部分就是獲得正確的超參數(shù)集。出于這個原因,創(chuàng)建者使用貝葉斯優(yōu)化(帶有高斯過程的貝葉斯優(yōu)化)和強化學(xué)習(xí)(RL)來決定何時以及如何改變GAN的超參數(shù)。在創(chuàng)建強化學(xué)習(xí)時,也利用到一些技術(shù),例如Rainbow和PPO。
除了股票的歷史交易數(shù)據(jù)和技術(shù)指標(biāo),創(chuàng)建者還NLP 中的 BERT 來創(chuàng)建情緒分析模型(作為基本面分析的來源),傅立葉變換用于提取整體趨勢方向......只為捕獲盡可能多的關(guān)于股票的信息,模式,依賴關(guān)系等。眾所周知,數(shù)據(jù)越多越好。
集體過程我們就不過多贅述了,直接看結(jié)果:
繪制訓(xùn)練之后的結(jié)果
繪制 50 次訓(xùn)練后的結(jié)果
繪制 200 次訓(xùn)練后的結(jié)果
RL 運行了 10 eposide ,本文定義一個 eposide 是 GAN 完整訓(xùn)練 200 次后,下圖是得到的最終的結(jié)果
對整個教程感興趣的,可以到GitHub一探究竟。至于準(zhǔn)確率如何,試過就知道了
目前,該項目已經(jīng)獲得 863 個Star,378 個Fork(GitHub地址:https://github.com/borisbanushev/stockpredictionai)