AIによる株価予測の試作

AI株価予測試作

ネットで見つかるディープラーニングによる株価予測の例を見ると、ニューラルネットワークにLSTM(Long Short-Term Memory)を採用している場合が多い。しかし、ここでは、トレンドの強さを学習して、株価の予測をする方式を考えてみた。【※ まだこのプログラムはテストしてありません】

・AIの予測で、買うか、売るか株トレードの参考にできるようにする。

・朝の寄り付きで、日経先物を成り行き注文して、引けで反対決済することを前提とする。

・売りか買いかは、夜間のNYの終値、ドル円、朝の寄り付き気配値等から、AIで予測する。

入力データ

日付
NYダウ
NYダウ トレンド
ドル円
ドル円 トレンド
ナスダック
ナスダック トレンド
ポンド円
ポンド円 トレンド
上海総合
上海総合 トレンド
日経寄り付き
日経終値(ナイト)
日経 0:マイナス終了 1:プラス終了

*トレンドは、過去5日間のデータから、プラス方向かマイナス方向かを数値化しする。-3~+3で試してみる。

モデル定義

プログラム

import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import np_utils
from keras.utils.visualize_util import plot
from sklearn.cross_validation import train_test_split

if __name__ == "__main__":
    # 1.学習データ読み込み
    dataset = np.loadtxt("test.csv",delimiter=",")   
    # 読み込みデータの1列目を削る
    #  ????
    X_train = dataset[:, 0:13]
    Y_train = dataset[:, 13]
    # 2.モデルの定義
    model = Sequential()
    model.add(Dense(20, input_dim=13, init='uniform', activation='relu'))
    model.add(Dense(13, init='uniform', activation='relu'))
    model.add(Dense(1, init='uniform', activation='sigmoid'))
    # 3.モデルのコンパイル
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    # 4.モデルの学習
    model.fit(X_train, Y_train, nb_epoch=150, batch_size=10)
    #  テストして  nb_epoch を調整して、制度を上げる
    # 5.当日のデータに対する予測
    X_today = [ NYダウ , , , , , 日経終値 ] # 当日のデータ:最終的には入力画面から入力
    predictions = np.round(model.predict(X_today))
    print(predictions)

AIの本

  この動画の中で、AIエンジニア向けの本が紹介されています。この動画は、エンジニアでなくても分かりやすい。 https://youtu.be/dNZ-JqEq7x4  

エンジニアとしては、この2冊をよく理解することが必須です。経験があるエンジニアが、この本を習得すれば本格的にAIの仕事が出来ると思います。この本を読む前に、このサイトの他の投稿をよく読んでからの方がいいかと思います。

注)①を読んで理解できてから②を読む