【TimesFM】AIはFXで使える?GOLDの価格を時系列データから予測
コンテンツへスキップ
この記事では
将来の価格を予測できたらFX簡単だよね?
AIはFXで使えないって言われているけど実際どうなの?
TimesFMって何?
といった悩みや疑問を抱えている人に向けて、
・Googleから公開された時系列データ予測モデルTimesFMについて
・FXでのTimesFMの活用方法について
・実際にTimesFXを使ってゴールドの価格を予測してみた結果について
を解説します。
著者:ゆう
FX裁量トレーダーからスタートし、現在はエンジニアの経験を活かしてEAトレードをメインに取引中。トレーダーの方々にEA、インジケータや取引ツールを作成して提供しています。
時系列データ予測モデルTimesFMとは
Googleから発表された時系列予測に特化した大規模モデル
TimesFMとはGoogleから発表された時系列予測に特化した大規模モデルのことです。
Googleからこのモデルに関する論文が発表されています。
論文:A DECODER-ONLY FOUNDATION MODEL FOR TIME-SERIES FORECASTING
論文によると、特徴は以下の通りです。
ポイント
- 大規模な時系列データベースを用いて、デコーダースタイルの
Transformerモデルを事前学習している
- 可変の履歴長と予測期間に対応できるインプットパッチングと
長いアウトプットパッチのテクニックを提案
- 様々なベンチマークデータセットにおいて、ゼロショットで
スーパーバイズドモデルに匹敵する精度を実現
端的に言えば、「時間とともに変わるデータを使って未来を予測する新しい方法」を提案している論文です。
では、具体的になにがいままでの予測モデルより優れているのかを解説したいと思います。
時系列データを大量に学習している
時系列データとは、時間の経過に伴って変化するデータのことです。
例えば、1時間ごとの気温や毎日の株価などがあります。
この研究では、次のような時系列データを集め、学習しています。
- 実世界のデータ:実際に観測されたデータ。例えば、過去の天気や売上の記録です。
- 合成データ:コンピュータを使って人工的に作られたデータ。特定のパターンを持つデータを生成します。
次に、これらのデータを使って、デコーダースタイルのTransformerモデルという機械学習モデルを事前学習しました。デコーダースタイルのモデルは、入力から直接出力全体を生成するのではなく、出力を逐次的に生成していくということが特徴です。
なぜこれが重要なのか?
メリット
- 大量のデータを使うことで、多くのパターンを学習できる
- 事前学習によって、新しいデータに対しても高い精度で予測ができる
すなわち、この論文では大量の実世界データと合成データを使って、未来を予測するための優れた機械学習モデルを作り上げることに成功したことを紹介しています。
ゼロショットで高いパフォーマンス
ゼロショットとは
ゼロショット学習とは、新しいデータセットに対して特別な訓練をせずに、そのまま予測を行う方法です。
例えば、モデルがこれまで見たことのない種類のデータでも、事前に学習した知識を使って予測を行います。まるで初めて見る問題でも、過去の経験を活かして解答を導き出すイメージです。
ゼロショットに対して、大量の入力データとともに正解データが与えられ、新たなデータを適切に判断できるよう学習させるモデルをスーパーバイズドモデル(教師あり学習)と呼びます。
ポイント
- この論文で提案された方法を利用した場合に、ゼロショットでデータを与えて予測させた場合でも
スーパーバイズドモデルに匹敵する予測制度が確認されたと報告されています。
以上のようにTimesFMは過去データから未来の傾向を精度良く予測するモデルであり、事前に特別なデータを与えなくてもよい点が独創的です。
実際にゴールドの価格をTimesFMを利用して予測してみた
概要
TimesFMには以下のような入力パラメータが設定されています。各数値は論文内での検証に使用されているものを参考にしています。
- context_len(履歴長):訓練時に使用される履歴の最大長さは512
- horizon_len(予測期間):予測期間の長さ96と192が利用されている
- input_patch_len(入力パッチの長さ):入力パッチの長さは32
- output_patch_len(出力パッチの長さ):出力パッチの長さは128
- num_layers(レイヤーの数):モデルのレイヤー数は20
- model_dims(モデルの次元数):モデルの次元数は1280
- backend(バックエンド):TPUv5eが使用されている
今回は論文で検証済みの上記の数値をそのまま使います。backendについてはcpuとしました。
過去データとの照らし合わせ(バックテスト)
まずは、過去のGOLDの日足のデータから翌日の価格を予測してみました。
グラフで見ると予測データは実際の価格推移と同じような動きをしていますが、これは当日から512日前までの価格データを与え、翌日のデータを推測しているためです。(予測する範囲が1日なので誤差が小さくなります)
実際にトレードで使えるかどうかは翌日の価格が上がるのか、下がるのかを正確に予測できているのかが重要です。
確率としては上がるか、下がるかの50%に対して52.4%なので、決して高い数値とは言えません。
EAでこの予測モデルを使って取引するのは時期尚早なことが分かります。
現在のAIと呼ばれるものの多くは、過去のデータを学習した大規模モデルと呼ばれ、学習データから次に起こる確率が高いものを選択することで成り立っています。
このため価格の予想が過去の傾向と似ているときには、予測できますが、そうでない場合には予測することが困難ということになります。
将来予測結果(フォワード予測)
次に現在のデータから未来の価格を予測したいと思います。
2024/5/17現在から予測した、未来のGOLDの価格の推移は以下の通りです。
context_lenに入力する過去のデータはXMのStandard口座のGOLDの日足の終値としました。
期間は2024年5月17日からさかのぼって512日間のデータです。
図中のオレンジ色がTimesFMによる予測結果です。
2024年9月ごろまでほぼ横ばいのレンジに入り、年末にかけて上昇していく傾向であることが分かります。
今後のゴールドの動きがどうなるか要注目です。
まとめ
Googleから公開された時系列データ予測モデルTimesFMを利用してGOLDの日足の値動きを予測してみました。この予測が当たるかどうかは2024年の年末にわかりますので、楽しみですね。
ただ、チャートの傾向を予測結果がうまく反映できているとは言い難い形状となっており少し厳しいかもしれません。
今後さらに予測精度の高いモデルが出てきた際には、また同じように試してみたいと思っています。