Programación asíncrona y multihilo en MQL - página 6

 
Andrey Pogoreltsev:

MQL5 tiene asincronía, por ejemplo,OrderSendAsync.

En cuanto a la interacción con la red o el sistema de archivos - utilizar WinAPI, escribí la solución anterior. Creo que todo está ahí para eso. Puedes leer cómo utilizar estos métodos en el sitio de Microsoft. ¿Qué más queda por descubrir?)

Sí,conozco elOrderSendAsync, pero sólo sirve para enviar solicitudes.
Estaba buscando en esta dirección
de WinAPI, pero sin saber que los hilos no están disponibles en mql, los prototipos en el inluder eran engañosos.

 
Andrey Pogoreltsev:

MQL5 tiene asincronía, por ejemploOrderSendAsync.

MQL4/5 siempre ha tenido una ejecución asíncrona y multihilo del código MQLhttps://www.mql5.com/ru/docs/runtime/running.

es decir, todo está "fuera de la caja", el único problema es el intercambio de datos entre los programas MQL, no hay ninguna solución lista de los desarrolladores, o más bien sólo hay variables globales de la terminal - por lo que han diseñado el intercambio de datos - muy inconveniente e ineficiente, pero hay soluciones listas para el intercambio de datos en QB

Usted mencionó por encima de aprendizaje NS - que requiere multithreading, bueno, sí, pero MT viene sólo con Alglib y lo he utilizado siempre que no he visto que se necesita más de 1-2 segundos para aprender NS, es decir, ¿por qué es rápido? - Si va a utilizar paquetes de terceros de NS - no hay opciones, tendrá que ir más allá de MT - utilizar dll, entonces de nuevo, ¿cuál es el problema con el intercambio de datos y multihilo? - todo implementado en una dll.

había una mención a las pitones... No hablo de la velocidad allí, es un entorno muy específico para el desarrollo de NS, todo parece estar allí, pero es imposible usarlo - espera y espera... ¡lo más entretenido es trabajar con NS en Python! )))

SZZY: Python no tiene multithreading en su sentido normal, pero podría estar equivocado. Odio Python - un montón de ruido y corriente principal, todo funciona fuera de la caja, pero ..... pero no es posible trabajar con un sistema tan lento, las únicas ventajas son un montón de código Python ya hecho y una gran comunidad de Internet

 

¿Por qué los punteros desnudos son tan inseguros?

En mi opinión, los desarrolladores están mintiendo, y la verdadera razón es evitar el tirón de la dll. Lo más probable es que también se haya puesto alguna convención de llamada engañosa.

 
Vict:

¿Por qué los punteros desnudos son tan inseguros?

En mi opinión, los desarrolladores están mintiendo, y la verdadera razón es evitar el tirón de la dll. Lo más probable es que también se haya puesto alguna convención de llamada engañosa.

Como escribió el moderador, el acceso a las direcciones de memoria física está denegado por razones de seguridad.
A través del cual los codificadores hábiles y sin escrúpulos pueden acceder a cualquier elemento del programa compilado.

 
Roman:

Como escribió el moderador, el acceso a las direcciones de memoria física está denegado por razones de seguridad.
A través del cual los codificadores hábiles y sin escrúpulos pueden acceder a cualquier elemento del programa compilado.

Me resulta difícil de creer. No necesitamos la competencia de las lenguas maduras. Y todos estos trucos, como el cambio de tamaño al recompilar, para el mismo propósito.

 
Vict:

Me resulta difícil de creer. Simplemente no necesita la competencia de los idiomas maduros. Y todos estos trucos, como el cambio de tamaño al recompilar, para el mismo propósito.

No, lo es, recuerda la descompilación masiva en mql4, se han tenido en cuenta los errores acumulados y se ha implementado la protección.
En general, esta es una opción de seguridad efectiva, en detrimento de las llamadas directas a la WinAPI, pero como la dll es abierta, la funcionalidad no cambia, la forma de interacción sí.
Por lo tanto, no se encontrará con ninguna descompilación o posible piratería de su programa. Y esto es bueno y hay que felicitar a los desarrolladores.

 
Vict:

