機械学習で未来のレートを予測できるか(第七弾)

第六弾で検証した機械学習(AI)の改善版です。
2020年はプラスではありますが、
PF値や勝率など期待したほどの結果を出すことができませんでした。
(取引結果の詳細はこちら)
そこで今回は、主に取引期間に注目して、機械学習のモデルを再構築しました。
細かい話はいいから、EAが欲しいという方はこちらからEA申請してください。

検証①:学習期間を最新に変更

検証のポイント

  • 今のAIモデルは2011年~2015年のデータで学習していたため、学習期間から5年経過しています。一定以上期間が経つとレートの動きの傾向が変わって使えないという仮説を立てました。
  • そこでまずは2015年~2019年を学習して、2020年の結果が改善するかを検証してみます。

<表1:学習期間の変更>

2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
現行
検証①

 学習期間:機械学習のモデルを作成する期間(緑色
 テスト期間:Oputunaでパラメータをチューニングする期間(青色
 シュミレーション期間:未知の期間で実際に勝てるかバックテストを行う期間(赤色

検証の結果
実際のEAは複数モデルをMIXして利用しますが、検証はあえて純粋はモデルの強さを確認するため、1つのモデルだけを利用します。

<現行モデルでの2020年バックテスト>
<改善モデルでの2020年バックテスト>
<改善モデルの2011年~2013年バックテスト>

検証の考察

  • 2020年は大きく改善したため、最新期間を学習するのは有効と考えられますが、2011年~2013年はマイナスになりました。マイナスになるだけでなく、取引数が大幅に増えています。
  • 原因を調査したところ、学習の特徴量に為替レートを入れているのですが、レートが上がるにつれて取引数が増える傾向がことがわかりました。2011年のEURUSDレートは現在と比べて大幅にレートが高いので、取引が増えた可能性があります。
  • また現行モデルで2020年の調子の悪い期間は、ちょうど学習した期間には対象レートがほとんど存在しない谷間の期間であることがわかりました。少し見づらいですが、下記のグラフをみると8月~11月の不安定な期間のレートは1.1後半なのですが、ちょうど学習レートの少ない期間であることがわかります。

 

検証②:特徴量の変更(レートを100pip以下だけ残す)

検証のポイント

  • 学習の特徴量は第二弾の記事で説明していますが、特徴量から単純にレートを削除して学習したところ、シュミレーション結果は悪化する結果となりました。
  • キリの良い数値のレート前後での戻りや抜けを学習している可能性があるため、100pip以下の数値だけを残して検証してみます。下記の通り、単にレートを残す場合と比べて、学習レートの分布も安定します。

 
<表2:学習期間>
 この検証はレートの特徴量にのみフォーカスするため、現行モデルと同じ期間で実施します。その後、最新期間で学習して2011~2013年のシュミレーションが改善するかを検証します。

2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
現行
検証②
検証②

 学習期間:機械学習のモデルを作成する期間(緑色
 テスト期間:Oputunaでパラメータをチューニングする期間(青色
 シュミレーション期間:未知の期間で実際に勝てるかバックテストを行う期間(赤色

検証の結果

<検証②のモデルでの2020年バックテスト>

<検証②のモデルでの2011年~2013年バックテスト>

検証の考察

  • 2020年の結果は、検証1のモデルよりも若干改善する結果となり、レートの100pip以下だけ残せば、学習データとして問題ないと判断できました。
  • 2011~2013年の結果も、2011年はマイナスですが、2012年と2013年はプラスに転じました。取引数は減りませんでしたが、2011年だけが特殊な環境で取引が1400回を超えており、2012年と2013年は2020年とほぼ同様に500-800回の取引となっていました。
  • 上記2点から、レートの100pip以下だけを残すことは有効だと判断します。

検証③:学習期間を交互に変更

検証のポイント

  • 最新期間の学習だけだと2020年だけに最適化している可能性があるため、
    交互に2011,2013,2015,2017,2019の奇数年を学習して、間の偶数年が勝てるかを検証します。

<表3:学習期間>

2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
現行
検証②
検証②
検証③

 学習期間:機械学習のモデルを作成する期間(緑色
 テスト期間:Oputunaでパラメータをチューニングする期間(青色
 シュミレーション期間:未知の期間で実際に勝てるかバックテストを行う期間(赤色

検証の結果

<検証③のモデルでの2020年バックテスト>

<検証③のモデルでの2012年,2014年,2016年バックテスト>

検証の考察

  • 2012年はギリギリプラスですが、他の年は全てプラスになり安定しています。
    2020年もコロナで激しく動いた期間だけ大きく負けがありますが、他は安定しています。
    最新期間の学習だけでなく、交互の期間の学習も全ての年でプラスになったことから、2020年だけに最適化している可能性は低そうです。

検証④:複数モデルをMIX

検証のポイント

  • 第四弾で記載したとおり、複数モデルをMIXすると取引結果が改善する傾向があるので、今回も複数のモデルをMIXしてみます。
  • 以前は60分のモデルに15分と5分モデルをしていましたが、今回は60分モデルに同じ60分モデルの期間違いもMIXしてみます。
  • 検証の組合せが非常に多いため、最終結果だけ記載しますが、大幅に改善する結果となりました。

15分予測も含めて、EA単位に結果を記載します。

  • ①EURUSD15分後予測 通常モデル 2020年
  • 獲得Pip: 1079
  • プロフィットファクター: 1.63
  • 取引回数: 447
  • 勝率 : 66.1%

  

  • EURUSD15分後予測 PF値特化モデル 2020年
  • 獲得Pip: 756
  • プロフィットファクター: 2.06
  • 取引回数: 194
  • 勝率 : 67.5%

  • ③EURUSD60分後予測 通常モデル 2020年
  • 獲得Pip: 2262
  • プロフィットファクター: 2.0
  • 取引回数: 441
  • 勝率 : 70.3%

  

  • EURUSD60分後予測 PF値特化モデル 2020年
  • 獲得Pip: 1784
  • プロフィットファクター: 2.99
  • 取引回数: 229
  • 勝率 : 76%

その他の考察と実際の取引

その他の考察 

 今回の改善でEURUSD5分予測、AUDJPY60分予測、EURCHF60分予測も獲得Pip、PF値ともに改善しました。ただ、2011年以降のデータでは、現行のモデルと2020年しか比較ができません。
 そこで2009年-2010年で、現行モデルと新モデルを比較したところ、どちらもプラスにはなるものの、現行モデルの結果のほうが少しよい結果となりました。ただし、これは現行モデルの方が2011年-2015年という直後の期間を学習していることに起因しているものと思われます。
 新モデルのほうが、特徴量も期間の組合せも理論的には安定するはずなので、しばらく並行稼働を実施して、新モデルのほうが安定していることがわかったら、正式にモデルの切替をします。取引結果も追記します。

 

このEAを利用されたい方は、下記から申請をお願いします。
(現状配布しているのは、ひとつ前のバージョンになります)

 

おすすめの記事