Errores, fallos, preguntas - página 2574
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Banal si imprime los resultados de estas funciones en ontick entonces es para el tiempo 1970.01.01 para el precio 0
¿Quizás tengas un fallo en tu ordenador? Tengo este código en la compilación 1220.
imprime
Si se imprimen los resultados de estas funciones en ontick, es para la hora 1970.01.01 para el precio 0.
¿Cuál esel código de error?
¿Cuáles son los parámetros de la prueba?
¿Se cargan los datos de las semanas y los meses? ¿Cuántos hay en total?
¿Cuál esel código de error?
¿Cuáles son los parámetros de la prueba?
¿Se cargan los datos por semanas y meses? ¿Cuántos hay en total?
He vuelto a comprobarlo y ahora todo funciona.
He descargado la historia.
Gracias.
Observación de la memoria.
Tengo CopyRates ejecutado unas mil veces en mi código.
Luego se procesa de alguna manera el array de citas, y al final de esto llamo:
ArrayRemove(ArrayQuotes,0,ArraySize);
ArrayFree(ArrayQuotes);
ArrayResize(ArrayQuotes,0);
ArrayFree(ArrayQuotes);
ZeroMemory(ArrayQuotes);
(sólo se experimenta de forma diferente)
Resultado - la memoria sigue creciendo geométricamente y se obstruye, junto con la carga en los procesadores - el procesador i7 se obstruye en un 80% en total en todos los núcleos lógicos, la memoria es más de Giga.
Hasta ahora he conseguido limitar el consumo de recursos con un programa de terceros: la CPU no más del 15% y la memoria no más del giga.
Pregunta: ¿es un error o una característica de la plataforma?
Por cierto, extraño comportamiento del meta-editor, debería ser corregido:
fn_call();/////////////////////
Al hacer doble clic en las barras oblicuas se resaltan las barras con el carácter anterior (si no es un número/letra allí).
¿Por qué es un inconveniente? Hice una edición temporal en el código, resalté el espacio de esta manera, luego necesito resaltar y borrar rápidamente las barras simples.
Volviendo a la cuestión de pasar cadenas desde la dll, wchar_t* como puntero.
Del artículo de Renat sobre el trabajo con cadenas en dll, se desprende que mql type string toma un puntero a cadena wchar_t* de dll externa.
Es decir, enviamoswchar_t* a la dll y lo recibimos como cadena & en mql.
Pero la función C
no funciona correctamente, es decir, se recibe un puntero a la cadenawchar_t* dest en mql, pero falla y entra y sale.
A veces el terminal se bloquea y el programa se termina.
Con la función
El terminal no se bloquea, pero las cadenas también llegan de forma intermitente.
Por favor, corríjalo en la próxima versión.
ZS. Me olvidé de especificar que el punterowchar_t* se pasa desde otro hilo.
Es decir, la función wcscpy_s o wcscpy se llama en un hilo separado.
Volvemos a la cuestión de pasar cadenas desde la dll, wichar_t* como puntero.
Del artículo de Renat sobre el trabajo con cadenas en dll, se desprende que mql type string toma un puntero a cadena wichar_t* de dll externa.
Es decir, enviamos wichar_t* a la dll y lo recibimos como cadena & en mql.
Pero por alguna razón, la función C
no funciona correctamente, es decir, se recibe un puntero a la cadenawichar_t* dest en mql pero falla y entra y sale.
A veces el terminal se bloquea y el programa se termina.
Con la función
El terminal no se bloquea, pero las cadenas también llegan de forma intermitente.
Por favor, corríjalo en la próxima versión.
ZS. Se me olvidó mencionar que el puntero wichar_t* se pasa desde otro hilo.
Es decir, la función wcscpy_s o wcscpy se llama en un hilo separado.
¿Y quién asignará la memoria para la cadena dest?
La memoria se asigna en el código mql como
y se pasa como un puntero a la memoria asignada, ya que string en mql es wchar_t* en dll
Func("Task", out);