mql5言語の特徴、微妙なニュアンスとテクニック - ページ 224

 
Maxim Kuznetsov #:

if (ChartID()!=0) {

    // Graphical chart presents
    // draws on it

}

どういう意味ですか?

 
Andrey Dik #:

どういう意味ですか?

アンドリュー、ここはスレッド違いだ。別のスレッドで調べてくれ。

 
Artyom Trishkin #:

アンドリュー、ここはスレッド違いだ。そんなことは別のスレッドで調べるべきだ。

私たちはmql5の特殊性について話しているのだから、正しいスレッドだ。
 
Andrey Dik #:

どう思う?

これを試してみる?

 // --- если обычное тестирование без оптимизации и визуализации
bool IsUsualTester = (MQLInfoInteger(MQL_TESTER) && !MQLInfoInteger(MQL_OPTIMIZATION) && !MQLInfoInteger(MQL_VISUAL_MODE));

 // --- если не тестирование и не оптимизация, значит видимый график
bool IsVisibleChart = (!IsUsualTester && !MQLInfoInteger(MQL_OPTIMIZATION));
 
Andrey Dik #:

どう思う?

Andreiさん、記事(セクション2.MQL5のモード)を見てください。)

Программируем режимы работы советника с помощью ООП
Программируем режимы работы советника с помощью ООП
  • www.mql5.com
В статье рассматривается идея мультирежимного программирования торговых роботов на MQL5. Используется объектно-ориентированный подход для реализации каждого из режимов. Приводится пример иерархии режимных классов и пример классов для тестирования. Предполагается, что мультирежимное программирование торговых роботов полностью учитывает особенности каждого режима работы MQL5-советника. Для идентификации режимов создаются функции и перечисление.
 
Andrey Dik #:

どういう意味ですか?

これは正しい分岐ではないと思われるかもしれませんが、簡単なことです:

もし ChartID が妥当な値を示せば、それは GUI にその場所があり、描画が可能であることを意味します。

ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE)が無効なハンドルを返した場合、テスターの中にいることになります。(あるいはMQ VPS - 触ったことがないのでわかりません)。

 
Maxim Kuznetsov #:

間違ったスレッドに見える人もいるかもしれないが、簡単なことだ:

もしChartIDが合理的であれば、それはGUIにその場所があり、描画できることを意味する。

もしChartGetInteger(ChartID(),CHART_WINDOW_HANDLE)が無効なハンドルを返したら、テスターの中です。(あるいはMQ VPS - 触ったことがないのでわかりません)。

テスターにも仮想ではあるがチャートがある。

 
Andrey Dik #:

テスターもバーチャルとはいえチャートを持っているので、行き止まりの道だ

そのスレッドでお答えしました(質問は同じです)。

 
Andrey Dik #:

どう思う?

//true если работа на чарте или в визуальном тестировании, в остальных случаях false
bool CheckMode ()
{
  if(MQLInfoInteger(MQL_DEBUG)        ||
     MQLInfoInteger(MQL_PROFILER)     ||
    (MQLInfoInteger(MQL_TESTER) && ! MQLInfoInteger(MQL_VISUAL_MODE)) ||
     MQLInfoInteger(MQL_OPTIMIZATION) ||
     MQLInfoInteger(MQL_FRAME_MODE)) return false;

  return true;
}
 
Artyom Trishkin #:

私はそのスレッド(同じ質問)であなたに答えた。

まあ、あなたにはすべての権利がある。オフトピックなところは削除して・・・何か問題でも?

理由: