Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 111
![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
No entiendo cómo, he corregido los nombres, la línea sigue siendo roja independientemente del tipo de orden, sólo que se llama de otra manera. (entonces tengo que encontrar la forma de cortarlo a 10 barras), necesito exactamente la forma
pruébalo ahora.
Es bueno que haya un libro de consulta por ahí)
Al pulsar el botón de compilar el bot muere junto con el terminal, y después de abrir EX no se abre y este archivo está vacío.
Se ve así.
También se mira, si se pone azul, verde, dorado, blanco, estos colores cambian, pero el gris oscuro y el azur no se ponen, sale blanco.
Es bueno que haya un libro de consulta por ahí)
Al pulsar el botón de compilar el bot muere junto con el terminal, y después de abrir EX no se abre y este archivo está vacío.
Se ve así.
También he mirado, si pongo azul, verde, dorado, blanco, estos colores cambian, pero el gris oscuro y el azul no, sale blanco.
string string_value, // строка
int start_pos, // с какой позиции начать
int length=0 // длина извлекаемой строки
);
Gracias.
También necesito ayuda: tengo que averiguar cuántos caracteres hay en una cadena, ¿cómo lo hago?
Uso StringSplit para dividir una cadena leída de un archivo. Pero la salida del array pierde las cadenas, todas excepto la primera. En la salida, todas las cadenas, excepto la primera, están vacías, aunque el tamaño de la matriz es correcto.
Además, me he encontrado con un comportamiento incomprensible con arrays de cadenas. Tengo que hacer arrays bidimensionales para almacenar cadenas en un array.
¿Alguien se ha encontrado con este comportamiento?
if( StringFind( fileBuffer[idx][0], "[Main]" ) >= 0 ) {
idx++;
Print( "Buffer(main) = " + fileBuffer[idx][0] ); // debug
if( StringFind( fileBuffer[idx][0], "Kit_Names=" ) >= 0 ) {
Print( "check1 - " + fileBuffer[idx][0] ); // debug
string tmp = StringSubstr( fileBuffer[idx][0], 10 );
Print( tmp ); // debug
StringReplace( tmp, "\"", "" );
Print( tmp ); // debug
Print( StringSplit( tmp, sep, list ) );
Print( "check22 - " + tmp ); // debug
for(int i = 0; i < ArrayRange(list,0); i++) Print(list[i][0]); // debug
}
}
idx++;
}
Gracias.
También necesito ayuda: tengo que averiguar cuántos caracteres hay en una cadena, ¿cómo lo hago?
Devuelve el número de caracteres de la cadena.
string string_value // строка
);
Devuelve el número de caracteres de una cadena.
string string_value // строка
);
Declaro un array a nivel global de EA. Luego en la función especial init() llamo a la función de usuario que llena el array con constantes de cadena.
Luego, en la función especial start(), utilizo el array sólo para leer los datos.
Algún tiempo después, otros datos llenarán la matriz. Es decir, cuando ejecuto el EA, espero que el array permanezca sin cambios mientras el EA está trabajando, pero los datos de alguna manera llegan al array, y sólo después de algún tiempo (más de 10 minutos). Cuando reinicie el Asesor Experto, el array se llenará como debe ser, pero algún tiempo después, por razones que no entiendo, el array volverá a contener los valores erróneos.
La única salida es recargar constantemente el array en el start(), pero no me gusta mucho, porque el array debería llenarse realmente sólo durante la inicialización.
¿Cuál puede ser el problema? ¿Cómo proteger la matriz de las modificaciones?
¿Puedes darme una pista, por favor?
...
¿Qué puede ser? ¿Cómo evitar que un array sea modificado?
Un consejo, por favor.
Declaro un array a nivel global de EA. Luego en la función especial init() llamo a la función de usuario que llena el array con constantes de cadena.
Luego, en la función especial start(), utilizo el array sólo para leer los datos.
Algún tiempo después, otros datos llenarán la matriz. Es decir, cuando ejecuto el EA, espero que el array permanezca sin cambios mientras el EA está trabajando, pero los datos de alguna manera llegan al array, y sólo después de algún tiempo (más de 10 minutos). Cuando reinicie el Asesor Experto, el array se llenará como debe ser, pero algún tiempo después, por razones que no entiendo, el array volverá a contener los valores erróneos.
La única salida es recargar constantemente el array en el start(), pero no me gusta mucho, porque el array debería llenarse realmente sólo durante la inicialización.
¿Cuál puede ser el problema? ¿Cómo proteger la matriz de las modificaciones?