#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279voidOnStart()
{
conststring Name = "ObjectName";
ObjectCreate(0, Name, OBJ_BITMAP_LABEL, 0, 0, 0);
for (int i = 0; i < 10; i++)
_B(::ObjectGetInteger(0, Name, OBJPROP_COLOR), 100); // Повторное обращение к тому же объекту должно быть быстрым, но этого не происходит.ObjectDelete(0, Name);
Print(::ObjectSetInteger(0, Name, OBJPROP_COLOR, 0)); // true для удаленного объекта!
}
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
MT5とスピードの関係
fxsaber, 2021.03.10 14:53
Market Watchを遅くするもののわかりやすい例です。
Processorの欄の値を見てください(右から2番目)。
Market Overviewはビデオカードが担当すべきなのでは?
市場概況はビデオカードが担当すべきなのでは?
特に、MTが仮想マシン内にある場合(珍しいケースではない)。
市場概況はビデオカードが担当すべきなのでは?
ターミナルにはFPS(Frames per Second)の制限はありません。Market Watchでは300fps以上になることもあります。
取引端末でfps50以上のビジュアライゼーションは、計算機資源の 無駄遣いになってしまいます。
市場概況はビデオカードが担当すべきなのでは?
は、むしろSysListView32をベースとするのではなく、それ自体は高速ではなく、レンダリングのための独自の要素を持っていますが、スクロールや ソートなどを実装 するすべての "ベルとホイッスル "を備えています。もう一つの質問ですが、このフォームで作業するとき、そんなに必要なのでしょうか? そして、作業期間中はオフにすることが、この問題を解決するための選択肢になると思います(問題であればですが...)。
結果
非常に高価なものです。 また、ObjectSet関数のエラーも同様です。
検索文字列:オシブタ026。
そして、ObjectSet関数のエラーも同様に。
検索文字列:オシブタ026。
オブジェクト処理非同期
オブジェクトの取り扱いは非同期
ObjectSetは常にtrueを返さなければならないことが判明しました。
ObjectSetは常にtrueを返さなければならないことが判明しました。
ヘルプを読む
https://www.mql5.com/ru/docs/objects/objectsetinteger
戻り値
グラフィックオブジェクトのプロパティを変更するコマンドがグラフィックに正常に送信された場合のみtrueを返し、そうでない場合はfalseを返します。エラーの 詳細情報を得るには、GetLastError() を呼び出します。
ObjectSetは常にtrueを返さなければならないことが判明しました。
論理で同じ結論は出せない。
Anton:
false -ChartIDに 誤りがある場合のみ。自分のChartID(0)では常にtrueです。
偽を引き起こすには、相当な努力が必要です。