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

初めてこの記事を読む方は先に「最新の機械学習EAの概要」を読むことをお勧めしています。具体的な機械学習のロジックを知りたい方はこのままお読みください。
細かい話はいいので機械学習の自動売買がしたいという方はこちらからEA申請してください。

方針

第二弾で検証した機械学習の改善版です。変わらず短期予測ですが、15分後だけでなく1時間後も予測します。

 

機械学習の概要

学習データ

  • 15分後に+-1.0pip上がった・下がった・以内の3分類データを正解データとする
  • もしくは60分後に+-1.5pip上がった・下がった・以内の3分類データを正解データとする
  • ※第二弾では0.5pipを閾値としていたが、閾値を上げて学習データの精度を上げる
  • 通貨ペアはEURUSD

学習ロジック 

  • モデルは第二弾で最も精度の高かったHGBTに絞る
  • ハイパーパラメータをチューニングするライブラリ(optuna)を利用

主な説明変数

  • 価格変動の標準偏差
  • 一定期間内の高値、安値
  • 企業秘密のパラメータA
  • 時間帯
  • 移動平均
  • 自己回帰
  • ※RSIなどオシレーターの説明変数を足しても結果は変わらず、
     その分、各変数の期間を長くしたものを追加(例えば移動平均線の期間を増やした変数を足す)

その他改善点

  • Closeタイミングは15分後、60分後の一律ではなく、確率が高い間は、取引時間を延ばす。
  • さらに別で学習したより短い時間のモデルで、逆の方向の確率が出たらCloseする。
    (BUYしている最終に、短い時間のモデルでSELLの確率が出たらClose)
  • 逆張りでOpenすることが多いため、一定時間を経過してまだ確率が高ければ、複数ポジションをOKとすることで、利益を最大化する。
    (第二弾では保持できるのは、1ポジションだけ)

期間と検証期間

  1. 2011年~2015年の5年をTrainデータとし、2016年をTestデータとしてOputunaを回す。
    さらに2018年~2019年の2年で勝てるかを検証
    (年間のボラを確認して、安定した学習とテストができる期間を選択)
    ファイナンス機械学習の本はもろもろ参考にしました。
  2. フォワードテストとして2020年3月中旬~3月末まで本番で取引

システム構成と検証方法

下記のように、モデル構築とAPI運用にわけた構成です。(構成は第二弾と変わらず)

検証方法

  • MT4のバックテストだとSpreadが一定値でしか検証できないため、モデル構築サーバ上でSpreadを可変(実BidとAsk)にして検証を行います。
  • 取引は下記の2種類で行います
    ①15分モデルでBUYの確率が一定以上かつSELLの確率が一定以下のときにBUYの取引を開始(SELLは逆)
  • ②60分モデルでBUYの確率が一定以上かつSELLの確率が一定以下のときにBUYの取引を開始(SELLは逆)

番運用

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

学習と検証の結果

精度の高いデューカスコピー・ジャパンのデータを使って検証。(MT4ではなくモデル構築サーバ上での検証のため、結果の見た目は違います。

  • ①15分モデル
  • 獲得Pip: 2028
  • プロフィットファクター: 1.85
  • 取引回数: 943
  • 勝利数: 642
  • 敗北数: 301
  • 勝率 : 68.1
  • 平均勝ちPip:6.875
  • 平均負けPip:-7.923
  • 平均継続時間: 25分

 

  • ②60分モデル
  • 獲得Pip: 2738
  • プロフィットファクター: 1.55
  • 取引回数: 1252
  • 勝利数: 784
  • 敗北数: 468
  • 勝率 : 62.6
  • 平均勝ちPip:9.83
  • 平均負けPip:-10.62
  • 平均継続時間: 82分


60分の方が確率は下がりますが、
時間が長い分、Spreadの影響が少ないので、
平均勝ちPipと負けPipの差が小さく全体の利益は安定します。

実際の取引と今後の予定

実際の取引結果 
手数料がなくSpreadの小さい外為ファイネストで①と②を3月中旬~末の2週間実施しました。
このコロナ相場でレートの動きが非常に激しいのでPF値は低めですが、勝っています!
もう少し長期に本番取引をしたら、また更新します。

  • ①15分モデル 2020年3月16日~3月27日の2週間で本番
  • 獲得利益(Pip):117
  • 取引回数: 129
  • 勝利数: 68
  • 敗北数: 61
  • 勝率 :52.7%
  • プロフィットファクター: 1.1
  • 平均勝ちpips: 16.7
  • 平均負けpips: -16.7
  • ②60分モデル 2020年3月23日~3月27日の1週間で本番
  • 獲得利益(Pip):180
  • 取引回数: 36
  • 勝利数: 22
  • 敗北数: 14
  • 勝率 :61.1%
  • プロフィットファクター: 1.42
  • 平均勝ちpips: 27.8
  • 平均負けpips: -30.8

今後の予定 

第二弾から利益、PF値、勝率全てが大きく改善しました。
本番でのフォワードテストもまだ1-2週間ですが、このコロナ相場で利益を出しています。
よろしければFrinxのTwitterに最新の取引履歴を載せていますのでご利用ください。

まだ改善したいことは色々ありますので、今後もバージョン上げていきます。!
第四弾の改善版はこちら

第四弾の改善版で激しく勝てるようになったので無料EA配布始めました。
EAが欲しい方はこちらからEA申請してください。
MT4を動かす環境がない方もAvaTradeJapanのAMMAという仕組みで、口座開設だけで自動売買できるようになりました。詳しくはこちらをご覧ください。

おすすめの記事