機械学習をEAの出力ファイルでやってます、その1
EA作成中
解析できるようなデータをEAで残す仕組みができました。
こんな感じ。
GlobalVariableSet("forestEye5_arg_count", count);
for (int n=0; n < count; n++)
{
string variable = StringFormat("forestEye5_arg_%d", n);
GlobalVariableSet(variable, data[n]);
}
グローバル変数をこっそり使うことで簡単?にできます。
パラメータによってデータが可変になるので、ちょっと工夫はしています。
EAから出力されたデータを解析してみると、ほとんどのテクニカル指標がランダムな感じでした。
ボリンジャーバンド2σ抜けで順張り、ストキャスティクス80-20で逆張り、決済は一定期間で強制的にした出力データで各テクニカルに偏った傾向があるか見てみた(ちゃんと解析はしてないです)のですが、関連性が見られたのはストキャスティクス、RCIでした。
※ボリンジャーバンドは逆張りで使用されることが多いようですが、バックテストではボロボロだったので順張りにしています。
ストキャスティクスのシグナルなのでストキャスティクスは当たり前ですね。
RCIもストキャスティクスと同じような動きをするので、まぁうなづけます。
ただ、青色の部分をフィルターすれば、良い感じで利益が出そうです。
試しにExcelで計算してみると、全体の損益は-104.85でしたが、80以上、-80以下を合計すると5145.37になりました。
(バックテストの期間は、2020年1月~4月末です)
RCIフィルターでも良さげな結果になりそうですが、目的は機械学習ですから横道にそれずに、データの準備です。
データの準備
今回、データ解析するためにいろいろデータを残しすぎていますので、学習しないデータを削除します。
がっつり削除します。(python慣れてないので1行ずつww)
学習するデータはシグナルとストキャスティクス長短期、RSI、ADX、RCI三種です。
学習データは2019年9月~12月末で、評価データは2020年1月~4月末です。
さて学習&評価!
オーダーしない選択を含めると85%正解、オーダー方向は100%正解・・・・
こっ!これは!!!100%バグってますねww
(_ _|||)
何、間違えたんだろう><
実際にこのモデルでバックテストをするか、scikit-learnつかって検証するか・・
パぺ太メモ
汎化忘れてる!と思って、汎化してみましたが100%の予測結果w
学習データを評価データにしてしまっているとか、どこかでマージしちゃったとか・・・
今週の休日全部使ってやっとここまで。
┐( ̄- ̄)┌
来週は、実際にこのモデルでバックテストをしてみますか。
休日にMT5でバックテストをすると、ティックデータが取れない期間が多くてテストにならないのですが、どうにかしたいなー
自分のネットワーク環境なのか、OANDAさんなのかな?
MT5でバックテストをしている人が少ないのか、そういう情報が出てないのです。
このモデルでバックテストをすると・・・ボロボロな予感w
- 関連記事
-
- iCustomからライブラリ化 (2020/06/14)
- EA作り直し?!iCustomの罠 (2020/06/05)
- 機械学習をEAの出力ファイルでやってます、その1 (2020/05/31)
- MT5 EAプロトタイプ初号、バックテストした (2020/05/25)
- 機械学習EAプロトタイプ初号 (2020/05/23)
コメント