そのため、テストのやり方について調べてみます。
今までのテストでは、テスターウィンドウの「セッティング」タグにて、初期設定の状態でテストを実施していました。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNhI3pMmiqon53vYaXfFVpnoQ-p7wW4gmeSEW6F8MZf_XMqMGLOCW5QX0sc2aEjrDAYAjyGycftZMQuUKTfj90NV1ySrVPBlnhBq28c52GdflZ744ZJaoPp89kNqedhXPvU3IQYk1ZXko/s400/Pic-3.bmp)
各項目をみてみると
・Expert Advisor
テストしたい EA プログラムを選択する
・通貨ペア
テストしたい通貨ペアを選択する
・日付と時間を使用
テストしたい期間を指定する
項目のタイトルが合っていませんが、送信者に開始期間、宛先に終了期間を指定します。指定しない場合には、MetaTrader が保有する全てのテストデータ期間でテストされます。
・Visual Mode
ここにチェックを付けると、テスト時の取引状況を、チャート図に表しながら実行してくれます。
チャート図を作成しながらテストするため、結果が出るまで時間がかかりますが、ちょっと臨場感を味わえておもしろいです。またその横にあるボタンを押すとテストが一時停止されたり、指定した期日までスキップできたりします。
ここまでは、特にテストデータの精度にかかわる項目ではありませんが、次の「期間」と「タイプ」の2つをどのように指定するかで結果がだいぶ変わる様子です。
「期間」はテストで利用するローソク足を選択する項目で、ここで選択したローソク足の値(始値/終値/高値/安値)を使ってテストが実施されるみたいです。
試しに、期間を”Daily”と”H1”に切り替えて Test1 プログラムを実行してみると
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiscvaYuGJVT6NTx1uH2D7jCQ8m8Dxtm4RGpAlqwwdE4InSPSRqqcHm3w4Cw0nHAOfbVXHMg1tJcbBuGLM6wDl7FEYNfNcpgY93DV2nGJyiJyEmw8w0-BZA7qGGb4BPFX32w4_zjBihGis/s400/Pic-0.bmp)
”Daily”では、1日1回の注文しか実行されていない
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY7G8g5PA8M0jJv_2UpOcCokz6YRrVn-b61xcSuo_Brsm45WtUnfqm7JKBvXLIV9UMP1BAydOoN9blsEUCFEPrCzNj_aogSSvDV-qkIwqWZC0I_eb20MCwHUIHUlvrZjg0LoAY2Cl8-8c/s400/Pic-1.bmp)
”H1”では、1日に何回か注文はされているものの、1時間以内に2回以上の注文は実行されていない
となりました。
となると、MetaTrader は Tick の変動タイミングによってプログラムが実行されるため、一番短い周期のローソク足を利用してテストすれば、より精度の高い結果がでるものと思われます。
では、モデルは何のためにあるのでしょう?
モデルには、次の3つの選択肢があります。
・Open prices only
これは、期間で指定した周期のローソク足情報のみを使ってテストするタイプで、今までやってきたテストがこれになります。
#ちなみに、MetaTrader では、周期が短いほどテストデータの保有期間が短くなり、テストできる期間が短くなります。
・Control points
期間で指定したローソク足より一つ周期の短いローソク足を使ってテストする様子ですが、何のためにこのモデルがあるのかは、ちょっと解りません・・・
・Every tick
Tick(1分足?)を利用してテストをするみたいです。つまり、期間でどの周期を選択しても、Tickデータを利用してテストするみたいです。
試しに、テスト期間と周期設定(日足)を同じ状態で3つのモデルを実行してみました。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZCb6t_FMkYFzTZ0cvTK2UdlUKrTIzs3pgcNmgX8OPk7OHcK0spULaX3gdyP-mGlcWUf4GZ6KP7zli42Nk1FpSsB6eYPOnOoqhHx68k6D0tG-HQrAoTof2pvBRqse5AowrMHm2WsW47X4/s400/Pic-2.bmp)
左から「Open Price Only」「Control Point」「Every Tick」になりますが、確かに、それっぽく注文をしているみたいです。
では、Every Tick でテストするのと、Open Price Only で1分足でテストするのでは、何が違うのでしょうか?
Open Price Only タイプでは、先にも書いたように、MetaTrader が保有しているローソク足の情報のみを使ってテストするため、テストできる期間が保有データに左右されます。
つまり1分足のデータは大量になるため、あまりデータが保持されておらず、最近のデータでしかテストできません。
Every Tick は、MetaTrader が保有している全てのローソク足情報を駆使して、指定されたテスト期間分の Tick データを擬似的に作成し、そのデータを使ってテストしているみたいです。
#どのようなルールで擬似データを作成しているかは、解りません・・・
そのため、長い期間で精度の高いテストを行うためには、Every Tick タイプでテストすれば良いみたいですが、擬似的なデータですので参考程度に考えていた方がよいのかもしれません。
#どうやら、1分足のデータを追加するやり方もある様子ですので、いつか調べてみます。
0 件のコメント:
コメントを投稿