Errores, fallos, preguntas - página 2150

 
Vladislav Andruschenko:

Terminal 1755

Cuando se trabaja con el Asesor Experto y se compila - su versión actualizada aparece en el gráfico - todo está bien

pero en el probador selecciono este EA y después de la compilación se selecciona otro (anterior).

Tras el reinicio, todo es normal.

Un problema antiguo.

 

Algunos errores en el archivo de prueba. Reproducción paso a paso

  1. Deje un Agente local que funcione y limpie el Terminal Sandbox - MQL5\Files*.*
  2. Compilar EA
    #property tester_file __FILE__
    
    sinput uint Range = 100; // Входной параметр для Оптимизации
    
    #define  SETRANGE(A, START, STEP, END) ParameterSetRange(#A, true, A, START, STEP, END)
    
    void OnTesterInit()
    {
      SETRANGE(Range, 0, 1, Range);
      
      const int handle = FileOpen(__FILE__, FILE_WRITE | FILE_BIN );
      
      // Создаем файл на 4 байта
      if (handle != INVALID_HANDLE)
      {
        FileWriteInteger(handle, 0);
        
        FileClose(handle);
      }
    }
    
    void OnTesterDeinit() { ChartClose(); }
    
    #define  TOSTRING(A) #A + " = " + (string)(A) + " "
    
    void OnTesterPass()
    {
      ulong Pass;
      string Name;
      long ID;
      double dOnTester;
      uchar Data[];
    
      while (FrameNext(Pass, Name, ID, dOnTester, Data))
        Print(TOSTRING(Pass) + TOSTRING(ID)); // Распечатываем размер файла на Агенте
    
      return;
    }
    
    double OnTester()
    {
      const int handle = FileOpen(__FILE__, FILE_READ | FILE_WRITE | FILE_BIN );
    
      const int i = (int)((handle != INVALID_HANDLE) ? FileSize(handle) : -1);
      
      // Делаем файл 4 байта, делаем - 8.
      if ((handle != INVALID_HANDLE) && (FileSize(handle) == INT_VALUE))
      {
        FileSeek(handle, 0, SEEK_END);
        FileWriteInteger(handle, 0);
              
        FileClose(handle);
      }
    
      uchar Data[];    
      FrameAdd(NULL, i, 0, Data); // Передаем размер файла до изменений.
      
      return(0);
    }

  3. Al hacerlo, aparecerá un mensaje en el archivo de registro del probador diciendo que tester_file no existe todavía
    2018.02.28 08:37:29.574 Moving Average  tester_file 'Moving Average.mq5' is not exist
    2018.02.28 08:37:29.574 Moving Average  tester_file 'Moving Average.mq5' is not exist

  4. Ejecute el Asesor Experto a través de los precios de apertura en el Probador de Estrategias en el modo de Optimización de Fuerza Bruta Completa. Veremos en el registro del probador
    2018.02.28 21:20:24.424 Statistics      optimization done in 0 minutes 03 seconds
    2018.02.28 21:20:24.424 Statistics      local 101 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

  5. Reinicie inmediatamente esta misma Optimización pulsando "Inicio". Conseguiremos la ralentización de la Optimización en 30 veces - ¡bicho!
    2018.02.28 21:23:02.219 Statistics      optimization done in 1 minutes 06 seconds
    2018.02.28 21:23:02.219 Statistics      local 101 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)


  6. Los resultados del Frame-advisor mostrarán que el archivo existente no se transfiere, ya que el proceso de compilación se realizó sin él (véase el paso 3). ¿Interfaz o bicho?
  7. Vuelva a compilar el Asesor Experto. En este caso, no recibiremos los mensajes que se muestran en la p. 3, lo cual es correcto.
  8. Reinicie la optimización. FrameAdvisor mostrará que el archivo tester ha sido transferido al Agente
    2018.02.28 21:28:33.449 Moving Average (EURUSD,M1)      Pass = 0 ID = 4 
    2018.02.28 21:28:33.472 Moving Average (EURUSD,M1)      Pass = 1 ID = 8 
    2018.02.28 21:28:33.495 Moving Average (EURUSD,M1)      Pass = 2 ID = 8 
    2018.02.28 21:28:33.519 Moving Average (EURUSD,M1)      Pass = 3 ID = 8 

  9. Vuelva a ejecutar la optimización. Obtendremos una ralentización, como en el paso 4. Pero en el modo marco, veremos que tester_file no se pasó al optimizador en el segundo inicio - ¡bicho!
    2018.02.28 21:28:43.727 Moving Average (EURUSD,M1)      Pass = 0 ID = 8 
    2018.02.28 21:28:43.797 Moving Average (EURUSD,M1)      Pass = 1 ID = 8 
    2018.02.28 21:28:43.834 Moving Average (EURUSD,M1)      Pass = 2 ID = 8 
    2018.02.28 21:28:43.864 Moving Average (EURUSD,M1)      Pass = 3 ID = 8 


  10. Ejecutaremos la tercera optimización y obtendremos los resultados en el paso 8.
  11. En cuarto lugar, obtenemos los resultados en el paso 9.
  12. Así que cada ejecución impar de la optimización le da el resultado del paso 8, la optimización par le da el resultado del paso 9.

