ビジュアルモードのバックテストが速過ぎる時の対処法

スライダーを一番右にすると尋常じゃない速さに

EAにしてもインジケーターにしても、バックテストにおいてチャートを表示しながら動作確認することはよくあると思います。

[ビジュアルモード]にチェックを入れればチャートに表示され、動作の速度を変えたい場合は、スライダーを左右に動かしてあげればOKですね。

右に動かせば速くなるわけですが、一番右(32)とその1つ手前(31)では全然スピードが違うのに驚きませんか?

私のPCの場合、31以下だと遅いなぁという感じで、32だと超高速になり、動体視力のテストかのごとく、どんどん進んでしまいます。

使いにくいこと、この上ない仕様です。というわけで、何とかならないかとググッていましたら、素敵な方法を見つけました。

strategy tester speed in MT4

VisualMode でのバックテスト中に、日付が変わる度に一時停止させる。

「その手があったか!」と目からウロコでした。

早速私もバックテストのスピードを調整するインジケーターを作ってみました。よかったらお使いください。

使い方は簡単です。EAないしインジケーターのバックテストを開始してチャートが表示されたら、一時停止して、そのチャートにスピード調整用のインジケーターを挿入するだけです。

パラメータのSpeedBrakeの値が大きいほどゆっくりになります。但し、30,000あたりを超えると動きがカクカクになるので、やり過ぎにはご注意ください。

//+------------------------------------------------------------------+
//|                                          TesterSpeedAdjuster.mq4 |
//|                                     Copyright (c) 2016, りゅーき |
//|                                            https://autofx100.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright (c) 2016, りゅーき"
#property link      "https://autofx100.com/"
#property version   "1.00"

//+------------------------------------------------------------------+
//| EAパラメータ設定情報                                             |
//+------------------------------------------------------------------+
extern int SpeedBrake = 20000; // 数字が大きいほどスピードは遅くなる

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit(void)
{
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
  if(IsVisualMode() == true){
    int cnt = 0;

    // 無駄なループを実行することで、バックテストのスピードを落とす。
    // バックテストのスピード調整スライダーが一番右(32)の時に効力を発揮。
    while(cnt < SpeedBrake){
      cnt ++;
    }
  }

  return(0);
}

MT4の無料プログラミング講座

LINE公式アカウントを友だち追加して、MT4のプログラミング講座を無料で受けちゃおう!

超豪華プレゼントも盛りだくさん♪

MT4プログラミングを習得すると、オリジナルEA運用、作成代行、商品販売等、複数の収入源を手に入れられるよ。副業に最適だね!

↓↓↓ 詳細はこちら ↓↓↓

アイキャッチ

>

エターナル・パートナーPRO ~MT4裁量トレード支援ツール~ 「MT4は裁量トレーダーに優しくない」そう思ったことありませんか?もっと快適にトレードするための強力な売買ツールが必要だと考え、開発したのが「エターナル・パートナーPRO」です。元々は自分自身のために開発したツールですので、手抜き無しのガチものです。既に200名近い方に手に取っていただき、喜びの声が続々と届いております。ぜひご覧ください!

CTR IMG