Errores, fallos, preguntas - página 2590
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
¿Puede decirme cuál podría ser la razón del error [Demasiadas solicitudes de operaciones] en la segunda llamada de la rutina OrderSend (después de iniciar el terminal)?
Revisé los registros de lunes a jueves. He visto lo mismo en todas partes: la primera orden limitada se envía con éxito y todas las órdenes siguientes vuelven con el error [Demasiadas solicitudes de operaciones]. Entonces empiezan a pasar. La única acción criminal es la llamada frecuente de CopyTickRange en OnInit().
BCS Broker MetaTrader 5 Terminal x64 build 2170 iniciado
@Ilyas
Desde la dll, el puntero a cadena const wchar_t* copia una cadena par, con estos parámetros
wcsncpy( out, data, wcslen(data) * 2 );
Con estos parámetros, por supuesto, se filtra.
Pero la cadena resulta uniforme, no se cuela ni un solo carácter de más.
Y después de terminar el programa, el registro del Asesor Experto muestra un mensaje
Y hay una prueba de este tipo.
Muestra lo siguiente
El carácter char ' ' devuelve dos bytes en lugar de uno. Probablemente porque está en Unicode.
Y la cadena devuelve doce bytes cada una en lugar de dos bytes cuando se compara con wchar_t.
Como forma posible, tal vez la alineación de tipo superior distorsiona el tamaño de la cuerda en alguna parte?
@Ilyas
Desde la dll, el puntero a cadena const wchar_t* copia una cadena par, con estos parámetros
Con estos parámetros, por supuesto, se filtra.
Pero la cadena resulta uniforme, no se cuela ni un solo carácter de más.
Y después de terminar el programa, el registro del Asesor Experto muestra un mensaje
Y hay una prueba de este tipo.
Muestra lo siguiente
El carácter char ' ' devuelve dos bytes en lugar de uno. Probablemente porque está en Unicode.
Y la cadena devuelve doce bytes cada una en lugar de dos bytes cuando se compara con wchar_t.
Como forma posible, tal vez la alineación de tipo superior distorsiona el tamaño de la cuerda en alguna parte?
@Ilyas
Desde la dll, el puntero de cadena const wchar_t* copia una cadena simple, con estos parámetros
Con estos parámetros, por supuesto, se filtra.
Pero la cadena resulta ser par, sin que falte ningún carácter extra.
Y después de terminar el programa, el registro del Asesor Experto muestra un mensaje
Y tal prueba
Muestra lo siguiente
El carácter char ' ' devuelve dos bytes en lugar de uno. Probablemente porque está en Unicode.
Y la cadena devuelve doce bytes cada una en lugar de dos bytes cuando se compara con wchar_t.
Como forma posible, tal vez la alineación de tipo superior distorsiona el tamaño de la cuerda en alguna parte?
1. en MQL sólo Unicode, por eso el tamaño de los caracteres es de 2 bytes
2. la cadena es una estructura (4 bytes de tamaño de búfer y 8 bytes de tamaño de puntero)
La copia a la cadena debe ser
Si esto no funciona, el error debe encontrarse en otra parte
Parece que la función ResourceReadImage() no funciona correctamente cuando se obtienen datos de archivos BMP. Hice un script para dibujar una imagen como fondo en el lienzo. Si tomamos los píxeles de la imagen del archivo ubicado en el disco duro y los rellenamos en el lienzo, todo funciona bien, pero si tomamos los píxeles de la imagen del recurso BMP que se encuentra en el propio archivo ex5 utilizando la función ResourceReadImage(), la imagen de fondo resultante se verá como un trozo diminuto y muy ampliado de la imagen de origen. ¿Cuál es la razón?
El ciclo de punto de copia es erróneo, sustitúyalo por
Y esta pregunta - ¿cómo obtener una lista de variables de entrada, lo mismo que viene en la funciónFrameInputs() , pero sólo en una pasada, sin optimización?
Sí, hace poco había surgido una pregunta así, de alguna manera la perdí de vista, y ahora yo mismo tengo una tarea así (quiero hacer archivos de conjunto automáticamente).
¿En qué dirección cavar? Y si alguien se acuerda de esa discusión, ¿dónde está (no la encuentro)?
Por supuesto, en cada Asesor Experto podría escribir una función, que crearía dicha lista, pero sería mejor tener una función de biblioteca universal.Se podría, por supuesto, escribir una única función en cada EA que creara dicha lista, pero sería mejor una función de biblioteca universal.
Echa un vistazo aquí.
Echa un vistazo aquí.
¡Eso es, eso es!
Muchas gracias.
1. en MQL sólo Unicode, por eso el tamaño de los caracteres es de 2 bytes
2. la cadena es una estructura (4 bytes de tamaño de búfer y 8 bytes de tamaño de puntero)
La copia a la cadena debe ser
Si esto no funciona, el error debe encontrarse en otra parte
¿Y qué ocurre si el tamaño de la cadena a copiar es mayor o menor que el tamaño del buffer asignado?