記事一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FX(外国為替証拠金取引)をディープラーニングで予測してみる


Googleが発表した「Machine Learning with Financial Time Series Data」を参考に今回は外国為替証拠金取引(以下FX)をディープラーニングで予測してみます。
指定した日数前から前日までの終値からその日の終値を予測します。




開発環境

OS:Ubuntu14.04
CPU:Core i7-4790K
GPU:AMD Radeon R9 M295X 4GB
使用したもの:TensorFlow 0.7.1, Python 2.7.8



学習データ

今回は2007年4月2日〜の約10年分の学習データを用意しました。
中身は下記のようにデータはCSVファイル形式で保存します。




実装コード

下記が実装コードになります。
コード内では大きく分けて「データセットの作成」「学習」「テスト」の3つを実行しています。




データセットの作成

学習に必要なデータセットを作成します。
実装コード中の def create_dataset(): で実行しています。


必要になるデータセットは4つで
・training_predictors
・training_classes
・test_predictors
・test_classes
を用意する。

predictors = log_e(その日の終値 / 前日の終値)
classesは前日より終値が上昇していればupに1.0を、下降していればdownに1.0が付与されます。

データ数は
トレーニングデータ数 = 全体のデータ数 * 0.8
テストデータ数 = 全体のデータ数 * 0.2
としています。



学習

学習は def train() で実行しています。

logデータを出力させる以外はMachine Learning with Financial Time Series Dataに特に手を加えておりませんので、解説はこちらをご覧ください。



評価

学習させた結果を評価します。
評価は def tf_confusion_metrics() で実行されます。

こちらもMachine Learning with Financial Time Series Dataと特に変わりません。



米ドル/円(USD/JPY)を学習、予測させてみる

今回は学習のイテレーション数を30,000回とし、1回に学習させる日数を50日分としました。
そして先ほど用意した10年分の米ドル/円を学習、評価させた結果がこちら。

Screenshot from 2016-12-12 12:05:47

微妙すぎますね・・・。

学習途中の精度をプロットしたのがこちら。
your_chart_name.png

イテレーション数が5000超えたあたりからほぼ横ばいで最終的な精度もあまり上がりませんでした。



まとめ

今回は精度が6割弱と期待したほどの精度は出ませんでした。
特定の通過ペア(今回は米ドル/円)を予測する場合でも、他の通貨ペアも学習させたほうが良いのでしょうか。
それとも単純に10年分という学習データ数が少なかったのか。
次回はいろいろなパラメーターをいじってみるのと、予測する通過ペア以外も学習させることにより精度に影響するかどうかを見て行きたいと思います。

その他ご意見、誤字脱字等ありましたらコメントでよろしくお願い致します。

スポンサーサイト

コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

コメントの投稿

非公開コメント

プロフィール

むらりん

Author:むらりん
学部3年
ピカチュウLOVE

「将来絶対ハゲるよねw」とよく言われます。

累計閲覧者数

最新の人工知能関連のツイート

メールフォーム

名前:
メール:
件名:
本文:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。