Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 224

 
Maxim Kuznetsov #:

if (ChartID()!=0) {

    // Graphical chart presents
    // draws on it

}

Bu ne anlama geliyor? Biraz daha açabilir misiniz?

 
Andrey Dik #:

Bu ne anlama geliyor? Biraz daha açabilir misiniz?

Andrew, bu yanlış başlık. Başka bir başlıkta öğrenmen gerekiyor.

 
Artyom Trishkin #:

Andrew, bu yanlış başlık. Böyle şeyleri başka bir başlıkta öğrenmelisin.

Neden yanlış başlık olmasın? Burada mql5'in özelliklerinden bahsediyoruz, o yüzden doğru başlık bu.
 
Andrey Dik #:

Herhangi bir fikri olan var mı?

Belki bunu denersin?

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

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

Herhangi bir fikri olan var mı?

Andrei, lütfen makaleye bakın (Bölüm 2. MQL5'teki Modlar), yardımcı olabilir )).

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

Bu ne anlama geliyor? Biraz daha açabilir misiniz?

Bazılarına bunun doğru dal olmadığı görünebilir, ancak basittir:

ChartID makul bir sonuç veriyorsa - bu GUI'de bir yer olduğu ve içinde çalışabileceği anlamına gelir, bu nedenle ya VISUAL_TESTER ya da sadece terminalde çalışın.

ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) geçersiz tanıtıcı döndürürse, o zaman test cihazının içindeyiz demektir. (Ya da belki MQ VPS - ona dokunmadım, bilmiyorum).

 
Maxim Kuznetsov #:

Bu bazılarına yanlış bir konu gibi görünebilir, ancak basittir:

ChartID makul bir sonuç veriyorsa - bu GUI'de bunun için bir yer olduğu ve içinde çalışabileceği anlamına gelir, bu nedenle ya VISUAL_TESTER ya da sadece terminalde çalışın.

ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) geçersiz tanıtıcı döndürürse, test cihazının içindeyiz demektir. (Ya da belki MQ VPS - ona dokunmadım, bilmiyorum).

Test cihazının da sanal da olsa bir çizelgesi var, bu yüzden bu bir çıkmaz sokak.

 
Andrey Dik #:

Test cihazının da sanal da olsa bir çizelgesi var, bu yüzden çıkmaz bir yol

Size o başlıkta cevap verdim (sorular aynı).

 
Andrey Dik #:

Herhangi bir fikri olan var mı?

//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 #:

Size o başlıkta cevap verdim (aynı soru).

Tüm haklara sahipsiniz. Konu dışı olan yerleri silin... Sorun nedir?