經過一個多月的努力,終于完成了一個簡單的人工智能來判斷第二日股票的漲跌,用的是一個簡單的全連接神經網絡。Tensorflow的架構,簡單說一下實現算法的業務邏輯。
一、數據處理。
取出某個股票的400個交易日內的歷史記錄。對400個交易日內進行各個指標的運算,將運算結果記錄數據庫中。獲取了6個常見的指標,比如說KDJ,MACD等。
把400個指標記錄分別拆分成訓練集和測試集,如下:
隨機拆分的比例大約:9:1
二、訓練網絡
將這些數據放入到神經網絡中進行訓練,訓練的正確率達到90%就可以。
然后用測試集進行驗證。
由于每個股票都會有單獨的特點,因此各個股票都會有一個獨立的擬合模型。
網絡結構代碼如下:
1. 定義輸入層函數:
2. 定義神經網絡結構
3. 編譯網絡
4. 對網絡進行訓練
這個訓練指標感覺一般,產生了一定的過擬合,所以說各個股票的訓練模型在使用的過程中還需要調整。
5. 使用測試集對結果驗證
在這里測試集的正確率是95.34%, 還是比較高的。
三、結果處理
由于是股票投資,對結果的處理,采用了一個分類處理的方式,將神經網絡的處理結果分成3類:-10%至-3%, -3%至3%, 3%至10%。
簡單來說就是,大跌情況,橫盤震蕩情況,大漲情況。三種情況對應三個人工智能判斷的結果,來指導第二天股票的買賣。如圖:
初步的想法是,實盤過程中震蕩結果必然是最多的,但對多只股票進行運算,比如10-20只,當某個股票出現大漲的指標后,第二天及時買入,第三天立即賣出。
四、業務部署
訓練出的模型需要與各個股票對應,股票也許多只,因此在模型的部署上要求會比較高,否則會帶來潛在的大量工作。首先是初次任務,當股票被納入到股票池中后,獲取其400日之內的全部歷史數據計算入庫和處理,同時到處用于神經網絡的訓練集和測試集。盤后的定時任務,通過定時任務將當日的股票數據進行加載和運算。
時間倉促的緣故,神經網絡的訓練過程沒有與業務系統結合,需要手動訓練。但使用工作流的部署方式,讓效率有所提高。將模型推送到git會自動的將線上的模型庫更新。
五、后期處理
剛剛寫完的一種對股票漲停的判斷,由于在量化交易過程中,會存在測不準原理。這個指標方式還是需要時間的檢驗,后期會將每周新產生的數據納入到機器學習的范疇中。達到自動學習自動提高正確率。
-
神經網絡
+關注
關注
42文章
4773瀏覽量
100888 -
算法
+關注
關注
23文章
4620瀏覽量
93042 -
人工智能
+關注
關注
1792文章
47409瀏覽量
238916
發布評論請先 登錄
相關推薦
評論