Cualquier pregunta de un PROFI a un SUPER PROFI - 1. - página 20
![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
Dada:
En la función init() del EA, se inicializa un generador MQL PSP: MathSrand(...). Cuando el terminal se inicia, se cargan varias (para mayor claridad, digamos tres) copias del Asesor Experto desde la plantilla. La carga es rápida, por lo que es muy probable (y casi siempre lo es) que las funciones TimeLocal() y TimeCurrent() devuelvan los mismos valores en todas las copias.
Pregunta:
¿Qué trucos hay para conseguir que el PRNG inicialice números diferentes en distintas copias del EA? En otras palabras, ¿dónde (con un mínimo esfuerzo de programación) conseguir el elemento de aleatoriedad?
Dada:
En la función init() del EA, se inicializa un generador MQL PSP: MathSrand(...). Cuando el terminal se inicia, se cargan varias (para mayor claridad, digamos tres) copias del Asesor Experto desde la plantilla. La carga es rápida, por lo que es muy probable (y casi siempre lo es) que las funciones TimeLocal() y TimeCurrent() devuelvan los mismos valores en todas las copias.
Pregunta:
¿Qué trucos hay para conseguir que el PRNG inicialice números diferentes en distintas copias del EA? En otras palabras, ¿dónde (con un mínimo esfuerzo de programación) conseguir el elemento de aleatoriedad?
GetTickCount ?
podría funcionar, pero no es seguro...
Un milisegundo para un programa puede ser una eternidad).
podría funcionar, pero no es seguro...
opción 2 - utilizar variables globales para crear "semáforos" para inicializar a los expertos en secuencia.
Pregunta sobre la obtención de filas de la dll en mql.
function mysql_fetch_row from libmysql.dll returns type MYSQL_ROW
Este tipo se define como: typedef char** MYSQL_ROW
¿Cómo puedo llegar a esta matriz de cadenas devuelta?
¿Se conocen las dimensiones de la matriz?
pero la longitud de cada fila no lo es.
Hay otra cosa en ese ejemplo de enlace: obtener un puntero de *longitudes.
, row[i] ? row[i] : "NULL"); }También resulta ser una matriz... Pero cómo llegar a ella...
esto es lo que se obtiene en MQL al pasar el resultado de mysql_fetch_row a la cadena
p0ƒu0ƒ;1;a
donde
p0ƒu0ƒ es la dirección (8 bytes) de la cadena
;1;a son sus datos utilizables
pero si lo pones en int, entonces en lugar de p0ƒ la dirección es 42152040
Si el puntero a la cadena no cambia mientras se ejecuta el programa, puede devolver el puntero a la cadena sin copiarlo en el buffer.
¿Entonces no hay manera de hacerlo en MQL? ¿Ni siquiera en MQL5?
Si el puntero a la cadena no cambia mientras se ejecuta el programa, puede devolver el puntero a la cadena sin copiarlo en el buffer.
Simplemente