<為替分析>11/29 ディープラーニングで為替自動トレード

ディープラーニングで為替の自動トレードツール作成を行いました。
まだ完了していないのですが、作成にいたる工程やその時苦労したことなどを書いていきます。

工程

工程ごとに順に書いていきます。

1.AI作成

めちゃくちゃ簡単ですが、以下に記載しています。
kurupical.hatenablog.com

2.AIチューニング

アンサンブル学習

株やFXをAIに予想させるときの結果は、学習回数よりも重みの初期値に大きく依存しているような気がします。
今回は1つのAIに学習させるのではなく、重み初期値の異なるAIを5つ作成して多数決を取る形を試してみました。
この方法は、複数の分類器を使って多数決を取るアンサンブル学習に近い考え方かなと思います。
なんとなく邪道な気もしますが・・・

以下は結果です。
f:id:kurupical:20171129140723p:plain:w400

各AIの正解率より、多数決AIのほうが正解率が高くなっています。
ただ、各AI間の相関が高いため、効果的な多数決となっているかどうかは不明です・・・。

このアンサンブル学習もどきを組み込みたかったのですが、うまく組み込めず。
Tensorflowのセッションを何回もOpen/Closeするとメモリが足りなくなって落ちてしまいます。

ガーベジコレクションについて調べたり教えてもらったりしたのですが、解決できませんでした。
Tensorflowのsession.close()、ちゃんとメモリ解放してるのかなぁ?

3.ポートフォリオの作成

AIは「売り」「買い」の判断しか行わないため、売買量や売買通貨は自分で決めることになります。(ここもAIにやらせればよかった)

リスク受容

ポートフォリオを組むにあたって一番大事なのは、「リスク許容量」だとよく言われます。
自分がどこまでのドローダウンに耐えられるのかをまずは考えました。
結果、20日で25%のドローダウンまでを受容することにしました。

売買通貨

買う通貨は、メジャーでスプレッドが安いUSDJPY/EURJPY/GBPJPYの3つとしました。
AIが得られる利益の相関は、3通貨間で高くない(0.09〜0.14)のでポートフォリオを組むには最適です。

ポートフォリオの構築

エクセルと10分くらい格闘し、以下のポートフォリオとしました。
ポートフォリオ構築の基準は、「リスク受容」の条件をギリギリ満たしていることです。

  • USD/JPY レバ1.79倍
  • EURJPY レバ1.68倍
  • GBPJPY レバ1.03倍

合計レバ5倍

リスク計算

過去10年でAIによる取引シミュレーションを行い、各20日間の累計利益を計算しました。
結果、以下となりました。

  • データ数: 2584(全データ2603を20日区切りに分けた)
  • 平均 : +8.17%
  • 標準偏差 : 9.88%
  • 最小 : -23.35%
  • 最大 : +57.33%

ここからリスクを計算します。
信頼区間は厳しめに99.9%としました。99.9%の確率で収益は以下区間に収まります
信頼区間99.9%のZは3.2905なので

平均 - 標準偏差 * 3.2905 < PL < 平均 + 標準偏差 * 3.2905
※PL=損益

具体的な値を代入すると、以下の通りです
-24.54% < PL < +40.68%

99.9%の確率で損益が-24.54%〜+40.68%の間に収束することになります。
(本読みながら計算したので、あっているかイマイチ自信はありません)

4.自動取引ツールの作成

書く体力がなくなったので、次回書きます。

参考サイト

以下サイトに記載されているアイデアをかなり取り入れさせていただきました。
システムトレードに限らず投資をする方にとってもかなり有益なブログだと思います。

we.love-profit.com

参考書籍

・アンサンブル学習とか
機械学習の勉強にもおすすめ。

システムトレード
ポートフォリオの組み方やリスクの考え方など、参考になりました。