2008年05月05日

その名もMSS

さて、複数のストラテジを同時運用できてしまうシステムですがMSSと名づけました。マルチストラテジシステム。まんまやんけ(T^T)。
で、いろいろ有用そうなストラテジを『拾ってきて』組み合わせてみています。

mss.gif

でまー口座が満杯とか普通に達成できてるんですが、結論だけいうと
MT4のバックテストはある条件下ではまったくあてになりませんね。wwww

わたしはいままでどっちかというと鬼ホールド系のトレンドフォロアーなストラテジを中心に研究してきたんですが、実際に運用するにあたってはやはりキレイに右肩上がりなEAがいいなーと・・・そこかしこのMT4ブログを眺めながら思ってたんですよ。
それでMSSにもそういうストラテジを組み込んでるんですが、ここのところの沈黙の間にフォワードテストがまったく振るわない現象でそろそろ目をそらせてきたことに目を向けないといけない気がしてきたわけです。

キレイに右肩上がりになるEAのほとんどはTP(決済値)6〜8、SL(ロスカット)30〜とか小さく勝ち逃げして万一予定外に相場が動いたら大きめのロスカットに刺さるまで耐える仕組みですね。シグナルはボリンジャーやRSIとかストキャとかで発生させ、MAなどでフィルタリングしてます。
試しにランダムエントリーにTPとSLだけで最適化をかけても黒字化する設定はみつかりませんでしたから、シグナルはそれなりに機能しなければならないわけです。

以前から指摘してる通り、MT4はデータを最小単位では一分足で持っています。
Tickのシグナルは一分足のOHLCからMT4が生成しています。
そしてMT4の関数と配列においてAsk()、Bid()、Close[0]は生成されたTickデータを毎時返して来ます。
また、内部のテクニカル指標関数でもPRICE_CLOSEとBarShift=0を引数に渡すとTickデータで計算されてしまいます。

で、そのエントリーシグナルのためにEveryTickでテストを行うと使用しているタイムスケールのシグナル以外の場所でエントリーしてしまいます。

そして、バックテストにおいては必ず同じポイントでシグナルが発生するようなので、MT4が生成するTickデータは必ずしもランダムではありません。

つまり、パラメータの最適化段階ではMT4のTick生成ロジックに対してもっともフィッチしたパラメータがもっとも利益を出してしまう可能性があります。

ただ、最適化の結果とバックテストも必ずしも一致しないこともあるんですよね。これは直近2週間のデータはデータセンターのデータではなく使用しているサーバのデータを使っているからという説もありますし、そこまでは検証していませんのでこの話の中には多くの仮定も含まれているのは事実です。

ただ、はっきりしているのは、上記のような値をシグナルに使っているストラテジは同じ期間のフォワードテストとバックテストの結果が合いません。

これだけははっきりしてます。
一定期間フォワードテストを行い、データをある程度取ってから同じ期間のデータでバックテストを行うと、たいていの場合フォワードテストではシグナルが減り、勝率が落ちます。

missmatch1.jpg

この減った分のエントリーはまさにMT4が生成したシグナルであり、落ちた分の勝率はまさにMT4のシグナルジェネレータに対して行ったカーブフィッティング部分だと考えて差し支えないと思います。

したがって、非常に美しい収益曲線を描くストラテジを開発し、それを配布し(有償だったり無償だったり)、そして消えていくブログが多いのは、こういうことなんだと思います。
もちろん、バックテストの結果そのものの勝率を期待するのがそもそもの間違いではありますが、バックテストの弊害の中にMT4の癖による弊害も必ず認識すべきだと思います。

最後に、前回も書きましたが、実はバックテストですばらしい勝率を出すストラテジの中にもTickデータに左右されないものもあるし、上記の通りの状況に陥ってるEAもソースコードを変更することでMT4のクセから抜け出し、かつ利益を上げることのできる有益なソースコードも多々あります。

ただ、それらがバックテストと同じ結果をフォワードテストで出せるかというとそれは別の話です。もっといい場合もあれば、もっと悪い場合もあるでしょう。過去の出来事だけから未来を語るのはおろかな話です。

MSSを作ったおかげで、そこらへんの微妙な調整はざっくりとシステム任せにして、いくつかの違うパラメータを持った同じEAを同時に走らせておけばいい、という戦略ですから多少は気が楽ですけどね。

以上、ブログ休止中に考えてたことを一気に書いてみました。
え?なげー?

すみません。
posted by (;D)笑男 ◆LeBIz0ZWfs at 10:23| Comment(9) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。