こんにちは、MT5のログにはこのようなメッセージが表示されています。 2020.05.21 05:49:44.364 Virtual Hosting failed to get list of virtual hosts (www.mql5.com:443 send request failed [12002])です。
time of [Bench1()] = 1483377100000000
time of [Bench2()] = 1725035100000000
time of [Bench1()] = 1523441100000000
time of [Bench2()] = 1712777100000000
time of [Bench1()] = 1416779100000000
time of [Bench2()] = 1452093100000000
time of [Bench1()] = 1399366100000000
time of [Bench2()] = 1449939
inputint Range = 0;
double Res = 0;
#define GETCURRENTTICK GetCurrentTick1(Tick)
//#define GETCURRENTTICK GetCurrentTick2(Tick, !i)//#define GETCURRENTTICK GetCurrentTick3(Tick)voidOnTick()
{
MqlTick Tick;
for (int i = 0; i < 100; i++)
if (GETCURRENTTICK)
Res += Tick.bid;
}
doubleOnTester()
{
return(Res);
}
bool GetCurrentTick1( MqlTick &Tick )
{
return(SymbolInfoTick(_Symbol, Tick));
}
bool GetCurrentTick2( MqlTick &Tick, constbool NewTick = false )
{
staticMqlTick CurrentTick;
if (NewTick)
SymbolInfoTick(_Symbol, CurrentTick);
Tick = CurrentTick;
return(true);
}
bool GetCurrentTick3( MqlTick &Tick )
{
staticMqlTick _Tick; // Аналог Bid в MT4
_Tick.bid += _Point; // Хоть какой-то расход вычислительный ресурсов.
Tick = _Tick;
return(true);
}
#define GETCURRENTTICK GetCurrentTick1(Tick)
#define GETCURRENTTICK GetCurrentTick2(Tick, !i)
#define GETCURRENTTICK GetCurrentTick3(Tick)
2020.05.2114:19:52.450 Core 1 pass 0 returned result 693275970.165784in0:00:08.9252020.05.2114:19:59.980 Core 1 pass 1 returned result 693275970.165784in0:00:07.5292020.05.2114:20:07.370 Core 1 pass 2 returned result 693275970.165784in0:00:07.3902020.05.2114:20:14.694 Core 1 pass 3 returned result 693275970.165784in0:00:07.3232020.05.2114:20:21.688 Core 1 pass 4 returned result 693275970.165784in0:00:06.9942020.05.2114:20:29.114 Core 1 pass 5 returned result 693275970.165784in0:00:07.4252020.05.2114:20:36.133 Core 1 pass 6 returned result 693275970.165784in0:00:07.0192020.05.2114:20:43.557 Core 1 pass 7 returned result 693275970.165784in0:00:07.4242020.05.2114:20:49.580 Core 1 pass 8 returned result 693275970.165784in0:00:06.0222020.05.2114:20:57.273 Core 1 pass 9 returned result 693275970.165784in0:00:07.6932020.05.2114:21:03.993 Core 1 pass 10 returned result 693275970.165784in0:00:06.7192020.05.2114:21:03.993 Tester optimization finished, total passes 112020.05.2114:21:04.003 Statistics optimization done in1 minutes 22 seconds
2020.05.2114:21:04.003 Statistics shortest pass 0:00:06.022, longest pass 0:00:08.925, average pass 0:00:07.3142020.05.2114:21:04.003 Statistics local 11 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2020.05.2114:21:49.346 Core 1 pass 0 returned result 693275970.165784in0:00:03.0502020.05.2114:21:51.108 Core 1 pass 1 returned result 693275970.165784in0:00:01.7612020.05.2114:21:52.903 Core 1 pass 2 returned result 693275970.165784in0:00:01.7952020.05.2114:21:54.731 Core 1 pass 3 returned result 693275970.165784in0:00:01.8272020.05.2114:21:56.536 Core 1 pass 4 returned result 693275970.165784in0:00:01.8032020.05.2114:21:58.341 Core 1 pass 5 returned result 693275970.165784in0:00:01.8052020.05.2114:22:00.135 Core 1 pass 6 returned result 693275970.165784in0:00:01.7932020.05.2114:22:01.912 Core 1 pass 7 returned result 693275970.165784in0:00:01.7772020.05.2114:22:03.663 Core 1 pass 8 returned result 693275970.165784in0:00:01.7502020.05.2114:22:05.458 Core 1 pass 9 returned result 693275970.165784in0:00:01.7942020.05.2114:22:07.274 Core 1 pass 10 returned result 693275970.165784in0:00:01.8152020.05.2114:22:07.274 Tester optimization finished, total passes 112020.05.2114:22:07.284 Statistics optimization done in0 minutes 21 seconds
2020.05.2114:22:07.284 Statistics shortest pass 0:00:01.750, longest pass 0:00:03.050, average pass 0:00:01.9062020.05.2114:22:07.284 Statistics local 11 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2020.05.2114:23:00.873 Core 1 pass 0 returned result 661757660284.981689in0:00:02.8592020.05.2114:23:02.704 Core 1 pass 1 returned result 661757660284.981689in0:00:01.8302020.05.2114:23:04.488 Core 1 pass 2 returned result 661757660284.981689in0:00:01.7832020.05.2114:23:06.227 Core 1 pass 3 returned result 661757660284.981689in0:00:01.7372020.05.2114:23:07.778 Core 1 pass 4 returned result 661757660284.981689in0:00:01.5502020.05.2114:23:09.517 Core 1 pass 5 returned result 661757660284.981689in0:00:01.7382020.05.2114:23:11.288 Core 1 pass 6 returned result 661757660284.981689in0:00:01.7712020.05.2114:23:12.997 Core 1 pass 7 returned result 661757660284.981689in0:00:01.7082020.05.2114:23:14.815 Core 1 pass 8 returned result 661757660284.981689in0:00:01.8172020.05.2114:23:16.621 Core 1 pass 9 returned result 661757660284.981689in0:00:01.8052020.05.2114:23:18.313 Core 1 pass 10 returned result 661757660284.981689in0:00:01.6912020.05.2114:23:18.313 Tester optimization finished, total passes 112020.05.2114:23:18.323 Statistics optimization done in0 minutes 21 seconds
2020.05.2114:23:18.323 Statistics shortest pass 0:00:01.550, longest pass 0:00:02.859, average pass 0:00:01.8442020.05.2114:23:18.323 Statistics local 11 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
こんにちは、MT5のログにはこのようなメッセージが表示されています。 2020.05.21 05:49:44.364 Virtual Hosting failed to get list of virtual hosts (www.mql5.com:443 send request failed [12002])です。
皆さん、その意味と対処法を教えてください。
ありがとうございました。
私のプロジェクトの1つでデバッガが動作しない。しかも、その挙動を予測することは困難です。時々、ブレークポイントに入るのを拒否する。また、一部の機能の入力も拒否されます。最初はアップデートが原因かと思ったのですが(デバッグで何か問題があったのかもしれません)。しかし、他のもっとシンプルなプログラムでは、すべてがうまくいくようです。メインプロジェクトに取り組んでいるので、あまりチェックしていませんが。かなり複雑で、私が設計したモジュールだけで15個あります(標準モジュールの数は数えていません)。メインモジュールには最大で2000行が含まれます。もしかしたら、プロジェクトの複雑さのせいかもしれないと思いましたが......。また、繰り返し使うコードスニペットには、マクロを使うところもあります。また、CAppDialog, CCheckGroup, CComboBox, CButtonなどの標準的なUI要素も、私のプログラムの機能に合わせて書き直したものを使っています。もしかしたら、それらのせいでデバッグがうまくいかないかもしれない...。例えば、私が特別に書いたCCheckGroup::itemCheckState(const string item)メソッドはデバッグされないんだ。このメソッドは、チェックボックスの項目を見つけ、それが選択されているかどうか(その状態)をチェックします。
結局、こういうUIになりました。
UI要素の一部を仮区分しています。そして、CAppDialog要素のShow()とHide()メソッドをオーバーロードした方法を説明したブランチはこちらです。https://www.mql5.com/ru/forum/338301。その瞬間、コンパイラが文句を言い、クリティカルエラーが発生した。
最終的にプロジェクトは正常にコンパイルされ、コンパイラは何のエラーも発生させません。しかし、デバッグは失敗し、いくつかのコードフラグメント、関数、メソッドなどの実行を表示しないだけです。
私が理解する限り、その理由はいくつかありそうです。
ビルドとシステム情報。
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
CCheckGroup::itemCheckStateメソッド(デバッガが入れない)に、以下のようなものを入れています。
そして、次のようなメッセージが表示されました。
2020.05.21 13:20:44.229 CCheckGroup::itemCheckState item: 39 state: 32
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
デバッガが正常に動作しないと、プロジェクトが長期に渡って遅延する可能性があります。デバッガに関連すると思われるこのバグに、開発者の方々に注目していただきたいです。
文字数が多いので、全部は読んでいない。
しかし、デバッグ版で動作したものがリリース版で動作しない場合、またはその逆の場合は、特にクラス/構造体のすべての変数とフィールドが初期化されているかどうか確認してください。
#define GETCURRENTTICK GetCurrentTick1(Tick)
#define GETCURRENTTICK GetCurrentTick2(Tick, !i)
#define GETCURRENTTICK GetCurrentTick3(Tick)
SymbolInfoの関数が 無料であることについて。
メソッドがインラインである場合、デバッガの問題ではなく、デバッグモード用のコンパイラの問題です。
その通り、プロジェクトは、私や標準モジュールのマクロで溢れかえっていることがわかりました。そのためか、デバッガーは *.ex5 デバッグファイル内のコマンドと *.mq5 ソースファイルや他のモジュール内の行を一致させることができないことがあります...。
SymbolInfo関数は無償です。
ということは、関数自体のコストであって、文字列を参照ではなく値で渡すことのコストではないのです!
この関数の実行がEAの実行時間のかなりの割合を占めるのであれば(私はそうは思っていませんが)、キャッシュを使ったバージョンはかなりの解決策になります。
その通り、プロジェクトは、私や標準モジュールのマクロで溢れかえっていることがわかりました。そのためか、デバッガーは *.ex5 デバッグファイル内のコマンドと *.mq5 ソースファイルや他のモジュール内の行を一致させることができないことがあります...。
は関数自体のコストであり、文字列を参照ではなく値で渡す場合のコストではありません!
最初はそう思っていたんです。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
エラー、バグ、質問
fxsaber, 2020.05.20 13:24
があったほうがいい。
オプティマイザでは、これらの関数が何百億回と呼び出される。
さらに、この関数の実行がEAの実行時間のかなりの割合を占めるのであれば、キャッシュを使ったあなたの変形はかなりの解決策になります(私はそうは思っていませんが)。
ある段階になると、かかった時間の相対的な部分だけでなく、絶対的な部分も重要になってきます。