MetaTrader 5 Strategy Tester: バグ、不具合、改善のための提案 - ページ 38

 

コンパイル時の入力リセットバグを弾く。

電子ブック

input int inRange = 0;

void OnInit() {}

1. inRange = 25に設定し、シングルパスを実行する。

2.次の行のテスター設定 タブでCTRL+V

inRange=123

3.EAを再コンパイルする。

4.inRangeが25にリセットされていることを確認します。123であるべきだった。

 
Slava:

テスタータイマーまたはスリープ経由で0.5秒ずつずらした場合。何が起こったかを特定するには?TimeTradeServerは 1秒未満のデータを表示しない。

 
fxsaber:

コンパイル時の入力リセットバグを弾く。

電子ブック

1. inRange = 25に設定し、シングルパスを実行する。

2.次の行のテスター設定 タブでCTRL+V

3.EAを再コンパイルする。

4.inRangeが25にリセットされていることを確認します。123であるべきだった。

バグではありません。

デザイン通り。テストボタンが押されるまで、現在のパラメータは、現在の<expert_name>.setに書き込まれない

再コンパイル時、パラメータの構成が変わっていなければ、現在のセットから値を復元する

 
Slava:

バグではありません。

デザイン通り。テストボタンを押すまで、現在のパラメータは<expert_name>.setに書き込まれません。

リコンパイル時、パラメータの構成に変更がない場合は、現在のセットから値を復元します。

違うんです。手書きで123と書いても、コンパイルでは値が変わりません。

 
この話題 もすでに書きましたが、回答はありませんでした。実際、カスタムパラメータを使ったデバッグは不可能になります。デバッグは何も変更されていなくても毎回リビルドされるからです。Rebuildは、パラメータをリセットします。Expert Advisorを変更してパラメータを釘付けにすることで抜け出さなければならないので、あまり便利とは言えませんね。
Новая версия платформы MetaTrader 5 build 2190
Новая версия платформы MetaTrader 5 build 2190
  • 2019.11.25
  • www.mql5.com
В пятницу 18 октября 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

iTimeで最適化しすぎたもの。


M5で作業中。


これは長年のバグです。

実際のEURUSDのティックでは、まさにこのテストレンジで出現しています。

修正しました。

 
traveller00:
私もこのテーマで書いた が、回答はなかった。実のところ、カスタムパラメータを使ったデバッグは不可能になる。デバッグは何も変更されていなくても毎回リビルドされるからです。Rebuildは、パラメータをリセットします。Expert Advisorを変更してパラメータを釘付けにすることで抜け出さなければならないので、あまり便利とは言えませんね。

あなたが説明した問題を再現するための手順について何も言っていませんね。

個人的には再現できませんでした。

入力パラメータをデフォルトに戻すケースは1つだけです。本EAのパラメータ構成を変更する場合

 
fxsaber:

ターミナルヒストリーの価格は正規化されていない!

MQ-Demo、MQ-Betaの価格は2019.12.12現在、正常化されています。

 

2280のビルドが使用されています。引用元がなかったのに記号とピリオドを取る。この場合、それは ボルサ-デ-返り, ブローカー Otkritie, シンボル UCAD-12.19, 期間 01.09.2019-03.09.2019.簡単なExpert Advisorが動作しています(下図)。1パスずつレースすると、履歴なし、バー0、ティック0と表示されるだけで、問題ないです。最適化を実行 すると、ジェネリックでもフルでも関係なく、ログに多くのエラーが含まれるようになります

genetic pass (0, 504) tested with error "critical runtime error 517 in OnInit function (module Experts\test.ex5 exception 0xc0000005)" in 0:00:00.041
input int test=1;

double OnTester()
{
  return 0;
}

void Test(const MqlTick &Tick)
{
}

void OnInit()
{
  MqlTick OldTicks[];
  int OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL);
  while(OldTicksCount>=1000)
    OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL,OldTicks[OldTicksCount-500].time_msc);
  for(int i=0;i!=ArraySize(OldTicks);++i)
    Test(OldTicks[i]);
}

OldTicksの 配列にアクセスする対応になっているようですが、理由がわかりません。関数の戻り値を配列のサイズに置き換えても、解決しない。どうしたらいいのか、未知数。

 

ビルド2280。遺伝的最適化などの最適化を実行 すると、「設定」タブのすべてのフィールドがグレーアウトして変更できなくなりますが、最適化されているフィールド(最大カスタム基準など)はアクティブのままなのはなぜですか?最適化の途中で基準を変更できるのか、それともバグなのか?

追伸:ふむ、いつも繰り返されるわけではないのですね。

P.P.S. リピートする方法がわかりました。テスト実行 後、最初はボタンが無効な状態になります。しかし、私は下の設定ウィンドウの高さを少し圧縮しており、その結果、縦スクロールが 発生しています。基準が見えなくなるくらい上にスクロールして、また下にスクロールすると、またデンデンになっているのがわかります。
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...