Errores, fallos, preguntas - página 2585

 
Nikolai Semko:

¿Dónde y en qué momento se borra el mango del indicador?

Tan pronto como ya no sea necesario. Y antes de OnDeinit.

 
fxsaber:

Tan pronto como ya no era necesario. Y antes de OnDeinit.

Esa es la cuestión, en cuanto ya no es necesario, lo borro. ¿Cómo puedo decirle a un programa que está siendo eliminado si OnDeinit no funciona?

 
Nikolai Semko:

Esa es la cuestión, en cuanto ya no es necesario, lo borro. ¿Cómo puede saber un programa que está siendo eliminado si OnDeinit no funciona?

Dame la tarea real.

 
fxsaber:

El verdadero problema es decirme el verdadero problema.

El verdadero problema se solucionó fácilmente al evitar obtener su propio mango, ya que no necesita su propio mango:

Total = ChartIndicatorsTotal(0,0);
for (int i=0; i<Total; i++) 
  {
      string name=ChartIndicatorName(0,0,i);
      if (name!=MQLInfoString(MQL_PROGRAM_NAME)) 
         handle[i] = ChartIndicatorGet(0,0,name);
  }

Estoy pensando: ¿y si necesito mi propio mango...

hubo esos problemas, pero no los recuerdo

 
Nikolai Semko:

Sólo pienso: que si necesitas tu propio mango...

Hubo tareas de este tipo, pero no las recuerdo.

Init_Sync tiene esa necesidad.

 
Roman:

puesto 25786

Por el método de la aleatoriedad, he definido una copia normal en la cadena de mql, una cadena de tipo const wchar_t*.
Con este parámetro en la función memcpy, mql empezó a recibir cadenas uniformes, y sin fugas.

memcpy( out, data, wcslen(data) * (sizeof(char)*3) );

Es decir, en lugar de 2 bytes sizeof(wchar_t), utilizaba 3 bytes.
La cadena mql comenzó a tomar correctamente un puntero a la cadena const wchar_t *.
¿Está bien?

Pero curiosamente, la cadena literal autodescrita se pasa correctamente con sizeof(wchar_t).
 
Roman:

Al azar, definí la copia normal a la cadena mql, una cadena de tipo const wchar_t*
Con tal parámetro en la función memcpy, mql comenzó a recibir cadenas pares, y sin fugas.

Es decir, en lugar de 2 bytes sizeof(wchar_t), utilizaba 3 bytes.
La cadena mql comenzó a tomar correctamente un puntero a la cadena const wchar_t*
¿Es normal?

Pero curiosamente, la cadena literal autoescrita se pasa correctamente con sizeof(wchar_t).

¿Por qué se utiliza memcpy en lugar de wcscpy normal?

 
Ilyas:

¿Por qué usar memcpy en lugar del normal wcscpy?

Se utilizó memcpy como se muestra enel artículo de ejemplode Renate.
El uso de otras funciones de copia provoca los mismos problemas.
El comportamiento con estas funciones se describe en este post y eneste
Se han probado todas las funciones de copia posibles.

 
No puedo leer 100000 barras M15 EURUSD de cualquier fecha en el probador (metaquot demo hedge server)


void OnInit()
  {
    datetime first_date;
   SeriesInfoInteger(_Symbol,_Period,SERIES_FIRSTDATE,first_date);
   int bars=Bars(_Symbol,_Period);
   Print("First date ",first_date," - ",bars," bars");
   
   datetime time[];
   CopyTime(_Symbol,PERIOD_M15,D'2015.01.01',100000,time);
   Print("rows=",100000," =? ",ArraySize(time));
   Print("Load data from ",D'2015.01.01'," =? ",time[0]," to ",time[ArraySize(time)-1],", rows=",100000," =? ",ArraySize(time));
//---

  }
 
void OnTick(){


}

lee unos 37.000 bares. Cuando se ejecuta en el terminal lee las 100000 barras.


He intentado añadir el código de paginación del servidor en https://www.mql5.com/ru/docs/series/timeseries_access#synchronized

Pero nada cambia.

¿Cómo se leen estas 100000 barras en el probador?

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
 
elibrarius:

¿Cómo se calculan estas 100.000 barras?

Empiece por leer el artículo https://www.mql5.com/ru/articles/239

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
Razón de la queja: