こんにちはー。管理人のピヨ猫でーす。
※ 本記事のタイトルの的中率80%は検証方法不足でしたm(__)m。
詳しくは↓↓↓
https://syuuai.hatenablog.com/entry/2019/04/15/233931?_ga=2.195468588.1690820405.1555338045-417863760.1555153571
なお、機械学習のやり方の流れとしては参考になると思いますので、記事はそのままに致します。
分析はAIの最も得意とするところだからね。
とは言ってもAIがそこまで出来るって直ぐには信じられないよね。
各言う僕も半信半疑だったからFXの価格予想をするAIを作ってみたんだー。
ちゃんと予想出来て、何と正解率80%だったよ。
これからやり方を紹介するね。
あと、ここではディープラーニングを使った為替予想の具体的なやり方に興味がある方に向けて記事を書くね。AIによるFXの予想結果は別途公開する予定だから、やり方には興味ないやー。結果だけ知りたいと言う人はそっちを見てね。
1.AIを使った株価やFXトレードの事例の紹介
FXの為替予想の仕組みを解説する前に、そもそもAIで株やFXの取引と聴くとウソっぽく感じるかもしれないので、それほど非現実的なことではないと言うことを世の中の事例で説明します。
◆ アルゴリズム取引
アルゴリズム取引と言う言葉があります。
アルゴリズム取引は2000年代の前半から広く使われる様になった株、FX取引の手法で、コンピューターに取引ルールをプログラムしておいて、ルールに従いコンピューターに自動で取引させるものです。
大手証券会社の野村證券のホームページでも、証券用語解説集で解説されている、実績のある手法です。
https://www.nomura.co.jp/terms/japan/a/algorithmic.html
◆ アルゴリズム取引とAI取引の違い
コンピューターに株、FXの取引をさせると言うことは既に実績のあることでした。
では、従来の アルゴリズム取引とAI取引の違いは何かと言うと、ルールを誰が決めるかにあります。
従来のアルゴリズム取引の取引ルールはファンドマネージャー等の投資のプロが市場を分析して決めていました。コンピューターは投資のプロが決めたルールに従い、株、FXの取引をするだけでした。
しかし、AI取引はコンピューター自らが市場を分析して取引ルールを決定します。AIを用いることで、ファンドマネージャー等の投資のプロに頼る必要が無くなり、かつプロに頼むよりも良い運用をしてくれます。(くれる可能性がある。)
◆AIによるFX取引の事例
色々な企業がAIを組み込んだ、取引ツールを公開しています。
- http://blackaist-fx.com/index_re.html
- https://world-ai-system.com/lp/01/index_bg.php
- [http://www.alpaca.ai/ja/]
◆AIによる株、FX取引の実情
さて、そもそもコンピューターによる取引は大分前からあり、AIも既に余に出ていることはお分かり頂けたかと思います。
ただ、株、FX取引におけるAIの実情を言いますと、FXの世界ではAIが強すぎてもはやAI取引をしないと勝つことは難しいなんて言う記事もありますが、実際にAI取引している人は僅かだと思います。
上で紹介したアルパカアルゴのアプリはダウンロード数が1万以下でした。
理由は、やっぱり、AIがルールを決めるって信用出来ないんだと思います。人がルール決めて運用するファンドも中々信用できないので、まあ、当たり前ですね。世の主力になるにはもう少し時間がかかると思います。
かく言う自分もAI取引など信用出来なかったので、論理的に信じれるものなのか知りたく、自分で試してみたものです。
前置きが長くなってしまいました。それでは、いよいよ、AI取引の実現方法を紹介します。
2.AIにどんなFX予想をやってもらったか?
AIにFX予想をしてと言っただけでは、流石のAIも何して良いか分かりません。
どういう観点でどういうデータを使って予想して欲しいかは人が伝える必要があります。AIは分析方法は考えられても、人が何をしたいかまでは、まだ考えられないのです。
◆ AIに頼んだこと
- 過去40日間の日別のドル円為替レートを見て、
- 20日後にドル円為替レートが、
- 上がるか下がるか変わらないかを予想する。
値段を予想するのは流石に難しいだろうと考え、まずはシンプルに上がる、下がる、変わらないの三択を予想してもらうことにしました。
◆ 予想のためにAIに与えたデータ
- 予想を行う日(基準日)から過去40日分の日別為替データと、基準日から20日後の終値
- 為替データの項目は日にち、始値、高値、安値、終値
- 上記の基準日データを1990年~2018年3月までの7,000セット用意
※ 後述しますが上記データを素のままAIに渡すとAIの予想精度が良くなかったので少しデータを加工しました。
◆ AIに指示した学習手法
- 為替データの時系列の関連を意識して分析せよ
専門用語で言うと、リカレントニューラルネットワーク使え - 後は最良の答えが出るまで考えろ(無茶振り(笑))
少し無茶言ってます。
過去30年近くのデータを全部見ろとか、人にお願いしたらすごい顔されそうです。
が、そこはAI。何も言わずに受け止めてくれました(笑)
3.学習データの作成方法とポイント
◆ 学習データの要約
- 予想を行う日(基準日)から過去40日分の日別為替データ
- 基準日から20日後の終値
基準日から見た予想結果 - 為替データの項目は日にち、始値、高値、安値、終値
- 上記の基準日データを1990年~2018年3月までの7,000セット
◆ AIの精度を上げる施策
- 入力データは金額ではなく、前日終値からの変動率とする
100円近辺の値動きと110円近辺の値動きを比較しやすくするために、基準を金額ではなく変動率とした - 入力データを正規化
AIが解釈しやすいように0~1の範囲に正規化。 - 月も入力データに入れた
為替は月で決まった値動きをするので、月も入力データとした。日付も正規化した(1~12月を0~1の範囲に変換。) - 予想結果は三択にする
予想結果が終値だと細かすぎるので、上がる、下がる、変わらないの三択にする。(20日後の終値ー基準日の終値)/基準日の終値が閾値(1.0%より大きいか小さいかで判定) - 予想結果を3つのフラグにする
0:下がる、0.5:変わらない、1:上がる ではなく、1,0,0:下がる、0,1,0:変わらない、0,0,1:上がる とした。この方が、下がる、変わらない、上がるのそれぞれの確率が分かるから
◆ 訓練データとテストデータ
- 訓練データのテストデータを9対1で生成
◆ 具体的な学習データ
例) 2018/3/31基準日のデータ
【入力データ】
月,終値,始値,高値,安値
0.25,0.1,0.09,0.12,0.08
0.25,0.11,0.09,0.12,0.07
・・・
0.25,0.09,0.09,0.12,0.09
【出力データ】
下がる,変わらない,上がる
0,0,1
データの作り方
手で作るのは無理なのでExcel VBAマクロを使いました。
以下の記事に詳しく書いたので、詳しく知りたい場合は、そちらを見てみて下さい。
- https://piyonekochannel.com/entry/2020/02/11/212820
- https://piyonekochannel.com/entry/2020/02/15/193632
※ 上記記事は画像ファイルの生成ですが、テキストにも対応してるのでGIT HUBから取得した下さい
【作成したデータ】
f:id:shibayu2002:20190408060910p:plain:alt=]
[f:id:shibayu2002:20190408060925p:plain:alt=]
[f:id:shibayu2002:20190408060936p:plain:alt=]
[f:id:shibayu2002:20190408060949p:plain:alt=]
4.モデルの作成方法と作成のポイント
◆ 使用ツール
SONY Neural Network Console
◆ 基本モデル
SONY Neural Network Consoleに予め用意されたリカレントネットユニット(LSTM)を使用
◆ モデルの改善方法
- SONY Neural Network Consoleの構造探索機能を使用して基本モデル(LSTM)から、色々なモデルを生成・試行
- 良さそうなモデルを選択
[f:id:shibayu2002:20190408060017p:plain:alt=SONY Neural Network Consoleの構造探索]
最初から結果が良くて何か怪しい。多分、全て上がるとかそういう結果。
[f:id:shibayu2002:20190408060109p:plain:alt=SONY Neural Network Consoleの構造探索]
何か良くなさそう
[f:id:shibayu2002:20190408060123p:plain:alt=SONY Neural Network Consoleの構造探索]
良いけどーもう少し頑張れるんじゃない?
[f:id:shibayu2002:20190408060137p:plain:alt=SONY Neural Network Consoleの構造探索]
おー良さそうじゃん!!
モデルを選ぶポイントとして、Traning error(訓練データの想定結果に対するエラー割合)、Validation error(テストデータの想定結果に対するエラー割合)の両方が良いのが良いです。
Traning errorだけ良くても駄目です。Validation errorが(擬似的な)未知のデータに対するエラー率なので、これが低いのが良いです。
また、直ぐに結果が良くなってるのは怪しいです。マークシートで全部同じ答にすれば25点は取れるじゃん的なことをAIがしてる可能性が高いです。AIにもズル賢い子がいます(笑)
5.脅威の的中率80%
それではいよいよAIに為替予想をしてもらいましょーー。
じゃん!!
[f:id:shibayu2002:20190408212724p:plain:alt=FX予想結果]
[f:id:shibayu2002:20190408215132p:plain:alt=AI為替予想正解率]
脅威の正解率80%超えです!!
特に値動きには敏感に反応しています。上がる、下がると予想した場合の的中率は80%半ばにまで達しています。
念のためお断りしますが、これはAIにとって未知のデータ(つまりAIにとっては未来のデータ)に対して予想をさせています。つまり本当の未来の予想でも有効のはずです。
6.FXのAI活用で明るい未来があるかも。でもAIの過信は禁物
如何でしたでしょうか?
AIをFXで使うと明るい未来があるかもしれません。
実際のFXは上がる、下がるが当たるくらいで勝てるものではありませんが、投資判断の参考にはなるかと思います。
皆さんも是非AIに為替予想をさせてみて下さい。本サイトでも公開していく予定ではあります。(公開して良いものか調べてから)
後、一応お伝えしておきますが、FXをする場合はきちんとリスクを認識し、自己責任でお願いします。AIを過信してはいけません。
ファンダメンタルなども考えないといけませんし、急な市場の暴落もあるかもしれません。ヘッジファンドという市場を操作する恐ろしい人達もいます。レバレッジを間違えるとたった0.1円の増減が莫大な損失にもつながります。なので、AIを利用するにしても、FXに詳しくない方は、きちんとFXのリスクを理解してからFXをした方が良いです。
FX入門
↓↓↓
![]() |
価格:1,350円 |
余談ですが、私ももっと確証が得られるまで、AIの予想を元にした取引はしません。また、あまり冒険もしないです。(自分に言い聞かせてます。自制は大事)