自動為替取引AI開発

AI研究をしている博士後期課程のブログ

取引間隔と入力情報について

最近自動取引について検索できる範囲で調べています.

そこで思った私の理屈を書きなぐります.

 

自動取引を調べてみるとbot,EAなんかの個人制作的なものが多いです.

それらが実際に儲かるかどうかはわからないのですが,フォワードテストを報告しているものは信用できそうです.

儲かりそうなフォワード結果をだしているのはHFT系が多い印象です.

HFTで実運用となると,取引モデルの処理速度,通信の速度なんかが必要になりそうです.

そこでは私の持つAI技術を余り活かせなさそうというのと,競争倍率が高くて勝ちをマイニングするのは難しそうということで手を出していません.

もちろんHFTとなれば,それだけデータが細かいので使えるデータセットのサイズは十分すぎるので,そういった意味では適していますね.

そういうわけでHFTは今の所遠慮しています.

 

逆に個人制作ではあまり見受けられないのは日足以上のスイングトレードです.

こちらは研究論文としてはよく見受けられます.

株式なんかは市場の開場時間の関係上,日足の方が扱いやすのかもしれないですが.

日足となると,HFTとは対象的にデータセットのサイズがかなり小さくなります.

おおよそ250/年のデータ数なので深層学習で学習するメリットを活かすことは難しいと感じています.

日足未満の時間間隔では,例えば株式と先物では開場時間が異なっているので,同時にデータを扱うことが難しいのですが,日足だとそれが同時に扱えるため,これは大きなメリットになりえます.

そこで研究のアプローチとして,複数の市場・銘柄で転移学習を行うようなものがあるようです.

データセットの小ささを補うことができるので有用なアプローチだと思います.

私がスイングをやらない理屈としては,,,なんでしょうね.多市場のデータを集めるのが面倒ということでしょうか.

あとは日足なのでフォワードテストに時間がかかることもデメリットですかね.

同様に相場環境が変化して作ったモデルが機能しなくなったときの判断が難しいというのもあるかと思います.

時間間隔が長い分ボラティリティが高く,一回の取引のリスクが高いこともあります.

 

そういう理屈で私は1時間足を使っています.

実際1時間足くらいであればbot,EAの競争も少なく(主観),データセットのサイズも十分なので私の持つAI技術を用いて複雑性をマイニングする余地があると思います.

ですが1時間足では1日のtick数は24です.1日の間にも国の位置関係から時間によって相場特性が変化しますので,24では少し物足りない気がしています.

そこで30分足を検討しています.ですが当分は1時間足で続行です.

 

あとは一般的ではないですが,データのサンプリング間隔を時間ではなく取引高などにするティックバーやドルバーなんかがあるみたいです.

確かに標準のバーでは捉えられないものがマイニングできそうではありますね.

ですが標準バーが時間で区切られているというのは扱いやすいということと,指標発表などが時間に即していることなんかがメリットになりうるとは思います.

もちろん他のバーを試したことはないので机上の空論ですが.

そもそも他のバーってどこかで配信されているのでしょうか?そのバーを作るための最小の取引情報とかでもよいのですが.

 

 

次に入力情報についてです.

簡単なEAとかだとおそらく対象市場の過去時系列のみを用いています.

少し複雑なbotとかになると他市場だったり他会社の同市場のものも使っているんでしょうか.

研究論文では他市場はもちろん,ニュースやtwitterのテキストデータなんかもよく使われています.

ニュースだと書き手のバイアスもありますし,トレンドワードなんかが含まれていると意味抽出がうまくできるか怪しそうです.

twitterだと発言するユーザの分布に偏りがあったりしそうですね.ユーザ間のネットワーク構造なんかも考慮するとよかったりするのでしょうか.

金融市場の動きを説明する要因の範囲は社会全体に及ぶので,そういった意味でテキストデータなどは大変有用だと思います.

しかしそういった情報を適切に処理できなければ意味がないので,それならば,バイアスのない過去時系列から”ある程度”優れたモデルを開発した方が合理的なのではないかと.

 

現在開発中のモデルは対象通貨ペアのみの過去時系列情報を入力としてある程度良い結果を得ています.

少し前までのモデルだと複数通貨ペアを入力としてある程度良い結果を出していましたが,現在のモデルだと少し過学習気味になるようです.

入力情報の方針としては複数通貨ペアを用いたいですね.別の先物市場はいまのところ考えていません.

金融危機時には多数の市場の相関が強くなるという研究があったりもしますし,下手に入力を増やさない方が’賢明かもしれませんが(よい結果をもたらす可能性もありますが).

 

 

あと調べてて,株や仮想通貨の方が儲けやすそうなのかもしれないと思いました.

そのうち手を出してみよう.

 

現状と今後

現状

データ

OANDA社,2005/01/01〜,1時間足

モデル

LSTMベースの深層学習モデル

取引数量を-1〜1で出力

シミュレーション

ー設定ー

・訓練(2005/01/01〜2017/12/31)評価(2018/01/01〜2020/02/22)

 ※年末年始の2週間は変動の不安定さを懸念し除外

・取引は火曜〜金曜の1時間毎

レバレッジ5倍まで

・取引通貨ペアはEUR/USD

・スプレッドはOANDAプロコースを想定し,0.8pipで固定

スワップポイントは未対応

・取引資産は3,000,000 JPY

 ※損益はUSD/JPYのレートを参照し算出

複利ではなく単利で取引

ー結果ー

・合計損益:+1,738,129 JPY(+57.9%)

 (2018年計:+748,415 JPY,2019年計:+928,265 JPY,2020年〜:+61,449 JPY)

・合計注文通貨数量:223,467,048 EUR

ー懸念ー

スワップポイントを加えると年率10~15%(週率0.2~0.3%)程度利益が減少する見込み?

・リアルタイム取引とのギャップ(推論時間,注文時間)

 

今後

目標

四半期程度のスパンで安定した利益を出し続ける

リサーチ対象キーワード

ベイズ理論(Bayesian deep learning

・Cocept drift

・DeepNEAT

具体的な改善

スワップポイントを考慮した学習,もしくは回避するルール付け

 スワップが日跨ぎ時の保有数依存であり,夏・冬時間に対応するのが面倒

 夏冬時間に対処するライブラリ機能とかある?

・進化アルゴリズムによって最適なモデル構造を探索

その他

・oanda apiを使った実取引環境の整備(ほぼ完成,エラー対応等)

・実取引状況の公開

損切りは必要なさそう?

・ファンダメンタルの導入予定はない

・研究,リサーチ状況をまとめていく