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

細かい話はいいので、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申請してください。

おすすめの記事