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