Características del lenguaje mql5, sutilezas y técnicas - página 222
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
Esto no es nada nuevo, es la forma en que siempre ha funcionado desde su nacimiento.
Sólo si los datos son mayores que __atomic__, el acceso debe ser envuelto/protegido con secciones críticas (o mutex a la terminal std::thread)
Bueno, no conocía este comportamiento, y esperaba un proceso separado al importar.
Pensé que los punteros DLL global será nuevo, en cada programa cargado MT5.
Con lo que tuve que sudar para entender la lógica, preguntándose por qué el error aparecerá en la memoria.
Pero cuando descubrí la razón por el método try (print), entonces todo el plan arquitectónico de trabajo con DLL será construido de manera diferente.
Hombre, tienes razón en lo de los mutex, no lo había pensado. Gracias por el consejo.
Sí. Aunque si el método no tiene parámetros, puede hacerlo:
Aplicación:
Con la ejecución parcial de las órdenes cambia el campoORDER_TIME_SETUP_MSC.
En consecuencia, DEAL_TIME_MSC puede ser menor que ORDER_TIME_SETUP_MSC de su orden.
¿Qué tal si utilizamos una función de comparación personalizada?
Tienes razón, ¡gracias! Me pasé en un punto plano. Dejaré tu variante para ordenar.
Aplicación.
ZZY Es una pena que, por subcampo o método, no funcione.
Aquí está el QuickSort optimizado de mi biblioteca, ligeramente adaptado a tus necesidades.
Puede ordenar arrays enormes sin desbordamiento de pila (debido a la recursión incontrolada).
¡Hola y gracias por compartirlo!
Esto sería perfecto si funcionara. Sin embargo, cuando se pega en un script .mq5 y se ejecuta lamentablemente su código arroja el siguiente error(es):
¿Podrías arreglar esto? Para ti es probablemente fácil mientras que yo no sabría por dónde empezar :-)
Cuando se utiliza Ar rayInsert, se puede ahorrar memoria cuando Array_Destination[] es más pequeño que Array_Source[] desde el que se añaden los elementos.
Para ello, debe aplicar ArraySwap dos veces: antes y después de ArrayInsert.
Por ejemplo, esto es relevante cuando se trabaja con grandes archivos MqlTick, etc.
Foro sobre negociación, sistemas automatizados de negociación y ensayo de estrategias de negociación
Peculiaridades del lenguaje mql5, sutilezas y técnicas de trabajo
fxsaber, 2022.02.20 15:00
Tienes razón, ¡Gracias! Me overmudryl en un lugar recto. Voy a dejar su variante para la clasificación.
Aplicación.
Hubo un error en el método de Partición. Versión corregida.
Había un error en el método de Partición. Versión corregida.
Para un caso especial cuando se toma un campo numérico para ordenar (la situación más común), escribí una variante que es varios órdenes de magnitud más rápida que la anterior. Pero consume el doble de memoria. Es relevante para matrices grandes.
Aplicación (con medición del tiempo de ejecución).
Resultado.