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

第三弾で検証した機械学習の改善版です。
先に一言で結論を述べると、「メチャクチャ勝てる」ようになりました!
細かい話はいいから、このEAが欲しいという方はこちらからEA申請してください。

前回からの改善点

学習の改善点

  • Volumeを見ながら、学習に使うデータを選定(ある程度Volumeが一定になるようにして、異常値を外す)
  • 1つのモデルではなく、複数モデルをMIXさせる
  • ロット数を確率に応じて、可変にする(確率が高いときはロットを上げる)

API本番運用の改善点 

  • 元々Oandaのレートを使って、運用していたのですが、レートが抜け落ちたり、APIがエラーになるなどの問題があり、学習と確率がズレが発生していました。
  • 確率が1%ズレると、結果が2倍近く変わることもあるため、安定したレートを配信してくれる業者を探して、最終的にDukasCopyにたどり着きました。
  • さらにDukasCopyでもこちらのサーバの問題で、レートがうまく取れないことがあったので、欠損データを埋める処理を追加したり、エラー検知してリトライしたりと、システム安定化に向けた保守開発を実施し、ようやく安定化に成功しました。

システム構成と検証方法

下記のように、モデル構築とAPI運用にわけた構成です。
(構成は第三弾とほぼ変わらないですが、OandaをDukasCopyに変更しています)

検証方法

  • 第三弾と同様だが、Openする確率の閾値はチューニング
  • 取引は下記の2種類で行います(通貨ペアはEURUSD)
    ①15分モデルでBUYの確率が一定以上かつSELLの確率が一定以下のときにBUYの取引を開始(SELLは逆)
  • ②60分モデルでBUYの確率が一定以上かつSELLの確率が一定以下のときにBUYの取引を開始(SELLは逆)

本番運用

  • MT4からTick単位にAPIを呼んで確率を取得
  • あとは検証と同様のロジックで取引

学習と検証の結果

精度の高いデューカスコピー・ジャパンの5年分のデータで学習し、2017年1月~2018年12月の2年間で検証
(MT4ではなくモデル構築サーバ上での検証のため、結果の見た目は違います)
15分予測は3000pip・PF値が2超え、60分予測は6000pip・PF値が1.9超えという凄まじい結果となりました。

  • ①15分モデル
  • 獲得Pip: 3082.3
  • プロフィットファクター: 2.1
  • 取引回数: 1032
  • 勝利数: 718
  • 敗北数: 314
  • 勝率 : 69.6
  • 平均勝ちPip:8.2
  • 平均負けPip:-8.93
  • 平均継続時間: 26分

 

  • ②60分モデル
  • 獲得Pip: 6092
  • プロフィットファクター: 1.9
  • 取引回数: 1427
  • 勝利数: 943
  • 敗北数: 484
  • 勝率 : 66.1
  • 平均勝ちPip:13.62
  • 平均負けPip:-13.95
  • 平均継続時間: 86分

実際の取引と今後の予定

実際の取引結果 
約3週間本番で運用して、メチャクチャ安定して勝っています。
(取引数の多い60分モデルを記載)

  • 60分モデル 2020年4月16日~5月8日の約3週間で運用
  • 獲得利益(Pip):118
  • 勝率 :73%
  • プロフィットファクター: 5.3

その他の考察 

2020年1月~3月末のコロナ相場ど真ん中のタイミングで検証したところ、たった3か月で2000pip獲得するという驚異の成績となりました。
つまりボラが激しいときも安定しているときも、どちらも勝てる可能性が高いです。

EURUSDだけでなく、USDJPY、GBPUSD、AUDJPY、EURCHFなどの他の通貨ペアでも勝てることを確認済。

今後の予定 

暫くはTwitter配信でちゃんと勝てるということを公開していきます。
よろしければFrinxのTwitterをご利用ください。

EAの無料配布も始めました。
(最初に機械学習で実装してからここまで安定するのに3年かかりました。)

まだ改善したいことは色々ありますので、今後もバージョン上げていきます!
例えば、
・EURUSD以外の通貨ペアでは勝てないものもあったので、通貨ペアごとの考察をして、複数通貨ペアでうまくポートフォリオを組めるようにする
・学習の特徴量はレートから生成できる値は調査しきった感がありますが、VIXや株価などレートではなく外部の値も食わせてみる
など

おすすめの記事