dogwood008の開発メモ!

最近のマイブームは機械学習, Ruby on Rails。中でも機械学習を使った金融商品の自動取引に興味があります。

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その3

現在の問題点その2

2010年9月3日のデータは23:00:00迄しかなく、23:01:00を読み出そうとした時にエラーが発生している。適切にスキップする処理が必要か。

現在の問題点その2に対する解

その日時におけるデータが存在しなければ、その直前のデータを参照すれば良い。つまり、 23:01:00 の代わりに 23:00:00 を返せばこのエラーは出なくなる。与えた日時に直近でデータが存在する過去の日時とその時の価格のセットを返すメソッド get_last_exist_datetime_recursively() を作成した。

2010年9月3日は平日(金曜日)、また米国の祝日でもなく、夏時間の切り替え日でもなかった。なぜデータが欠損しているかはわからない。元データを見るとこのまま土日へ突入したようである。

2005-09-02 22:57:00,109.63,109.64,109.63,109.63,6.0
2005-09-02 22:58:00,109.64,109.65,109.63,109.63,8.0
2005-09-02 22:59:00,109.63,109.63,109.63,109.63,2.0
2005-09-05 00:02:00,109.63,109.63,109.63,109.63,2.1
2005-09-05 00:09:00,109.7,109.7,109.7,109.7,2.0
2005-09-05 00:11:00,109.69,109.69,109.69,109.69,2.0
2005-09-05 00:14:00,109.7,109.74,109.69,109.69,5.0
2005-09-05 00:16:00,109.7,109.71,109.7,109.71,3.0
2005-09-05 00:17:00,109.7,109.71,109.7,109.7,4.0
2005-09-05 00:18:00,109.71,109.71,109.7,109.7,3.0
2005-09-05 00:20:00,109.71,109.71,109.7,109.7,5.0

一つ心配事は、土日等休場日も学習すべきかどうかである。おそらく、48時間全く値動きがないことを学習しても仕方ないので、これは飛ばして良いと思う。問題はその次の数分の欠測である。欠測の間は値動き無しとして学習するのが良いのか、純粋に経過時間(分)で学習するのが良いのかは、明確な答えを持っていない。一旦、閾値までの間値動きがなければ、次の値動きまでスキップするようにしようと思う。

github.com

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その2

解決した内容

現在の問題点その1

h = HistData('2010/09') として、2010年の9月分を学習用に与えているが、ログを見る限り2010年9月1日の05:00:00迄しか学習していない?

問題点その1に対する解

nb_max_episode_steps = None にする。これが各エピソードにおけるステップ数の上限になっていた。

2010-09-01T05:00:00.000000+0000 で終了するのは、 60 min * 5 hours = 300 steps で上限に達していたからだった。

まだ問題がもう一つあるので、引き続き修正する。

github.com

# before
history = dqn.fit(env, nb_steps=50000, visualize=False, verbose=2, nb_max_episode_steps=300)

# after
history = dqn.fit(env, nb_steps=50000, visualize=False, verbose=2, nb_max_episode_steps=None)

170322 トレンドニュース

DeepLearning系ライブラリ、Kerasがあまりにも便利だったので使い方メモ - プロクラシスト

www.procrasist.com

TensorFlowを使った為替のトレードシステムを作るチュートリアル ~システムのセットアップからトレードまで~ - Qiita

qiita.com

TensorFlow (ディープラーニング)で為替(FX)の予測をしてみる - Qiita

qiita.com

TensorFlow (ディープラーニング)で為替(FX)の予測をしてみる CNN編 - Qiita

qiita.com

MNIST for Experts (TensorFlow) - Qiita

qiita.com

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その1

元ネタはこれです

qiita.com

UdacityのMachine Learning for Tradingを修了して、いっちょやるか、と思い立ってのでやります。

https://www.udacity.com/course/machine-learning-for-trading–ud501www.udacity.com

上記の講座の中では、教化学習、その中でもQ学習が取りあげられており、一通り講座を受けてわかった(気になっている)ので、それを使ってエージェントを組んでみるか、と思ったのがきっかけです。

ただ、最近Deep LearningにKerasが統合されるやらそんな感じのツイートやらがあるので、「どうせ始めるなら、これ3つともがっちゃんこしてしまおう」と安易に考えて走り出しました。

どれくらい成績の良いエージェントを作れるか、はたまた途中で断念してしまうかはわかりませんが、こつこつやって行きたいと思います。リポジトリは↓です。

github.com