経過報告です。

Optimizer に ELU を使うようにした

ReLU の代わりに ELU を使うようにしました。概ね ReLU より良い結果が出るようになりました。

より先の上下を予測するほうが精度が安定する傾向がある

今まで上下予測する時間を 1 分先、5 分先、15 分先、30 分先、60 分先と試して、より先の時間になるほうが予測が安定していて、60 分先を予測するのが 1 番精度がでていました。で、今回 120 分先を試してみたところ、60 分先を予測するより精度が安定する傾向がありました。このことから推測すると、為替相場において、直近の価格はノイズが多く、より先の時間になるにつれ価格が変動すると考えられます1。というか、まぁそうですよね。

期間が短いデータを使ったほうが精度が高くなる傾向がある

今まで 6 年分の学習データを使っていましたが、それを 2 年 6 ヶ月にして学習させると精度が上がりました。このことから推測すると、為替相場は短い期間のほうがより価格変動のパターンに特徴が出やすく、矛盾した結果になりづらいと考えられます。長期データだと同じような価格パターンでも結果が真逆になることもあります。これは単なる市場のランダム性だったり、市場のルールが変わったりすることでそうなると考えられますが、どちらにせよ Deep Learning にとっては良くないデータです。

今後の方針

何分先を予測するかは現行の 60 分と 120 分の 2 つを並行して試していこうと考えています。個人的には 120 分先はちょっと長いと感じるので、できれば 60 分先予測まででどうにかしたさがあります。ですが、60 分と 120 分で無視できないぐらいの違いが出るようであれば 120 分にするべきなので、並行して見ていこうという感じです。

また、学習データの期間は 2 年 6 ヶ月か 1 年 3 ヶ月で試していきます。これらはそれぞれ 6 ヶ月と 3 ヶ月を検証データとして使います。つまり、6 ヶ月間だけ有効と思われるモデル、3 ヶ月だけ有効だと思われるモデルを目標にします。有効期間が短いと思われるかも知れませんが、Deep Learning だと問題になりません。というのも、通常のシステムトレードの場合は新しいモデルを得るためにチャートを眺めて、有効だと思われるアルゴリズムを人間が考える必要がありますが、Deep Learning だと単に新しい学習データで学習し直せばいいだけなのでコストが遥かに安いからです。


  1. もちろん先の時間にも限度がありますが。 ↩︎