MT4 EA Back Test分析SideWinder

351autofx-backtest-analyze-00eyecatch MT4
↓独特のノリがクセになる(広告)
リオ
リオ

心機一転、久しぶりのバックテスト分析だね

パパ
パパ

久しぶり過ぎて全然覚えてない……

リオ
リオ

老人力高くない?

パパ
パパ

ということでイチからおさらいじゃーい!

↓サポート充実⇒初心者安心(広告)

要約

FX自動売買のEAバックテストに関して、レポートの横軸取引回数⇒時間に変換して結果を見やすくする方法を紹介。例としてGogo jungleのブレイクアウト系EA「SideWinder」を使用、MT4もヒストリカルデータもFXTF、Excelで処理します。備忘録なので画像満載、これで忘れない!

はじめに|バックテストでしっかりチェック

今回はバックテストが終わってる前提で話を進めます。バックテストのデータは横軸が取引回数ですけど、これだと好調不調が分かりづらい。取引回数⇒時間に変換して、バックテストの時間経過と損益の関係を見えるようにしよう、ってのが今回の目的です。

例として使用するのはGogo jungleのブレイクアウト系EA「SideWinder」です。最近使い始めたのでチェックしたばっかりなんですよ。システムトレードの売れ筋ランキングでは1ヶ月間だと2位、3ヶ月間で1位、1年間で4位のツワモノです。

しかしどんなに人気があっても自分チェックは重要。そう思ってバックテストしたんですけど、久しぶり過ぎて取引回数⇒時間の変換方法をすっかり忘れてました。ということで皆大好きExcelを使って実践、備忘録的にやり方を書いておきますので、ご参考にしてください。

↓お世話になってます!(広告) ナンピン、マーチンなし。低SLでローリスクなEAですナンピン、マーチンなし。低SLでローリスクなEAです | GogoJungle

バックテスト分析

バックテスト結果はイマイチ見にくい

バックテストは無事終了。もちろん僕はFXTFのMT4でもって、FXTFのヒストリカルデータを使いました。バックテストのやり方とかも書いておきたいんですけど、それはまた後日。MT4のFX自動売買が軌道に乗ってからってことで。

「SideWinder」の設定は基本デフォルトです。詳細は下の画像をクリックすると出てくるhtmファイルでご確認ください。lotsは固定にしたかったんですけど、すいません、よくわかんなかったので可変になってます。

SideWinder-lots000
バックテスト結果(クリックで詳細データを表示します)

バックテストが終わってレポートを保存すると、横軸取引回数-縦軸残高のgif画像グラフ&htmファイルが得られます。……良いんですよ。良いんですけど、横軸取引回数はちょっと見にくい。横軸を時間にしたい。少なくとも僕はそう思いました。

横軸を時間にすれば、以前やってたみたいに円高/円安のどちらに強いか、トレンド/レンジ相場ではどんな感じか、利益/損失が大きかった時に何があったのか、なんてのを知る手掛かりになります。

そんな思惑で横軸を取引回数⇒時間に変換しました。①が単純な時間-残高(円)、②は時間-全体損益(円)のグラフです。lotsが可変だから①も②も最初の頃は値動きが小さくてよくわからない、ってことで③は時間-単位損益(円)で0.01lots当たりの損益を表してます。

以下に処理の手順を示します。あくまで僕がやりやすいようにやっただけですので、もっと良い方法があるものと思います。Excelを使いましたけど、他の計算ソフトでも同じような感じでできますよね、きっと。繰り返すようならプログラムにした方が良いかもですけど。

不要部分の削除

バックテストレポートを処理するにあたり、まずは不要部分を削除します。横軸時間のグラフを作りたいので、設定条件の他、純益、総損失なんて本来有用なデータも今回は不要。あとは注文を入れたけど取り消した、なんてのも要りません。

まずレポートのhtmファイルをエクセルにドロップします(画像1)。そうするとレポートがエクセルに表示されますので(画像2)、必要な部分を新規ファイルにコピペ(画像3)。今回の場合、取引のみをコピペしました。

「SideWinder」はブレイクアウト系なので、注文を入れたけど取り消すってのが多い。そうすると画像3の「損益」と「残高」みたいに空白が並ぶのですよ。これは不要な行なので消したい。

「損益」の列(I列)を選択した状態で「ホーム」⇒「検索と選択」⇒「条件を選択してジャンプ」と進みます(画像4)。「選択オプション」が表示されるので「空白セル」を選んで「OK」です(画像5)。これで「損益」の空白のみが選択されます。

選択されているセルで右クリック⇒「削除」を選び(画像6)、「行全体」で「OK」を押します(画像7)。この操作で「損益」が空白の行が全て削除されます(画像8)。個人的にこの辺りの操作をよく忘れて、いつもコパイロットに聞くのですよ。

必要項目を取り出す

レポートには「時間」、「取引種別」などたくさんの項目が並んでいます。……まあ、ぶっちゃけ今回使わない。ということで必要な項目のみを取り出します。「時間」と「損益」があればOK。「時間」はあんまり細かくても扱いづらいので、日にちのみあれば良いよね。

