Características del lenguaje mql5, sutilezas y técnicas - página 224

 
Maxim Kuznetsov #:

if (ChartID()!=0) {

    // Graphical chart presents
    // draws on it

}

¿Qué significa eso? ¿Puede ampliarlo?

 
Andrey Dik #:

¿Qué significa eso? ¿Puede ampliarlo?

Andrew, este es el hilo equivocado. Tienes que informarte en otro hilo.

 
Artyom Trishkin #:

Andrew, este es el hilo equivocado. Deberías averiguar esas cosas en otro hilo.

Estamos hablando de las peculiaridades de mql5, así que es el correcto.
 
Andrey Dik #:

¿Alguien tiene alguna idea?

¿Quizás probar esto?

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

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

¿Alguien tiene alguna idea?

Andrei, por favor, mira el artículo (Sección 2. Modos en MQL5), puede que te ayude )).

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

¿Qué significa eso? ¿Puede ampliarlo?

Puede parecer a algunos que esta no es la rama correcta, pero es simple:

si ChartID da razonable - significa que hay un lugar para él en GUI y funciona en él se puede dibujar, así que o VISUAL_TESTER o simplemente trabajar en terminal.

Si ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) devuelve un handle inválido, entonces estamos dentro del tester. (O quizás MQ VPS - no lo he tocado, no lo sé).

 
Maxim Kuznetsov #:

A algunos les parecerá un hilo equivocado, pero es sencillo:

si ChartID da razonable - significa que hay un lugar para él en GUI y funciona en él se puede dibujar, así que o VISUAL_TESTER o simplemente trabajar en terminal.

Si ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) devuelve un handle inválido, entonces estamos dentro del tester. (O quizás MQ VPS - no lo he tocado, no lo sé).

El probador también tiene un gráfico, aunque virtual, así que esto es un callejón sin salida.

 
Andrey Dik #:

El probador también tiene un gráfico, aunque virtual, por lo que es un camino sin salida

Te he contestado en ese hilo (las preguntas son las mismas).

 
Andrey Dik #:

¿Alguien tiene alguna idea?

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

Te contesté en ese hilo (la misma pregunta).

Bueno, tienes todos los derechos. Borrar donde no viene a cuento... ¿Cuál es el problema?