Una vez más, sobre el multihilo - página 6

 
dd:

así que no es sólo el envío de la orden, hay un montón de otras comprobaciones que se hacen. Pero todas ellas se ponen en cola hasta que una función termina, la otra no se ejecuta ....

Lo he descrito en los términos del problema. Y es una tarea compleja. DLL o chats o lo que sea - lo que me interesa es el escenario en el que puedo paralelizar estas tareas y seguir corriendo en el probador para entender la situación ...

Debes decidir si has venido a por la luz, o a decirle a todo el mundo lo que debe funcionar y cómo debe funcionar.

No tengo ningún deseo de seguir resolviendo tu problema, tú sabes mejor lo que hay que hacer y cómo hay que hacerlo.

Buena suerte.

 
Andrey Khatimlianskii:

Tienes que decidir si estás aquí para la luz o para decirle a todo el mundo lo que debe funcionar y cómo debe funcionar.

No tengo ningún deseo de seguir resolviendo tu problema; tú sabes mejor lo que hay que hacer y cómo hacerlo.

Buena suerte.

no se ha ofrecido ningún consejo práctico sobre los términos del problema... Buenas noches a ti también...
 
Andrey Khatimlianskii:

Tienes que decidir si estás aquí para la luz o para decirle a todo el mundo lo que debe funcionar y cómo debe funcionar.

No tengo ningún deseo de seguir resolviendo tu problema; tú sabes mejor lo que hay que hacer y cómo hacerlo.

Buena suerte.

mi querida, mi hermoso sol, ¿has leído el problema? está claramente descrito allí - en el bucle, además de la orden Enviar en un segundo, un montón de otras tareas tienen que ser hechas - por ejemplo para cerrar 500 000 órdenes o no cerrar - comprobar ... 0,1 lote, 50 000 de depósito, ¿eres bueno con las matemáticas? Y sí, es sintético. Pero su consejo no vale nada.
 
dd:

Tardo 5 días en ejecutar esta estrategia en el probador con 24 núcleos a mi disposición. Y sólo funciona un núcleo. Por no hablar del hecho de que el registro, nadie necesita un registro estúpido para ese momento puede hincharse en un par de terabytes. Y todo ello sin optimizaciones. Y este estúpido registro no puede ser desactivado de ninguna manera ...

¿Cómo crees que si acelero el proceso por lo que dicen - 4 horarios, cada uno en su núcleo - un aumento en este punto 4 veces. Más un proceso separado para cerrar 1000 operaciones, digamos, o dividir este proceso en 5 o 10 hilos - un aumento de 10 veces. Además de un proceso separado para la apertura de posiciones por señales ...

Creo que múltiples y tiempos ...

Pero cada milisegundo + lag al broker + lag del broker a la bolsa (si no es una cocina) es una gran pérdida. Es extraño que esto no se entienda en Siberia...

¿Un pase en el probador en 5 días? Este es un caso excepcional))

 
Dmitry Fedoseev:

¿Un pase en el probador en cinco días? Este es un caso excepcional))

bueno, cuando tienes una operación y esperas cinco minutos no hay nada pendiente... pero cuando hay miles de ellos por segundo, nada sobresaliente :)
 
dd:
Bueno, cuando hay una transacción y esperamos cinco minutos para nada pendiente ... pero cuando hay miles de ellos por segundo, nada extraordinario :)

Ejecuta la optimización, al menos 24 pases y todos los núcleos estarán ocupados. Por lo tanto, no tiene sentido poner nada en paralelo en una sola pasada.

 
Dmitry Fedoseev:

Ejecuta la optimización, al menos 24 pases y todos los núcleos estarán ocupados. Por lo tanto, no tiene sentido poner nada en paralelo en una sola pasada.

Estás confundiendo el frío con el calor. Empezaré a optimizar cuando lo necesite. Ahora mismo quiero conseguir una ejecución óptima del código con el actual EA, que tiene un montón de acciones a cada segundo. No hay que confundir el paralelismo en la "optimización" y el paralelismo en un solo EA ... Son dos grandes diferencias. Siempre intenta decir que puede ejecutar un mismo script en paralelo... No lo discuto y nadie lo discute. Este tema trata de otra cosa: cómo utilizar varios núcleos en la ejecución de un script.
 
dd:
Este tema trata de otra cosa: cómo utilizar varios núcleos en la ejecución de un solo script.
El código debe estar ya escrito para utilizar múltiples hilos. No hay otra manera.
 
Aliaksandr Hryshyn:
El código debería estar ya escrito para utilizar múltiples hilos.
No hay duda, y estoy pidiendo un toque en la nariz cómo hacerlo. Pero después de leer, no sólo este hilo, me he dado cuenta de que no es tan sencillo. He descrito mi tarea lo más claramente posible, y me gustaría escuchar la receta.
 
dd:
sin preguntas, y estoy pidiendo que se me indique cómo hacerlo. Pero después de leer, no sólo este hilo, me he dado cuenta de que no es tan sencillo. He descrito mi tarea lo más claramente posible, y me gustaría escuchar la receta.
Puede haber diferentes recetas, la más ideal, según el enunciado del problema, es el uso de dll con sus cálculos de escritura en los indicadores. Pero esto es complicado y no vale la pena... Pero necesitas saber exactamente qué tipo de código tienes ahí.