FC2ブログ

EAと機械学習 その2

EA作成中
12 /08 2019
EAに機械学習を組み込むぞという個人でやるには重いテーマに挑戦しているのですが、やっと方針が決まってきました。

大まかな方針

  1. 機械学習はランダムフォレストを使用する。
  2. 学習にはpythonを使用し、データ作成を簡略化する。
  3. PCでモデルデータをシリアライズし、EA側ではロードして予測する。
  4. C++でDLLを作成する。
  5. 学習データは特徴のあるポイントで抽出する。
  6. 値(終値、移動平均など)は前足との上がり幅をデータとする。(時系列を考慮)

実は方針だけでなく、1~4は時間がかかりましたが完成し、pythonでの学習の方法を模索しています。

機械学習1

学習では回帰(値を予測する)ではなく、クラス分類(上がるか下がるか)にしました。
一定期間中の高値安値が決済可能な値になるかを判断しています。

図では、ストキャスティクス80%,20%とRSIの70%,30%を横切る時点のデータを抽出しています。
USDJPY2017年の15分足データを学習させ評価したところ、
(1年のデータを学習データと評価データに分割しています)

機械学習結果1

約52%で予測が可能でした。え~っと、初めとしてはまぁまぁだと思っています。
半々から初められれば上出来ですw
・・・ストキャスティクス80%,20%とRSIの70%,30%ですからねー
( ̄- ̄;)

ここからは、「特徴のあるポイントで抽出」の有効な特徴をいろいろ探す旅にでるかんじでしょうか?
例えば、ボリンジャーバンドとか、一目均衡表とか。

苦労した点(途中経過)

完成していないのに苦労した点もないかw
C++でランダムフォレストを作成するのは参考になるサイトがあり非常に助かりました。
シリアライズも簡単にできて、これはさっくり行くか?と思ったのですが、pythonからDLLを使用することに躓いてなかなか進みませんでした。

データ加工でpythonに勝る言語はないです(と思っています)し、Jupyter notebookという優れたツールもあるので、ここは外せなかったです。

EA運用のために用意したlinuxVPSにJupyter notebookをインストールして、どこからでもアクセス可能になりました。
ようやくできて、やっとスタートという感じですね。

これから

予測精度を最低でも60%に持っていきたいです
( ̄ρ ̄)
有効な特徴が見つかれば不可能ではないと思っていますが・・・

そしてEAへの組み込み、バックテストになりますね。
EAへ組み込みは、またMQLとのデータの受け渡しでハードルがあるとは思います。

予測精度がどの程度まで上がるかによりますが、来年の春ぐらいにバックテストに持っていきたいですねー!
o(⌒ー⌒)o

今年の初め辺りに構想をしていたのですが、もう年末ですw
来年早々に経過が書ければ良いなー
Oo。。( ̄¬ ̄*)

パペ太

パペ太は自動人形(EA)を操るという意味で、puppeteer(人形遣い)から付けました。
高収益のEAを目指して日々悩んでいます。