初めてこの記事を読む方は先に「最新の機械学習EAの概要」を読むことをお勧めしています。具体的な機械学習のロジックを知りたい方はこのままお読みください。
細かい話はいいので機械学習の自動売買がしたいという方はこちらからEA申請してください。
方針
第一弾で検証した機械学習と同様に、長期予測は外部要因により予測の難易度が高いため、短期予測を行います。
さらに第一弾で検証した機械学習の結果を受けて、主に次の改善を行います。
- Spreadを考慮して、学習データをBidではなく、BidとAskの中間値にする
- 予測時間は30分→15分にする。さらに短期にして予測しやすく
- ランダムフォレスト以外の機械学習のロジックも利用する
機械学習の概要
学習データ
- 15分以内に+-0.5pip上がった・下がった・以内の3分類データを正解データとする
- 通貨ペアはEURUSD
学習ロジック
- HGBT、SVM、LightGBM、ランダムフォレストのモデルを利用
- ハイパーパラメータをチューニングするライブラリ(optuna)を利用
主な説明変数
- 価格変動の標準偏差
- 一定期間内の高値、安値
- 企業秘密のパラメータA
- 時間帯
- 移動平均
- 自己回帰
- 為替レート
期間と検証期間
- 2011年~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のTwitterfa-twitter-squareでBUYとSELLの確率を配信します。よろしければ、ご利用ください。
(2019年10月28日より配信開始予定)
さらに勝率を上げるための、改善点もわかってきたので、まだまだバージョンアップして安定してからEA配布します!
第三弾の改善版はこちら
機械学習の最新版は激しく勝てるようになったので無料EA配布始めました。
EAが欲しい方はこちらからEA申請してください。
MT4を動かす環境がない方もAvaTradeJapanのAMMAという仕組みで、口座開設だけで自動売買できるようになりました。詳しくはこちらをご覧ください。