(1)バックテストの時間短縮できる・・かな?(1)

昨日のどんよりな雨空がウソのように、すっきりな天気です。
ちょっと前までは、これだけ晴れると「あつぅ~」な感じだった
のですが、そんなこともなく、めったに外出しないわたしですら、
ベランダに椅子を出して、ボーってしてました。
年中、これくらいの天気だったらいいのに・・・

見切り発車ですが、先日書いたITな話題、、、というか
Metatrader4な話?を書きます。
頑張って、まちがいのないように書いたつもりですが、
いろいろとまずい部分があるかもしれません。
見つけた時は、こっそりとやさしく(←ここ重要)教えて
いただけるとうれしいです。
それでは、始まります!

【はじめに】
これから数回にわたって、気が向くままにMT4(Metatrader4)や
EA(Expert Advisors)のことを書こうと思います。
専門能力がなくても、MT4やEAの使い方がわかるくらいの方を
想像して書いています。
逆に専門家の方は、すでに知っている話題と思います。
内容は、バックテスト(BT)にかかる時間の節約術です。
目次は↓こんな感じ↓のつもりです。
1) テストするEAと設定ファイル(setファイル)を用意
  前提として、事前にEAと設定が決まっていることにします。
2) MT4をいくつか用意
  うちのパソコンの能力と普段使いを考えて、3つで説明します。
3) テストを一度に動かすためのファイルを用意
4) テストの条件を書いたファイルを用意
5) テスト実行
6) テスト結果ファイルを合体
※MT4を使うときのマメ知識が途中に入るかも・・・
でも、全体の目標はたてたものの、まだ、次の原稿を書いている
途中です。
そのため、まちがいに気づいたり、指摘のコメントを受け取ったり
したら、修正したり、補足の投稿をするつもりです。
それと、ほかの話題も同じですが、MT4やEA関連の話題は、
他の話題よりもわたしとうちのお館さまの独断と偏見で
書いています。
あと、わたし自身の未熟さもあって残念ながら
「うちでは、こうやってます!」というだけです。
なので、うちのパソコンでは問題がないことを確認済みの
話題ばかりですが、試す時は自己責任でお願いします。
ITの難しい話が多いので、うちのお館さま(いちおう、中堅SIer)に
添削してもらっています。
そのため、文章の雰囲気(わたしは基本“ですます調”。
お館さまは“である調、断言調”)が違っているところがあるか
もしれません。
見つけたら、「ああ、この辺りはよくわかってないのね」と思って
深い追及はしないでもらえると助かります。

【本文】
取引口座でEAを使う前に、MT4のバックテスト(BT)や
最適化機能を使って、EAの動きを確認するのはすごく重要です。
その時、10年間とか15年間を対象とした超長期のBTが良いと
インターネットに書いてあります。
でも、超長期テストをするのは、ものすごく時間がかかります。
うちの自作EAだと、ちょっと自慢のパソコンでも、超長期のBTは、
平気で2時間を超えています。
詳しいことは省略(よくわからない('◇')ゞ)しますが、
パソコンがたくさんの仕事を同時にできる高性能でも、
MT4では1度に1つEAの計算をしてくれません。
【メモ】
自作EAであれば、EA自身プログラム修正で高速化も
1つの方法です。
高速化を目指したプログラミングについては、
完全にわたしの手の届かないところなので、また今度(@^^)/~~~

しかたがないので、うちでは、BTの正確さを犠牲にして、
早さを優先してざっくりとBTの結果を手に入れてます。
もちろん、必要なら、時間をかけてちゃんとBTをします。
どうするかというと、テスト期間を分割して、一気にBT実行して、
あとで結果を合体させます。
絵に描くと↓こんな感じ↓です。
01_テスト時間は短くなるはず

テスト期間が2005.01.01から2021.10.31までなら、
①2005.01.01~2009.12.31のBT
②2010.01.01~2014.12.31のBT
③2015.01.01~2021.10.31のBT
の3つに分けて別々のMT4で一度に実行して、後で結果を
合体させます。
全期間のBTが2時間で終わるとすると、3分の1の期間のBTは
40分くらいで終わりそうですよね?
実際は、3分の1の時間ではテストは終わりませんが、
だいたい2分の1(この例だと1時間)の時間で①~③全部が
終わっています。
【メモ】
この方法の欠点は、①→②、②→③の間で、残高やポジションが
引き継がれないこと。
そのため、複利で投資するEAや多くのポジションを長期保有する
EAには特に向いていません。
うちでは、Excelマクロで①~③のBT結果を合体させる時に、
マクロで残高(決済損益)を引き継がせて、少しでも良い
精度になるよう努力してます。

、、、で、これを試すには、3つのMT4を同時に動かさないと
いけないのですが、文章がすごく長くなったので、また次回。
特別なお話ではありません。
必要な数だけMT4をインストールして、動かすだけです。

次回も似たタイトルにするので、「関係ないや!」って方は、
読み飛ばしてください。

【おわりに】
いまさらですが、文字が小さめです。
ちょっと日々の思い付きを書くのは十分なのですが、
いろいろと説明をしようとすると何行にもなってしまい、
書くのも読むのもすっごく疲れる( ´Д`)=3 フゥ
頑張って設定を変えて文字を大きくしたのですが、
これ以上大きくすると過去の記事の見た目がかなり悪くなって
しまうため、これくらいにします。
見づらかったら、ごめんなさい。


にほんブログ村 為替ブログへ
にほんブログ村

トレード日記ランキング
この記事へのコメント
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 

 Copyright ©トラの親 うちのトラの子の年収は? All rights reserved. 

 / Template by 無料ブログ テンプレート カスタマイズ