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

 

He entendido por qué std::async es tan lento. El tema es que tengo linux+gcc/clang, no hay thread pool detrás de async, estúpidamente se inicia un nuevo thread cada vez para cada nuevo trabajo. Lo que me confundía era que dos hilos creados consecutivamente e inmediatamente destruidos tuvieran el mismo id:

void f() {
   cout << this_thread::get_id() << endl;
}

int main()
{
   thread t1{f};
   t1.join();

   thread t2{f};
   t2.join();
   return 0;
}
// cout: 140448079447808
// cout: 140448079447808

La prueba asíncrona en wind+msvc mostró que en la prueba en la que gcc inició 10 hilos, msvc inició 6 (CPU de 4 núcleos), es decir, no se trata de un nuevo hilo tonto que se inicia para la tarea, obviamente hay algún tipo de cola.

Conclusión: async más o menos adecuado sólo en winnda (vía thread pool).

В моём случае это точно, так как понял что пул статичный по количеству потоков, мне это не подходит.

La piscina no es estática y el tamaño puede modificarse. Pero como si controlas fuertemente async() :), como es evidente - el estándar ni siquiera garantiza la implementación (un pool de hilos o no), y si es un pool, no tienes ninguna influencia en él (el compilador puede querer asignar 1 hilo al pool, ni siquiera te preguntará).

Pero si estás escribiendo sólo para el viento, entonces puedes usar async en principio (aunque ahora no me gusta).

SZY: por qué necesitamos async sin thread pool no lo entiendo en absoluto...

 
Vict:

He entendido por qué std::async es tan lento. El tema es que tengo linux+gcc/clang, no hay thread pool detrás de async, estúpidamente se inicia un nuevo thread cada vez para cada nuevo trabajo. Lo que me confundía era que dos hilos creados consecutivamente e inmediatamente destruidos tuvieran el mismo id:

La prueba asíncrona en wind+msvc mostró que en la prueba en la que gcc inició 10 hilos, msvc inició 6 (CPU de 4 núcleos), es decir, no se trata de un nuevo hilo tonto que se inicia para la tarea, obviamente hay algún tipo de cola.

Conclusión: async más o menos adecuado sólo en winnda (a través de thread pool).

La piscina no es estática y el tamaño puede modificarse. Pero como si controlas fuertemente async() :), como es evidente - el estándar ni siquiera garantiza la implementación (un pool de hilos o no), y si es un pool, no tienes ninguna influencia en él (el compilador puede querer asignar 1 hilo al pool, ni siquiera te preguntará).

Pero si estás escribiendo sólo para el viento, entonces async podría ser utilizado (aunque no me gusta ahora).

SZY: No entiendo por qué necesitamos async sin thread pool ...

Teniendo en cuenta los resultados del experimento y la nueva información, ¿ha cambiado su opinión sobre la necesidad del multihilo en MQL?
 
Реter Konow:
Teniendo en cuenta los resultados del experimento y la nueva información, ¿ha cambiado su opinión sobre la necesidad del multithreading en MQL?

Bueno, he estado improvisando async aquí - una envoltura de alto nivel para los perezosos. En general, no estoy en contra del multithreading.

¿Utilizaría el multithreading en µl? No, no lo haré. Peter, yo paso del mercado, y francamente no me interesa mucho un ecosistema cerrado con un lenguaje potente. ¿Por qué crear otro C++ (que no es una tarea fácil en absoluto)? ¿Para que los más "emprendedores" vendansus "griales" estrictamente a través del mercado? Bueno, no es ese tipo de misión.

 
Vict:

Bueno, he estado improvisando async aquí - una envoltura de alto nivel para los perezosos. En general, no estoy en contra del multithreading.

¿Utilizaría el multithreading en µl? No, no lo haré. Peter, yo paso del mercado, y francamente no me interesa mucho un ecosistema cerrado con un lenguaje potente. ¿Por qué crear otro C++ (que no es una tarea fácil en absoluto)? ¿Para que los más "emprendedores" vendan sus "griales" estrictamente a través del mercado? Bueno, no es ese tipo de misión.

Bueno, probablemente sea al revés. Para que los más emprendedores vendan algo más que"griales". Al fin y al cabo, son los "griales" los que no requieren herramientas serias. Si aparecen nuevas y potentes aplicaciones, quizá el "parasitismo del grial" en el algotrading disminuya y prevalezca el valor del enfoque profesional. No es un hecho, por supuesto, pero puede serlo...
 
