Errores, fallos, preguntas - página 2542

 
¿Por qué cuando apago el ordenador y entro en MT4 al día siguiente no se guardan los niveles?
 

Desarrolladores, hola.

El CArrayList de la capacidad de jinerik se utiliza incorrectamente. Si se trata de un tamaño de reserva, debería llamarse en el constructor de esta manera:

ArrayResize(m_items,0,m_default_capacity);

Ahora mismo es así:

ArrayResize(m_items,m_default_capacity);

Si quieres asignar y contabilizar por ti mismo, entonces empieza a posicionarte y a usar en todas partes, incluyendo bsearch y demás, aunque no es una buena idea.


PS. Estudiando el código, he descubierto que después de todo se pasa m_size. Cuando la matriz está vacía, BinarySearch devuelve 0, no -1.

¿Y por qué debemos organizar la capacidad nosotros mismos cuando la tenemos a nivel de ArrayResize?

PPS. ¿Hay planes para crear un LowerBound?
 

Hay tres puntos principales sobreCArrayList:

1. Pensar en eliminar la implementación adicional de la capacidad, puesto que ya existe en ArrayResize

2) Arreglar BinarySearch para el array vacío. Por defecto, hay 4 elementos en el array y el índice 0 se pasa primero y se devuelve cuando el tamaño del array es cero.

3. Es conveniente añadir LowerBound. Es extraño que nadie haya preguntado antes

 
Yevhenii8370:
¿Por qué cuando apago el ordenador y entro en MT4 al día siguiente no se guardan los niveles?

Aquí hay dos opciones: o bien hay un indicador/asesor que limpia todos los niveles durante la inicialización, o el conjunto no tiene tiempo para guardar. Me he encontrado con ambos problemas, el primero se soluciona editando el código, y el segundo guardando el conjunto dos veces y cargando la versión guardada aliniciar el terminal.

 
Sergey Dzyublik:

MT5 (build 2118), ¿Cuánto tiempo más podemos esperar para solucionar los errores en la funcionalidaddel typedef?
Algunas tonterías - un paso a la izquierda de un ejemplo primitivo sobre el uso de typedef y eso es todo - un montón de errores que bloquean el desarrollo posterior.

Gracias por el código.

Error corregido.

La versión de demostración de MT4 1192 ha sido publicada hoy, intente utilizar el MetaEditor 2121 que viene con MT4 para compilar los archivos MQ5

 

sacó el indicador, dejado aquí en el gráfico (adjunto).

¿Cómo se quita?

Busqué en la lista de objetos - no lo encontré. saqué todos los indicadores y el EA - no ayudó.

Archivos adjuntos:
 
barashka:

sacó el indicador, dejado aquí en el gráfico (adjunto).

¿Cómo se quita?

Busqué en la lista de objetos - no encontré. saqué todos los indicadores y EA - no ayudó.

La lista de objetos tiene un botón para mostrar los objetos ocultos, borrarlos allí...

 
Vladimir Pastushak:

En la lista de objetos, hay un botón para mostrar los objetos ocultos, así que elimínalos allí...

: )
 
Sergey Dzyublik:

https://www.mql5.com/ru/docs/basis/types/classes

Al principio me sorprendió, porque no sabía que existía el offsetof.
Pero la realidad puso todo en su sitio:

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- объявим переменную типа Children 
   Children child;   
//--- узнаем смещения от начала структуры  
   Print("offsetof(child.c)=",offsetof(child.c)); 
   Print("offsetof(child.s)=",offsetof(child.s));
}   



'offsetof' - función no definida

Gracias por el mensaje.

Hay errores de copia-pega en la ayuda, vamos a arreglarlo:

en lugar del nombre de la variable child debería ser el tipo de clase Children y en lugar de '.' (acceso al campo) debe ser una coma ( offsetof es una macro incorporada (condicional))

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- узнаем смещения от начала структуры  
   Print("offsetof(Children,c)=",offsetof(Children,c); 
   Print("offsetof(Children,s)=",offsetof(Children,s));
}   

 

Problema con .NET. El programa se bloquea cuando la biblioteca accede a otros módulos personalizados, diciendo que no se encuentra el archivo:

System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.TypeInitializationException: Инициализатор типа "MDD.IQFeedAPI" выдал исключение. ---> System.IO.FileNotFoundException: Не удалось загрузить файл или сборку "NLog, Version=2.1.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c" либо одну из их зависимостей. Не удается найти указанный файл.

Todas las dlls utilizadas (incluyendo la mencionada NLog.dll) están en la misma carpeta, pero por alguna razón el sistema no las ve cuando se ejecuta desde MT. Funciona bien sólo con el framework regular. ¿Es lo mismo para todos, o me estoy perdiendo algo? Si alguien sabe cómo solucionar este problema, se lo agradecería.