今回は、コーヒーブレイクネタと、ネクストアクションを書き留めます。
コーヒーブレイク
そもそも作りたいシステムはFXのデータを使ったAIで自動売買できるシステム。
世の中にはその手のシステムが増えてきている、、、。
少しでも自分の環境を構築する上で参考になるものを調べていたら、こんなものを発見した。
https://qiita.com/jiji_platform/items/268377c542706e6f44b1
これはとても素晴らしい!!
FXのデータだけではなく、他の経済情報も考慮に入れたAIシステム。
しかも、オープンソース!!
今回はここから少し学びました。
経済情報ってどこから入手するものなの?
一般的にはあらゆる経済情報が提供されているところから、スクレイピングして取得するの主流のようですが、なんと素晴らしいことに、そういう情報をAPIで提供してくれるサービスがあった。
Quandl(https://www.quandl.com/)
このサイトでは無料で参照できる情報と、有料となる情報がある。
有料の場合は、各情報に応じて、1ヶ月~1年ぐらいで参照ライセンスが付与されるようです。
にしても、無料だけでも十分な量を提供されているようなので、必要な部分はコスト見合いで購入するのもありですね。
Alphavantage(https://www.alphavantage.co/)
こちらは無料で為替情報へのAPIが提供されているようです。
ここは、主に下記の情報に特化しているようです。FXや仮想通貨、テクニカルインジケータをリアルタイムで提供してくれます。
- Free APIs in JSON and CSV formats
- Realtime and historical stock data
- FX and cryptocurrency feeds
- 50+ technical indicators
その他
https://blog.rapidapi.com/best-finance-apis/
こちらのサイトにも色々掲載されていた。
気になったのでφ(..)メモメモ
学習データの保存
FXのデータを使うのであれば、一度、モデルを作って終わり、、、とは行きません。
そんな中で、どうやって新しいデータを学習していくんだ?
と言う疑問がよぎりました。あまりその辺を明示的に書いている記事が見つからず、、、。
先程のJijiの中でヒントがありました。
Jijiの先にMongoDBと、TensorFlowへ接続し、そのTensorflowの先には、、、「.ckpt」の文字が、、、。
これをGoogle先生に聞いてみた。
.ckpt
Tensorflow用の学習モデルをCheckpoint(.ckpt)ファイルに保存するようです。
後述の学習モデルの保存では、Kerasのものですが、Tensorflowの場合は、「Save and Restore」で保存するようですね。
学習モデルと、結果を保存するのは
https://m0t0k1ch1st0ry.com/blog/2016/07/17/keras/
では、実際に学習モデルと結果を保存するにはどうするのか?
model_json_str = model.to_json()
open('mnist_mlp_model.json', 'w').write(model_json_str)
model.save_weights('mnist_mlp_weights.h5');
これで保存
# モデルを読み込む
model = model_from_json(open('mnist_mlp_model.json').read())
# 学習結果を読み込む
model.load_weights('mnist_mlp_weights.h5')
利用するときには読み込む必要があるようようだ。
以前、 https://qiita.com/yanaitti/items/f28951b8231bd8596900 の記事で取り上げた例では参考にしたページの記載では下記の通りだった。
# モデルを保存
model.save('model.h5') # 追加部分
# モデルを読み込む
model = load_model(os.path.abspath(os.path.dirname(__file__)) + '/model.h5')
model.save()
これはモデルの重みと構成を両方保存する場合に利用し、load()により両方が読み出されます。
model.save_weights()
これはモデルの重みだけを保存する場合に利用し、JSONファイルからモデルを再構築する為の追加コードが必要になるとのこと。
なんか、着実に進んでいるのを実感している、、、が、ゴールはどこなのかww