Vict:

¿Utilizaré el multithreading en µl? No, no lo haré.

Al menos una respuesta sincera a la pregunta: ¿por qué se necesita el multithreading en los problemas MQL?

Si no me equivoco, lo pregunté 5 veces sin respuestas concretas, y hubo intentos de relacionar el hilo con la formación de NS, pero se me pasó.

ReTeg Konow:
Bueno, probablemente sea al revés. Para que los más emprendedores vendan algo más que "griales". Al fin y al cabo, son los "griales" los que no requieren herramientas serias.

Peter, ¡tienes el talento de hacer declaraciones a bombo y platillo debido a tu baja competencia!

Si no me equivoco, no tienes ninguna habilidad para escribir Asesores Expertos en comercio, ni siquiera un simple indicador de apertura/cierre, ¿y ahora dices que no se necesitan herramientas serias para crear un Asesor Experto que comercie con un historial puramente positivo?

Intenta escribir un solo Asesor Experto en comercio: ¡te espera un mundo de emocionantes aventuras!

))))

 
Igor Makanu:

Al menos una respuesta sincera a la pregunta: ¿por qué necesitamos el multithreading en los problemas MQL?

Si no me equivoco, he preguntado 5 veces por qué es necesario, no se han dado respuestas, se ha intentado relacionar la rosca con la formación de NS, pero en mi opinión "se ha pasado".

Peter, ¡tienes el talento de hacer declaraciones a bombo y platillo debido a tu baja competencia!

Si no me equivoco, no tienes ninguna habilidad en la escritura de Asesores Expertos de comercio, incluso un simple indicador de apertura/cierre, y ahora estás diciendo que no se necesitan herramientas serias para crear un Asesor Experto que opere en una historia puramente positiva?

Intenta escribir un solo Asesor Experto en comercio: ¡te espera un mundo de emocionantes aventuras!

))))

No quiero iniciar un off-topic en el hilo, pero tú también tienes talento para hacer declaraciones a bombo y platillo debido a tu baja competencia. En este caso, no conoces mis capacidades y experiencia. Nunca he escrito indicadores, es cierto, pero los he escrito. ¿Y qué hay de sus declaraciones sobre el Sharpe en MQL, que deben haber machacado mis desarrollos? ¿Que no puedo hacer nada serio con mi enfoque y que todo funciona mal, etc.? ¿Alta competencia? )

Basta con mirar el mercado para ver que allí no se vende (casi) nada más que"griales". 13000 "griales" y 1000 utilidades, indicadores y bibliotecas. En una suposición. Por lo tanto, es fácil hacer estos "griales". Especialmente en MT4. Y es la creación de los "griales" que define el conjunto de herramientas de desarrollo MQLQL en gran demanda, poniendo una barrera para el desarrollo de aplicaciones.

 
Реter Konow:

No quiero iniciar un off-topic, pero también tienes talento para hacer declaraciones a bombo y platillo debido a tu baja competencia. En este caso, usted no conoce mis capacidades y experiencia. Nunca he escrito indicadores, es cierto, pero sí he escrito expertos y he hecho muchos. ¿Y qué hay de sus declaraciones sobre el Sharpe en MQL, que deben haber machacado mis desarrollos? ¿Que no puedo hacer nada serio con mi enfoque y que todo funciona mal, etc.? ¿Alta competencia? )

Basta con mirar el mercado para ver que allí no se vende (casi) nada más que "griales". 13000 "griales" y 1000 utilidades, indicadores y bibliotecas. En una suposición. Por lo tanto, es fácil hacer estos "griales". Especialmente en MT4. Y es la creación de los "griales" que define el conjunto de herramientas de desarrollo MQLQL en gran demanda, poniendo una barrera para el desarrollo de aplicaciones.

extraño, si usted estaba escribiendo expertos en comercio, ¿por qué tienes preguntas en el hilo "mi enfoque" sobre las acciones elementales, cómo obtener las propiedades de una orden abierta? (cuando escribiste la tabla), al igual que ahora, la afirmación en voz alta de que escribir un grial de probadores no es laborioso?

bueno como sabes hacer todo, ¿entonces no hiciste un buen chiste?


