AIを使ったFX自動売買に挑戦(5)
AIに何を学習させるのか? と聞かれたが、15年ぐらいの為替経験から自分なりのアノマリーを持っていて、それを何とか特徴量にしてAIに学習させようとしている。
例えば、こんな具合。
| アノマリー | 具体的な内容 | 数値化する指標 |
| 東京→ロンドン反転 | 東京時間の上昇・下落が、夕方のロンドン勢参入で逆方向に動き、東京時間の始値付近まで戻ることが多い | 東京時間の騰落幅、始値への回帰率、ロンドン開始後の反転確率 |
| 夕方の騙し | JST 16:00~18:00は騙しが多い。裁量取引ではこの時間帯のエントリーをほとんど避けていた | ダマシ発生率、ブレイク後の逆行幅、時間帯別の損益 |
| ロンドン午前の低ボラ | 英国夏時間はJST 19:00~20:00、冬時間は20:00~21:00に為替全般の動きが小さくなる傾向 | 時間帯別ATR、M5値幅、Tick頻度、スプレッド |
| 東京時間の低ボラ | 日本時間は、NY時間と比較すると全般に値動きが小さい | 東京時間のレンジ幅、トレンド継続率 |
| NY時間の高ボラ | NY時間は値動きが大きい。同じ売買アルゴリズムを東京・ロンドン・NYすべてに適用するのは難しい | NY時間のボラティリティ、TP到達率、時間帯別期待純損益 |
こんなアノマリーを今大体20個ぐらい持っている。もちろんこれらは定説と言われるものもあるが、個人的にEUR/JPYやGBP/JPYで感じていて、裁量取引で利用してきたつもり。
もちろん、曜日、月末(特に、2,5,8,11月末)、ロンドンFIXなどの特徴もあるが、それらを数値化して学習させる。
要するに市場の活動量やボラティリティに時間帯ごとの規則性があること自体は、学術研究でも確認されていて、それらをうまく取り込んでターゲットの銘柄で生かそうと考えている。
学習はMeta(旧Facebook)のAI研究グループが開発を主導している、Python向けのオープンソースのディープラーニング(深層学習)フレームワーク(AI開発の土台となるライブラリ)Pytorchを用いて深層強化学習(DRL: Deep Reinforcement Learning)をさせようというチャレンジ。
ここでいう深層強化学習は「現在の資金やポジションの状態」をインプットし、AIに「買う・売る・維持(ホールド)」の行動を選択させ、利益(報酬)を最大化するように試行錯誤させるのだが、過去のデータを利用したバックテストをやりすぎても過学習になってしまう恐れもあるし、FX市場そのものがノイズの塊みたいなものだから果たしてうまく学習させられるかどうか。
とりあえず作ってみたものの学習量が適切かどうかはまだよくわからない。
仮想取引でまる1日システムを動かしてみる。