Características da linguagem mql5, subtilezas e técnicas - página 224

 
Maxim Kuznetsov #:

if (ChartID()!=0) {

    // Graphical chart presents
    // draws on it

}

O que isso significa? Você pode falar mais sobre isso?

 
Andrey Dik #:

O que isso significa? Você pode falar mais sobre isso?

Andrew, este é o tópico errado. Você precisa descobrir isso em outro tópico.

 
Artyom Trishkin #:

Andrew, este é o tópico errado. Você deve descobrir essas coisas em outro tópico.

Por que não o errado? Estamos falando sobre as peculiaridades do mql5, portanto, este é o tópico certo.
 
Andrey Dik #:

Alguém tem alguma opinião?

Talvez tentar isso?

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

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

Alguém tem alguma opinião?

Andrei, consulte o artigo (Seção 2. Modos em MQL5), ele pode ajudar )).

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

O que isso significa? Você pode falar mais sobre isso?

Pode parecer para alguns que esse não é o ramo certo, mas é simples:

Se ChartID for razoável, isso significa que há um lugar para ele na GUI e que você pode desenhar nele, portanto, ou o VISUAL_TESTER ou apenas trabalhar no terminal.

Se ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) retornar um identificador inválido, então estamos dentro do testador. (Ou talvez no MQ VPS - não mexi nele, não sei).

 
Maxim Kuznetsov #:

Para alguns, esse pode parecer o tópico errado, mas é simples:

Se o ChartID for razoável, isso significa que há um lugar para ele na GUI e que você pode desenhá-lo. Portanto, ou você usa o VISUAL_TESTER ou trabalha apenas no terminal.

Se ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) retornar um identificador inválido, então estamos dentro do testador. (Ou talvez no MQ VPS - não mexi nele, não sei).

O testador também tem um gráfico, embora virtual, portanto, esse é um beco sem saída.

 
Andrey Dik #:

O testador também tem um gráfico, embora virtual, portanto, é um caminho sem volta

Respondi a você nesse tópico (as perguntas são as mesmas).

 
Andrey Dik #:

Alguém tem alguma opinião?

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

Respondi a você nesse tópico (mesma pergunta).

Bem, você tem todos os direitos. Exclua o que estiver fora do tópico... Qual é o problema?