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

細かい話はいいので、EAが欲しいという方はこちらからEA申請してください。

方針

第一弾で検証した機械学習と同様に、長期予測は外部要因により予測の難易度が高いため、短期予測を行います。

 

さらに第一弾で検証した機械学習の結果を受けて、主に次の改善を行います。

  • Spreadを考慮して、学習データをBidではなく、BidとAskの中間値にする
  • 予測時間は30分→15分にする。さらに短期にして予測しやすく
  • ランダムフォレスト以外の機械学習のロジックも利用する

 

機械学習の概要

学習データ

  • 15分以内に+-0.5pip上がった・下がった・以内の3分類データを正解データとする
  • 通貨ペアはEURUSD

学習ロジック 

  • GBDT、SVM、ランダムフォレストのモデルを利用
  • ハイパーパラメータをチューニングするライブラリ(optuna)を利用

主な説明変数

  • 価格変動の標準偏差
  • 一定期間内の高値、安値
  • 企業秘密のパラメータA
  • 時間帯
  • 移動平均
  • 自己回帰

期間と検証期間

  1. 2007年~2016年の5年で学習し、2017年1月~2018年12月の2年で勝てるかを検証

 

システム構成と検証方法

下記のように、モデル構築とAPI運用にわけた構成です。

検証方法

  • 第一弾の検証とは違い、MT4のバックテストだとSpreadが一定値でしか検証できないため、モデル構築サーバ上でSpreadを可変(実BidとAsk)にして検証を行います。
  • 取引は下記の3種類で行います
    ①BUYの確率が55%以上かつSELLの確率が45%以下のときにBUYの取引を開始(SELLは逆の確率)
    ②BUYの確率が56%以上かつSELLの確率が44%以下のときにBUYの取引を開始(SELLは逆の確率)
    ③BUYの確率が55%以上かつSELLの確率が45%以下のとき、かつ長期の移動平均線が上昇傾向のときにBUYの取引を開始(SELLは逆の確率で移動平均線が下降傾向)
  • Open後は一律15分後にClose(決済)。ただし確率が高いままであれば、取引時間を延ばす。

本番運用

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

 

学習と検証の結果

精度の高いデューカスコピー・ジャパンの2007年~2016年の5年で学習し、2017年1月~2018年12月の2年間で検証。(MT4ではなくモデル構築サーバ上での検証のため、結果の見た目は違います。

  • ①確率が55%以上でOPEN
  • 取引回数: 2280
  • 勝利数: 1396
  • 敗北数: 884
  • 勝率 : 61.22
  • 平均取引時間: 26
  • 最高取引時間: 51
  • プロフィットファクター: 1.318
  • 最大ドローダウン: 0.846
  • 最大勝ちpips: 89.8
  • 平均勝ちpips: 5.92
  • 最大負けpips: -200
  • 平均負けpips: -7.10
  • 平均連勝数: 2.5
  • 最大連勝数: 12
  • 平均連敗数: 1.58
  • 最大連敗数: 10
  • ②確率が56%以上でOPEN
  • 取引回数: 1196
  • 勝利数: 743
  • 敗北数: 453
  • 勝率 : 62.12
  • 平均取引時間: 24.88
  • 最高取引時間: 51
  • プロフィットファクター: 1.376
  • 最大ドローダウン: 0.925
  • 最大勝ちpips: 73.6
  • 平均勝ちpips: 5.83
  • 最大負けpips: -36.8
  • 平均負けpips: -6.95
  • 平均連勝数: 2.58
  • 最大連勝数: 11
  • 平均連敗数: 1.58
  • 最大連敗数: 7
  • ③確率が55%以上かつ移動平均線も同じ傾向でOPEN
  • 取引回数: 998
  • 勝利数: 610
  • 敗北数: 388
  • 勝率 : 61.12
  • 平均取引時間: 25.83
  • 最高取引時間: 51
  • プロフィットファクター: 1.468
  • 最大ドローダウン: 0.925
  • 最大勝ちpips: 75.6
  • 平均勝ちpips: 6.29
  • 最大負けpips: -27.0
  • 平均負けpips: -6.74
  • 平均連勝数: 2.53
  • 最大連勝数: 12
  • 平均連敗数: 1.61
  • 最大連敗数: 7

実際の取引と今後の予定

実際の取引結果 
手数料がない外為ファイネストで①の55%以上のOPENするロジックで約2か月運用し、82pipプラスです。
まだ勝ちは少ないですが、ようやく勝てる見立てがつきました!
プロフィットファクターが小さいのは、取引期間が短いため結果に偏りが出ているのと、取引時間を一律15分にしたため、1回あたりの獲得Pipが小さくなっています。
今後②と③のロジックもフォワードテストを行い結果を追記します。

  • 取引回数: 293
  • 勝利数: 170
  • 敗北数: 123
  • 勝率 :58%
  • プロフィットファクター: 1.14
  • 平均勝ちpips: 3.88
  • 平均負けpips: -4.69

今後の予定 

ついに勝てる見立てがつきました!

もう少しフォワードテストと条件の調整をしてからMT4のプログラム(EA)の無料配布を始めますが、準備が整うまでは、しばらくFrinxのTwitterでBUYとSELLの確率を配信します。よろしければ、ご利用ください。
(2019年10月28日より配信開始予定)

さらに勝率を上げるための、改善点もわかってきたので、まだまだバージョンアップして安定してからEA配布します!
第三弾の改善版はこちら

機械学習の最新版は激しく勝てるようになったので無料EA配布始めました。
EAが欲しい方はこちらからEA申請してください。

おすすめの記事