ブログタイトルを「FX自動売買システム開発部」から「autoFX」に変更しました!

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

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

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);
}
>完全放ったらかしEA 「AutoEndlessCatchRange」

完全放ったらかしEA 「AutoEndlessCatchRange」

「本業が忙しい!」「でも資産運用したい!」そんなあなたに最適なEAです。兼業トレーダーの方はチャートを毎日みて分析してトレードする時間はなかなか確保できないものです。トレードは本EAに任せて、本業やプライベートの時間をもっと増やしませんか?元々は自分自身のために開発したEAですので、手抜き無しのガチものです。

CTR IMG