DeepLeraningによる予測ですが、分類方式だと全く上手くいきません。
回答が合わない以前に、損失関数が収束しないのです・・・

そこで試しに簡単なシミュレーションデータを作ってみました。

  • 10000件の”ほぼ”同じ時系列データを作成
  • 2値分類で、正解は1とする
  • ところどころに誤った正解(ゼロ)を挿入する

上記条件で、損失関数の収束を見てみました。

1.誤答率ゼロ%

即座にゼロに収束しています。

2.誤答率10%

ゼロではなく、0.3当たりに収束しています。

3.誤答率20%

20%の時点で、もう殆ど損失関数に変化がありません・・・

以上のデータから、似たようなデータ(今回は時系列データ)に対し、異なる答えの割合が多くなる程学習が進まないのが分かります。

当然ですよねw、Aというデータを渡して、「前回は正解=1」といい、「今回は正解=0」と言っていたならば、正しい答えが導き出せるはずがありません。

ここで実際の為替データを見てみましょう。

これは、EURUSDで現時点からローソク足3本後に20pip以上上昇していたケースの極一部です。(比較のため足10本前を1に固定)

厳密には数えていませんが、かなりの割合で「足10本分ほど下がり基調」から「結果的に足3本後には20pip上昇」となっているのが伺えます。
ちなみに、”20pip下げ”で調べても、ほぼ同じグラフになります。

これは、最初の例で言うならば「学習しようがない(予想しようがない)」というところでしょうか・・・

誤解なきように言い換えると、「過去のチャートからだけでは学習しようがない」となります。このことから、ただちに「FXは所詮丁半博打」と結論づくわけではありません。

このままではFX好きとして面白くないので、もう少し足掻いてみます。

  1. 損失関数、最適化手法を変えてみる → 使えるものは全部試したがダメだった
  2. モデルを再構築する → 色々ためしてみたけどだめだった。しかしモデルの組み合わせは無限大なので可能性は残っている・・・
  3. データに色々と前処理を試してみる → 何か思いつけば実験する予定
  4. 分類がだめなら、回帰で再挑戦する → とりあえずコレ!

分類方式はいったん諦めて、回帰方式を試してみる予定です。

ただ、回帰で上手くいく保証は全くありません。

そもそも正解がないものを、本当に学習できるのか?という大問題がありますが、そこは目を瞑って再チャレンジです\(^_^)/

 

 


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です