Lo que hace el EA. En el modo frame, en OnTesterInit, crea un archivo de 4 bytes y lo envía a través del mecanismo tester_file al Agente. El Agente lo abre y si ve que el tamaño del archivo es de 4 bytes, lo añadirá a 8 bytes. El propio Agente pasa el tamaño original del archivo en bytes a través del marco. De este modo se comprueba que el archivo se transfiere en la primera pasada del Optimizador, y las otras pasadas trabajan con el archivo, que temporalmente se encuentra en el Sandbox del propio Agente.

En general, hemos conseguido reproducir algunos errores.

 

puede que esta pregunta ya se haya formulado, pero no obstante:

¿es posible llamar a la ventana de parámetros del indicador en MQL5?

 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Debate sobre "Asesor de comercio multiplataforma: introducción"

fxsaber, 2016.08.17 16:51

Pasemos al ejemplo de StringConcatenate. Es difícil entender que la gente utilice esta función en MT4/5. No sólo es engorroso, sino que ni siquiera está claro. La concatenación de cadenas se ha realizado SIEMPRE en ambas plataformas mediante el operador +. Así que usar StringConcatenate para cadenas es comparable a usar la función "NumberSummary" para obtener la suma de los números. Absurdo, en definitiva.

No sólo es absurdo, sino que además no es multiplataforma.

 
Andrii Djola:

puede que esta pregunta ya se haya formulado, pero no obstante:

¿es posible llamar a la ventana de parámetros del indicador en MQL5?

Hasta donde yo sé, no existe esa función en MQL.
Pero a través de WinAPI puede abrir la lista de todos los indicadores, mirar a través del árbol de indicadores y encontrar el correcto...

 
Andrii Djola:

Tal vez esta pregunta ya se ha hecho, pero aún así:

¿es posible llamar a la ventana de parámetros del indicador en MQL5?

El Servicio de Atención al Cliente ha prometido pensar en esa función.

 

¿Por qué ocurre esto?

2018.03.01 06:54:04.342 Tester versión de depuración de "MQL5\Experts\MyExpert.ex5" puede ser optimizado en los agentes locales solamente, no Cloud, no Farm

¿Cómo lo arreglo?


 
Nexxtor:

¿Por qué ocurre esto?

2018.03.01 06:54:04.342 Tester versión de depuración de "MQL5\Experts\MyExpert.ex5" puede ser optimizado en los agentes locales solamente, no Cloud, no Farm

¿Cómo lo arreglo?


Compilar primero y luego ejecutar la optimización.

 
En la carpeta "Bases\MetaQuotes-Demo\historia\" apareció una carpeta con 2018.hcc relativa al símbolo personalizado. Un error.
 

Como continuación de esta gran característica del Probador. Al ejecutar la optimización, obtengo lo siguiente


Registro de Core1

KE      0       14:23:25.855    Startup MetaTester 5 x64 build 1755 (18 Jan 2018)
KP      0       14:23:25.862    Server  MetaTester 5 started on 127.0.0.1:3000
OJ      0       14:23:25.862    Startup initialization finished
JQ      0       14:23:25.871    127.0.0.1       login (build 1755)
HG      0       14:23:38.760    Network 38520 bytes of account info loaded
JP      0       14:23:38.760    Network 1482 bytes of tester parameters loaded
QG      0       14:23:38.760    Network 2236 bytes of input parameters loaded
OP      0       14:23:38.771    Network 4605 bytes of symbols list loaded
NK      0       14:23:38.771    Tester  expert file added: Experts\fxsaber\Test.ex5. 115516 bytes loaded
NM      0       14:23:38.771    Network 1368 bytes of optimized inputs info loaded
CH      0       14:23:38.774    Tester  successfully initialized
HL      0       14:23:38.774    Network 118 Kb of total initialization data received
JF      0       14:23:38.775    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
KL      0       14:23:38.775    Tester  optimization pass 0 started (batch of 30 tasks)


Registro de Core2.

CQ      0       14:25:27.983    Startup MetaTester 5 x64 build 1755 (18 Jan 2018)
MD      0       14:25:27.988    Server  MetaTester 5 started on 127.0.0.1:3001
FO      0       14:25:27.989    Startup initialization finished
FM      0       14:25:29.021    127.0.0.1       login (build 1755)
HK      0       14:25:29.026    Network 38520 bytes of account info loaded
IL      0       14:25:29.026    Network 1482 bytes of tester parameters loaded
RK      0       14:25:29.026    Network 2236 bytes of input parameters loaded
QL      0       14:25:29.029    Network 4605 bytes of symbols list loaded
PG      0       14:25:29.030    Tester  expert file added: Experts\fxsaber\Test.ex5. 115516 bytes loaded
DI      0       14:25:29.030    Network 1368 bytes of optimized inputs info loaded
HL      0       14:25:29.032    Tester  successfully initialized
GP      0       14:25:29.032    Network 118 Kb of total initialization data received
JR      0       14:25:29.032    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
KI      0       14:25:29.033    Tester  optimization pass 180 started (batch of 30 tasks)


Todos los agentes estaban preparados antes de la salida. No había ningún visualizador. Core2 (y Core2 - véase la captura de pantalla) arrancó dos minutos después del inicio. Resolvamos el problema.