MT4のシステムを使い始めてそろそろ10年近くなるが、それでもしばしば新しい発見があって、MT4の奥深さに魅せられる。先日、懸案であったTrendLine_AutoTradeという自動売買ソフト(EA)を完成させたばかりであるが、その際にもうれしい新発見があった。
そのEAは、トレーダーが独自に引いた上値抵抗線や下値支持線を使って、戻り売り・押し目買いの逆張りとそれらをブレイクした際の順張りの自動売買を可能とするものだが、EAの作動状況をいかにテストするかについて悩んでいたものだ。やむなく、1分足チャートを使ってなんとか簡易にテストを終えて納品に漕ぎつけたのであるが、なんとなく物足りなさを感じていたものだ。
EAが、勝手に引かれたトレンドラインをプログラム内で認識するためには、EAとトレンドラインには共通の信号を共有されていなければならない。トレンドラインがチャート上に引かれると、メタトレのシステムはそのラインに対して自動的に番号を振る仕組みになっている。例えば、A12345という番号(実際は名前)が与えられることになる。毎回、プログラムに新しい名前をインプットするのは面倒なので、プログラム内ではこれを例えば上値抵抗線であれば、「ResistLine」としておく。そしてコンピュータが振った名前A12345を同じく「ResistLine」と変更してやれば同じ信号が共有されたことになる。信号が共有できればバックテストもできるはずなのだが、これがなかなかうまく行かない。試行錯誤の上、たどり着いた方法は次のようなものである。
まず、バックテストの方法はVisual Modeで行う。そして「スタート」ボタンを押してバックテストのチャートが動き出したら一旦チャートの動きを止めて、そのチャート上に先ほどの上値抵抗線を引き、この段階でプロパティを開いてその名前を「ResistLine」に変更する。 そして、再度チャートを始動させるとプログラムは快調に働きだしたのである。
以上の方法で、バックテストもできるようになった。さすがメタトレと感じ入った瞬間であったが、もっと他に良い方法があるのかもしれない。ご存知の方には、ぜひご教示願いたい。
※コメント投稿者のブログIDはブログ作成者のみに通知されます