整形した時間を表示したいセル(図ではL2)に「=DATEVALUE(SUBSTITUTE(LEFT(B2,10),”.”,”/”))」と入力します画像9B2セルの時間から日付のみを取り出し、「.」を「/」に置き換えるって式です。

シリアル値「40920」みたいな変な数字が出てくるので、L2セルで右クリック⇒「セルの書式設定」と進み(画像10)、「日付」を選択して「OK」を押します(画像11)。これで人間が見ても理解できる日付「2012/1/12」とかって表示されるはずです。

最小単位である0.01lotsごとの損益も知りたい。ということでこれを「単位損益」として表示したいセルに「=I2/(E2*100)」と入力(画像12)。「全体損益」は「損益」そのものなので「=I2」でOK。これらを選択して下に引っ張れば必要項目の取り出しは完了です(画像13)。

1日の損益合算

ここまで来たら後はグラフにするだけ、……と思ったんですけど気になることがひとつ。1日のうちに複数回取引をしている場合、損益をどうするか? 場合によってはバラバラに見たいってこともあるでしょうけど、今回は1日の損益を合算することとしました。

具体的にいうと画像14みたいに1日に複数回取引がある場合、損益を合算したい。そんなときにはピボットテーブルが良さげ。「挿入」⇒「ピボットテーブル」で「テーブル範囲」を選んで「OK」を押します(画像15)。あとは項目をドラッグ&ドロップすれば良いのですよ(画像16)。

まずは「時間」を「行」にドラッグ&ドロップ。すると「年(時間)」とか余計なものも「行」に追加されます(画像17)。今回これはいらないのでチェックを外して削除(画像18)。「列」には「単位損益」と「全体損益」を追加すれば、それっぽい表が作成されます(画像19)。

念のため「2012/2/14」の「単位損益」を画像14で確認すると、-136-128+80=-184です。画像19でも「2012/2/14」の「単位損益」は-184になっており、1日の損益が合算されていることが分かります。

この表をグラフ化するんですけど、ピボットテーブルが一部のグラフに対応してなかったりします。コピペして別の表を作り、そこからグラフ化する必要あり。さらにこのタイミングでもう一つの気になる項目「残高」を追加します。

ピボットテーブル全体を選択して「ホーム」⇒「貼り付け」⇒「値」です(画像20)。僕の場合軍資金10万円に「全体損益」(G4)を足した「=100000+G4」が初期残高です(画像21)。以降の「残高」は直前の「残高」+「全体損益」(画像22)、これを下に引っ張って準備完了。

グラフ出力

これで後はやっとグラフにするだけ。グラフの挿入なんてみんな知ってるような気もするけど、僕の場合時間軸の辺りでしょっちゅう手間取るのですよ。

僕はマーカーなし散布図が好きなのでこれを挿入(画像23)。横軸を選んで「軸の書式設定」(画像24)⇒「表示形式」(画像25)⇒「日付」(画像26)と進みます。これで横軸が時間軸、「2012/1/12」的な形式になります。後はもう好みの問題でグラフを見やすくするだけ。

僕としては時間軸が無駄に幅広いので「2012/1/1」~「2025/5/31」くらいにしたい。適当なセルに日付を入力⇒「セルの書式設定」を「標準」にすればシリアル値がわかるので(画像27)、この値を「境界値」に入れればOK(画像28)「単位」も3年分(1096日)に変更。

縦軸の表示形式もゼロがたくさん並んでて見にくい。「表示形式」を「通貨」の「記号なし」にすればカンマが付いてわかりやすくなります(画像29)。その他、色を変えたり、横軸と縦軸の交点を変えたりした、僕好みのグラフが最初①~③の3つです。

↓サポート充実⇒初心者安心(広告)

苦労したんですけど……

ここまで苦労して取引回数⇒時間に変換、表やらグラフやらを作りました。軽い気持ちで備忘録とか言ったけど、むしろしばらく忘れられないくらい苦労した。これらのデータをいじくりまわせばEAの傾向がわかるってもんですよ。

……なんですけど僕の場合、実はバックテストってあんまり信用していなかったりします。実際の取引で発生する買えなかったーとか、スプレッドがーとかが反映されておらず、塵も積もってズレてたりするからです。

ということで、細かな傾向分析はフォワードテストの結果を使って行いたい。まあデータが得られるかどうかがよくわからないんですけど。いずれにせよ、やっぱり自分でバックテストして、軽くチェックするくらいはやっておくべきじゃね? って思ってます。

まとめ

FX自動売買のEAバックテストに関して、レポートの横軸取引回数⇒時間に変換して結果を見やすくする方法を紹介。例としてGogo jungleのブレイクアウト系EA「SideWinder」を使用、MT4もヒストリカルデータもFXTF、Excelで処理しました。備忘録なので画像満載、これで忘れない!

↓「SideWinder」稼働直後に月利4%。さすがです!

↓稼働2か月目は大損失……。まあ、こんなこともありますよね。

↓損切&リセットで「SideWinder」に目を付けました!

コメント

タイトルとURLをコピーしました