mis afirmaciones sobre Sharp están en mi blog y en KB en las publicaciones de@fxsaber, todo funciona y las tablas también, y@fxsaber estaba probando bajo su visión de cómo deberían funcionar las tablas, en esto resultó ser una implementación técnica bastante difícil - ¡necesitaba mostrar una tabla de historial de tratos de más de 6000 filas en 20 columnassobre 100 milvalores! y en la segunda pestaña actual de órdenes abiertas como 19 columnas de información, todo funciona y nada es lento ni en línea ni en el probador ;) . Lo principal es que no sobrecargue el terminal y el PC en general ( lo he probado y no lleva un 7-8% de carga de CPU ni en PC ni en portátil)

PD: sobre Mercado no dirá nada y no aconseja, ver mi pre-post - ni usted ni yo no se publica allí, respectivamente, el nivel de competencia es cero ;)

PSPS: ¿estás muy interesado en una especie de batalla )))) para demostrar que Sharp es inferior a tu trabajo por la velocidad de escritura del software aplicado? )))) - Bueno, intente en su hilo "Mi enfoque" para publicar una tabla con al menos10k células, ver cómo funciona;)

 
Igor Makanu:

extraño, si usted estaba escribiendo expertos en comercio, ¿por qué tienes preguntas en el tema "Mi enfoque" sobre las acciones elementales, cómo obtener las propiedades de una orden abierta? (cuando escribiste la tabla), al igual que ahora, la afirmación en voz alta de que escribir un Grial de probadores no es laborioso?

bueno como sabes hacer todo, entonces no hiciste un buen chiste?


mis afirmaciones sobre Sharp están en mi blog y QB en las publicaciones de @fxsaber, todo funciona y las tablas también, y probadas por @fxsaber a su visión de cómo deberían funcionar las tablas, en esta resultó ser una implementación técnica bastante difícil - necesitaba mostrar una tabla de historial de operaciones de más de 6000 líneas en 20 columnas ~ 12 000valores y en la segunda pestaña las órdenes abiertas actuales como 19 columnas de información, todo funciona y nada es lento ni en línea ni en tester ;) . Lo principal es que no sobrecargue el terminal y el PC en general ( lo he comprobado y no superaba el 7-8% de carga de CPU ni en el PC ni en el portátil).

PD: No voy a decir nada de Market y te aconsejo que no lo hagas, mira mi pre-post - ni tú ni yo no estamos publicados allí, respectivamente, el nivel de competencia es cero ;)

El historial de órdenes no era necesario en mis estrategias y no he trabajado con él, pero no significa que no sepa abrir órdenes, etc. Además, hace tiempo que trabajé con EAs. Pero todo es muy sencillo, (sobre todo con mi enfoque). No tengo dificultades para crear un Asesor Experto en comercio. El nivel de dificultad para crear gráficos es mucho mayor, y por eso hay muchos Asesores Expertos y casi ningún gráfico. (Pregúntale a@fxsaber.) Y he estado esperando un artículo sobre la conexión de las tablas de Sharp durante mucho tiempo. (Sólo que no conseguirás mi nivel de facilidad de conectividad, hazme caso. :))

La condición de vendedor en el mercado apenas lo convierte a uno en un pensador y le abre los ojos a los problemas existenciales del algotrading).

 
Igor Makanu:
...

PSPS: ¿te apetece algún tipo de batalla )))) para demostrar que Sharp es inferior a tu trabajo en términos de velocidad de escritura de software de aplicación? )))) - Bueno, intenta en tu hilo "Mi enfoque" publicar una tabla con al menos 10k celdas, a ver cómo funciona;)

He publicado una tabla en MQL4 con 1000 filas y cada fila tenía más de 20 celdas. En total, más de 20 mil células. Lo has visto. Funcionó muy rápido. Mira de nuevo, si no me crees. Subrayo MQL4. Funcionaría 10 veces más rápido en un 5.

 
Реter Konow:

Publiqué una tabla allí en MQL4 con 1000 filas y cada fila tenía más de 20 celdas. En total, más de 20.000 células. Lo has visto. Funcionó muy rápido. Mira de nuevo, si no me crees. Subrayo: MQL4. Funcionaría 10 veces más rápido en un 5.

Aunque sea un millón de células. Si puedes ver un máximo de 1000 de ellos en la pantalla, ¿por qué actualizar/dibujar todo?

Razón de la queja: