AIによるFX分析にチャレンジしています。
ネットを調べればAIがFXを高い精度で予想するという記事が多数ありますが、FXの値動きはほぼランダムウォークでAIを用いても予想は非常に困難です。
FXを高い精度で予想すると言う記事を逐次検証していますが、管理人が検証する限り売り文句通りの精度を出しているツールは見つかっておりません。
そんなAIによるFX予想ですが、もしかしたら巧く予想出来るかもしれないというやり方を見つけたので紹介したいと思います。
1.AIによるFX分析の基本的なやり方
初めに
本記事ではディープラーニングを用いた機械学習を用いたFXのデータ分析の方法について解説致します。
本記事では機械学習を指してAIという言葉を使います。
AIによる分析の基本
AIによるFXの分析のやり方を紹介する前に、AIによるデータ分析のやり方の基本を解説致します。
AIによりデータを分析する方法は大別すると分類と回帰の2つがあります。
AIでFXの分析をする場合も、このどちらかを使うことになるので、分類?回帰?という方は、まずこちらの記事を参照ください。
https://syuuai.hatenablog.com/entry/2019/05/06/022740
分類
分類は与えられたデータを予め決められたクラスに分類する方法です。
例えばFXの分析であれば、あるチャートを見えて値段が上がるか下がるかを見分けることが分類にあたります。
回帰
回帰は与えられた時系列データを線形近似する方法です。
例えばFXの分析であれば、チャートに移動平均線やポリジャーバンドなどの近似曲線を書くことが回帰にあたります。
2.AIでもFXの分析は困難
出鼻をくじく話ですが、機械学習の基本である分類や回帰は普通にやったらFXの分析に通用しませんでした。
実験した結果
分類の場合
多層パーセプトロンを用いたテキストデータの分類も、画像認識(CNN)を用いたデータの分類も、AIが1つのクラスを選択するという結果になりました。
じゃんけんの予想をAIにさせたら、常にパーを選ぶ様になったみたいなことです。
回帰の場合
AIで近似曲線を引くことは出来ました。しかし、FXの値動きはランダムウォークですので過去の値動きと将来の値動きに大きな相関はありません。
そのため、正解率は良くても50%強というところでした。回帰は多項式近似をしているのと同じで、多項式近似で勝てるほどFXは甘くありませんでした。
AIによる株価予想の実験論文
FXではありませんが、AIを使った株価予想の結果が論文で発表されており、機械学習の様々なモデルを使って検証したが、どれも5割程度という結果となっています。
https://www.jstage.jst.go.jp/article/pjsai/JSAI2017/0/JSAI2017_2D3OS19a3/_pdf/-char/ja
回帰(LSTM)で60%程度の的中率と記載されていますが、これは株価は大局的には上昇トレンドにあるので、極端な話、右肩あがりの1次関数を引けば当たる可能性が高いためだと思います。
為替はランダムウォークなので予想が困難
為替の値動きは過去の値動きに相関が無いと言われています。
そのため、AIを用いて過去データを解析しても予想が出来ないのです。
https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%83%BB%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%AF%E7%90%86%E8%AB%96
3.AIのFX分析の精度を上げる方法
クラスタリングをすればAIの予想精度は上がる
そんな予想が難しいFXですが、突破口を見つけました。
結論を先に述べます。
AIに与える学習データをクラスタリングしてからAIに与えれば、AIのFX予想精度は上がりました。
試した手法の概略
画像分類方式を採用
今回はCNNによるFXチャートを分類する方法を用いました。
入力データを事前にクラスタリングする
教師なし学習(K-Means)を用いて事前に学習データをクラスタリングしました。
ここがポイントです。
今まで、入力データ=過去データ、出力データ=X日後に上がる、下がる を与えてAIに学習させていました。しかし、これは何回やってもうまくいかず、学習データを増やせば増やすほど常にAIがどちらか片方を選ぶ様になりました。この理由を私は、過去の値動きデータのほとんどは次に為替が上がるか下がるか参考にならない不純物と考えています。
そのため、過去の値動きデータを教師なし学習でクラスタリングして、意味のある値動きパターンはどれかを調べることにしました。
そして、教師あり学習で、クラスタリングしたパターンを導きだす様にしました。
要約すると、クラスタリングで不純物となるクラスを除いて、予想精度が高いクラスだけを使って予想をする様にしました。
口で説明するより、見て頂いた方がイメージが付くと思うので、以下に詳しく手順を記載します。
クラスタリングと学習の手順
過去の為替データを画像化する
ドル円の為替レートデータをチャート画像にします。
今回は2009年~2019年の10年分の日次データを使いました。
※ 今回は2009年~2017年を学習データ、2018年を検証データ、2019年をテストデータとしました。
学習データと検証データをクラスタリングする
学習データと検証データのチャート画像を教師なし学習でクラスタリングします。
今回はsklearnを使いK-Meansでクラスタリングを行いました。
30クラスに分類
0クラス
1クラス
結構きれいにクラス分類されています・・・。
クラスごとの為替変動の傾向を調べる
クラスごとに翌日に為替レートが上がったか下がったかを整理します。
殆どのクラスは翌日に為替レートが上がるか下がるかがランダムですが、一部のクラスは為替レートが上がる可能性が高いものがあります。
このクラスに分類できるチャートパターンが現れたら、為替レートは上がる可能性が高いと考えよう。というのが今回の手法の考え方です。
教師あり学習で画像分類モデルを作成する
学習データと検証データを用いて教師あり学習を行い、為替チャート画像を分類するAIを作成します。
今回はSONYのnueral network consoleを使って学習モデルを作成しました。
検証データをクラス分類できています。
今までAIが必ずどれか一つのクラスしか選んでくれなかったので、クラス分類してくれただけでも嬉しい。ワァ──o(。´・∀・`。)o──ィ♪
作成したAIを使ってテストデータを分類してみる
AIにとって未知のテストデータ(2019年分のデータ)を与えて、クラス分類をしてもらい、的中率を評価します。
じゃん!!
うん。微妙(-_-;)
AIが上がるか下がるか予想出来ると判断した確率が20%。その中で当たった確率は、下がる=57%、上がる=42%でした。
微妙としか言いようがありませんが、下がるケースを当てた確率は優秀だと思います。
4.【総評】AIによる画像認識はFXの分析でも有効
今回の検証で分かったことが大きく3つあります。
- 1.AIの画像認識はFXの為替チャートを分類することが出来る
- 2.為替の値動きはほぼランダムだが上がる傾向/下がる傾向が高い値動きパターンは存在する可能性がある
- 3.AIで特徴的な為替チャートパターンを見つけることでFXの勝率を上げられる可能性がある
まだまだ先は長そうですが、AIでFX予想をする方法が少し見えてきた気がします。
これからも応援宜しくお願いします。
![]() |
価格:2,376円 |