¿Por qué los punteros desnudos son tan inseguros?

admin Renat siempre respondió a este tipo de preguntas que Metaquotes siempre elige una solución que está garantizada para proporcionar la seguridad, así alternativamente, se obtiene un puntero a la memoria y puede inyectar un virus que puede añadir su código a la ex4 / ex5 compilado


Romano:

a expensas de hacer llamadas directas a la WinAPI

¿Qué problema hay? Tienes un programa principal que se ejecuta en un proceso principal, no se ejecutará sin el programa principal, ¿está claro?

- ¿Se puede ejecutar el cuerpo de una función de Python en un proceso separado utilizando WinAPI?

-..... cuerpo de la función desde Java usando WinAPI ?

-..... cuerpo de la función desde WordBASIC usando WinAPI ?


como una opción, aquí Metakvot dio una respuesta clara - esta funcionalidad no se proporciona, ir más abajo de las instancias: escribir a Python Software, Oracle, Microsoft - volar sus cerebros todavía

)))

 
Roman:

No no, es así, recuerda la descompilación generalizada en mql4, se tuvieron en cuenta los fallos y se implementó la protección.
En general, se trata de una opción de seguridad eficaz, en detrimento de las llamadas directas a la WinAPI, pero como se abre el acceso a la dll, no se cambia la funcionalidad, sino la forma de interacción.
Por lo tanto, no encontrará ninguna descompilación o posible piratería de su programa. Y esto es bueno y respeta a los desarrolladores.

Teniendo en cuenta, y los podcasts del mercado comenzaron a compilar en nativ

Renat

Ya es débilmente descompilable desde la build 500, ya que el sistema de seguridad ha sido completamente cambiado.

Tras la migración al motor MQL5 y al Market, el tema del descompilador morirá por completo. Quien no lo sepa - los productos de Market se compilan en 32/64 nativ (ensamblador puro, no hay forma de descompilar) en el momento de la compra y se encriptan para el hardware del comprador.

Y la descompilación de algunos otros sitios methacquot incluso rentable - para conducir a todos a sí mismos por descompilaciones miedo y el mal. En general, nada personal, sólo negocios.
 
fxsaber:

Sólo en MQL, ambas tareas se resuelven ejecutando automáticamente un recuento de EA.

Exactamente, así es como lo hago yo. Sin embargo, no utilizo Web-Request, pero la auto-optimización - para mí y para TC League - funciona a pleno rendimiento. Y la selección se hace en varias pasadas, primero se optimiza un sistema "limpio" y se fijan sus parámetros, luego se ejecuta la optimización del punto de equilibrio y se fijan sus parámetros, y luego se ejecuta la optimización de la SL de protección (si es necesario). Y en todas partes se trabaja con fotogramas y se procesan los datos de los mismos.

Todo el multithreading necesario ya está en marcha.

 
Igor Makanu:

admin Renat siempre respondió a este tipo de preguntas, que Metaquotes siempre elige una solución que está garantizada para proporcionar la seguridad, así, alternativamente, se obtiene un puntero a la memoria y puede inyectar un virus que puede añadir su código a la ex4 / ex5 compilado

¿De verdad crees que no puedo ejecutar un terminal con un Asesor Experto bajo un depurador y encontrar desde qué dirección relativa comienza la ejecución? ¿La dirección de cualquier función o variable? Otra cosa es que estas direcciones puedan cambiar (por los trucos aplicados), pero en teoría puedo averiguar todo lo que me darían los punteros normales.

La otra cosa que les asusta es averiguar las direcciones de las funciones a través de los punteros en tiempo de ejecución y arrancarlas en las dlls.

Razón de la queja: