こんばんは。いや、おはようございます。
最近はホントに忙しくて、EAタイムに入る時間がこんなに遅くなってしまいます><。睡眠3時間くらいです><。
そんな中でも、研究員の皆様が頑張って検証をしていることや、バージョンアップを楽しみにしていること等のうれしい応援メールをたくさん頂き少しでもと頑張っています。
さて今日は、最近値動きが得意なパターンであり、スプレッドが低く安定してきていますEURCHFですが、この通貨ペアに先日対応させましたClab_EURGBPの最適化を図ってみましたので経過を追って書こうと思います。普通のことをしているだけだと思いますがengineeeerがどうやって最適化をしているのか参考にしてみてください。非公開パラメータの調整も含まれますので一部わかりやすく伏せさせていただきます。
とりあえず、今回の最適化の目的は、
トレード回数を倍くらいに増やしたい
ということです。
私は多次元のOptimize(複数個所のパラメータ変化の組合せによる最適化調査)はあまり行いません。理由は、時間がかかること、Optimizeパラメータの設定ミスを途中でなかなか発見できないこと(終ってから「あっ><。この2時間はいったい・・・・。」みたいなことによくなるから)、それぞれのレポート内容が細かく見れないこと、各パラメータ独自での効果・変化を見落としがちになることです。このミスは、カーブフィッティングに繋がります。でも一番の理由は、考えながら楽しんで最適化を行いたいからです。OptimizationがOnでは、グラフが出ません。見ててつまらないです。
(カーブフィッティング…短いスパン(少ない要素数)で好成績を確認できるようなパラメータの最適化。短いスパンで好成績だっただけで、長いスパン(十分な要素数)で見るとその最適化が逆効果だったりする。しかし、どれくらいのスパンを短すぎと判断するかはトレーダーによって実にさまざまなため見解の相違が見られる。EAの調整でもっとも大事なところでもある。by engineeeer)
ということも踏まえてですが、あまり時間も無かったので、今回は以下のような段階でテストしてみました。
トレード回数を増やすためには、フィルターの緩和の手などもありますが、今回はエントリーに関わる内部の非公開パラメータの一つの調整で行いました。乖離の尺度を一部を下げてみるって事ですね。それに伴い、TP(target/hidden)を合わせこんで、Trades(トレード回数)、PF(プロフィットファクター)、損益(Profit)、勝率(won)、の4つの結果で比較していきます。以前に記事で書いた、ドローダウンですが、SecretCutter2と他損切りエンジンに任せていますので、この程度の調整ではあまり気にしていません。
最適化以外のパラメータですが、
現時点のバージョンClab_EURGBP 5.1.0 Betaでのデフォルトパラメータから調整したのは、
トレード時間(20-23)、MaxTrades(6)、SecretCutter2(true)だけです。
Metatraderテスト環境は、
FXCM-NY Real(生データ) 2009/3/23~2009/7/25 スプレッド5固定(2桁ブローカー表記) 0.1ロット固定 EveryTickです。
まず、デフォルトでのバックテスト。
乖離レベル | TP(virtual/hidden) | Trades | PF | Profit(USD) | won(%) |
default | 4/5 | 91 | 12.38 | 270.8 | 91.21 |
以前、スプレッドは7で固定してのテストだったので、スプレッドの差分2pipsは多く取れるだろうということで、そのテスト。
乖離レベル | TP(virtual/hidden) | Trades | PF | Profit(USD) | won(%) |
default | 4/5 | 91 | 12.38 | 270.80 | 91.21 |
default | 6/7 | 91 | 10.38 | 331.50 | 85.71 |
ちょっと、勝率が落ちますが、Profitが20%以上も増加しているので現行バージョンではTP=6/7がよさそうですね。それを踏まえて、乖離パラメータを弄ります。TPも感でずらしてますw。
乖離レベル | TP(virtual/hidden) | Trades | PF | Profit(USD) | won(%) |
default | 4/5 | 91 | 12.38 | 270.80 | 91.21 |
default | 6/7 | 91 | 10.38 | 331.50 | 85.71 |
-1 | 5/6 | 118 | 7.79 | 330.50 | 84.75 |
勝率は前回とあまり変わっていませんが、PFが落ちています。VirtualTPでの決済が行われていない可能性があります。そこでTPを下げてみます。
乖離レベル | TP(virtual/hidden) | Trades | PF | Profit(USD) | won(%) |
default | 4/5 | 91 | 12.38 | 270.80 | 91.21 |
default | 6/7 | 91 | 10.38 | 331.50 | 85.71 |
-1 | 5/6 | 118 | 7.79 | 330.50 | 84.75 |
-1 | 4/5 | 118 | 7.14 | 297.10 | 86.44 |
もっとPFが悪くなってしまいました。
乖離ではないところでエントリーしてしまっているということですね。ここで、default&TP5/6はどうなのか気になったので、そのテストをしました。
乖離レベル | TP(virtual/hidden) | Trades | PF | Profit(USD) | won(%) |
default | 4/5 | 91 | 12.38 | 270.80 | 91.21 |
default | 6/7 | 91 | 10.38 | 331.50 | 85.71 |
-1 | 5/6 | 118 | 7.79 | 330.50 | 84.75 |
-1 | 4/5 | 118 | 7.14 | 297.10 | 86.44 |
default | 5/6 | 91 | 10.32 | 295.30 | 87.91 |
PF・勝率両方とも、先の二つのdefaultチェックの間になっていますので、乖離レベル判定はdefaultでおおよそベターのようです。でも悔しいので、間を取って・・・
乖離レベル | TP(virtual/hidden) | Trades | PF | Profit(USD) | won(%) |
default | 4/5 | 91 | 12.38 | 270.80 | 91.21 |
default | 6/7 | 91 | 10.38 | 331.50 | 85.71 |
-1 | 5/6 | 118 | 7.79 | 330.50 | 84.75 |
-1 | 4/5 | 118 | 7.14 | 297.10 | 86.44 |
default | 5/6 | 91 | 10.32 | 295.30 | 87.91 |
-0.5 | 5/6 | 104 | 8.71 | 311.60 | 83.65 |
一気に、勝率が落ちてしまいました。乖離レベルの判断はやはりdefaultがいいみたいです。
それでも悔しくて、じゃあ今度は逆にもっと乖離レベルを甘くしたら?ってことで、
乖離レベル | TP(virtual/hidden) | Trades | PF | Profit(USD) | won(%) |
default | 4/5 | 91 | 12.38 | 270.80 | 91.21 |
default | 6/7 | 91 | 10.38 | 331.50 | 85.71 |
-1 | 5/6 | 118 | 7.79 | 330.50 | 84.75 |
-1 | 4/5 | 118 | 7.14 | 297.10 | 86.44 |
default | 5/6 | 91 | 10.32 | 295.30 | 87.91 |
-0.5 | 5/6 | 104 | 8.71 | 311.60 | 83.65 |
-1.5 | 5/6 | 129 | 5.63 | 325.90 | 82.17 |
お?トレード回数が2割も増えたのに、勝率はあまり変わらない。ならばここでTP前後に変化させて、2パターン調べてみる。
乖離レベル | TP(virtual/hidden) | Trades | PF | Profit(USD) | won(%) |
default | 4/5 | 91 | 12.38 | 270.80 | 91.21 |
default | 6/7 | 91 | 10.38 | 331.50 | 85.71 |
-1 | 5/6 | 118 | 7.79 | 330.50 | 84.75 |
-1 | 4/5 | 118 | 7.14 | 297.10 | 86.44 |
default | 5/6 | 91 | 10.32 | 295.30 | 87.91 |
-0.5 | 5/6 | 104 | 8.71 | 311.60 | 83.65 |
-1.5 | 5/6 | 129 | 5.63 | 325.90 | 82.17 |
-1.5 | 4/5 | 129 | 6.27 | 295.50 | 85.27 |
-1.5 | 6/7 | 128 | 5.49 | 338.20 | 79.69 |
TP4/5では乖離レベル-1とあまり変わりませんね。また、TP6/7ではProfitはこの中で最大ですが、勝率は70%台に突入してしまっています。defaultから40%も取引が多くなっているのに、利益は25%しか増えていません。そしてこの勝率かぁ・・・。
という具合です。まあ、たったこれだけ?という方も多いとは思いますが、初心者の方にも最適化というのを見比べて欲しかったので書きました。
この段階で考察できることは、
取引回数を増やして多少の利益増は臨めるが、リスクも増すのでお好みで。ということになりますかね。(engineeeerの金銭感覚ですが) しかし、他のパラメータも含めての調整でプラス方向へ傾かせることができそうだという期待と課題も残されています。研究員の皆様自身でも検証できるように、いつかこの乖離レベルのパラメータの一部を公開するようにしたいと思います。
また以前にも申し上げましたが、人によって期待したり楽しいと感じるトレード回数や勝率は違います。defaultはあくまでengineeeerの環境でのお好みセッティングの一つですので、研究員の皆様個人でお好きな形に変えるといいと思います。楽しいシステムトレードにすることは継続するために必要だと思います。
また、PFと勝率が比例して動かないことから、EURCHF通貨ペアで特徴的な、一瞬の髭を捕まえることが一番有効なのだということが窺えます。EURGBPと同じ手法のようですがこのテストをすると明らかに経過が違います。なので、非公開パラメータ部分はEURGBPと全然違います。何かを何倍したとかいう調整だけでは他のEAと変わらなかったのでそのような単純な事はしていません。
どうでしょう?EAなら、いやMetatraderなら通貨ペアの特徴というものも、こうして目で見て理解することができます。
度理系なengineeeerはこうしてわざわざ数値を出して考察することでしか特徴を見出すことしかできないかもしれません。感覚でモノを言われると、「もしかしたら・・・」と疑ってしまいます。所詮バックテストなのでしょうけども、理屈があるのでこの方が納得できます。そんなことも今回言いたかったのです。
でもきっと、文型の方からこんなことしなくてもぱっとチャートを見ただけで通貨ペアの特徴なんかがかなりの精度で考察できるのでしょうね。文型の方の能力恐るべしですね。
文系理系の問題じゃないのかな?ただの考えすぎか、慎重すぎるのか、理屈っぽさの問題かもしれませんね。
世の中のすべては0と1で表すことができると唱えたシャノン様に一歩ずつ近づいているのなら嬉しい限りです。どうぞ夢の中で大きくうなずいて下さいませw。
うぅ完全に朝だ。。。