Características del lenguaje mql5, sutilezas y técnicas - página 223
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
Para un caso particular en el que se utiliza 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.
¿Qué le parece esta opción?
¿Qué te parece esto?
No puedo probarlo.
No lo compruebes.
Biblioteca QuickSort aquí
La biblioteca QuickSort está aquí
Gracias, ¡es una muy buena opción! Parece que yo también tengo QuickSort, pero por alguna razón es tremendamente lento.
Su opción podría ser envuelto en macros de alguna manera para que sea más rápido de usar ...
Gracias, ¡es una muy buena opción! Parece que tengo QuickSort también, pero por alguna razón los frenos son salvajes.
Su opción podría ser envuelto en macros para que sea más rápido de usar....
No veo por qué necesita macros. Es muy simple como es.
cómo formatear correctamente algo que se parece a esto en C:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
intentando ordenar a través de plantillas:
template <typename T>
int sort(T &arr[],int (*cmp)(const T &,const T&))
{
}
no funciona - no se puede poner un puntero de función en el argumento. Debe haber un typedef separado
pero el typedef no puede (¿o puede?) ser una plantilla.
los macroms crecen fuera de estos problemas :-)
cómo formatear correctamente algo que se parece a esto en C:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
Estamos intentando utilizar plantillas:
falla - no puedes poner un puntero de función en el argumento. Debe haber un typedef separado
pero el typedef no puede (¿o sí?) ser una plantilla....
los macroms superan estos problemas :-)
He descubierto una característica poco obvia de MQL (y C++)
Es decir, el valor por defecto se sustituye en el parámetro (p) en el punto de llamada al método (p.f1()) y este valor se toma de la descripción del método en la clase C1 - el tipo declarado de la variable ptr, no el tipo real del objeto obj.
(Lo cual, en general, es lógico).
Foro sobre negociación, sistemas automatizados de negociación y prueba de estrategias de negociación
Errores, fallos, preguntas
Andrey Dik, 2022.06.24 08:38
¿MQL_VISUAL_MODE es un caso especial de MQL_TESTER?
¿MQL_OPTIMIZATION es un caso especial de MQL_TESTER?
Es decir, ¿MQL_TESTER incluye tanto MQL_VISUAL_MODE como MQL_OPTIMIZATION?
Necesito que el EA realice algunas acciones cuando trabaje en un gráfico y en modo visual, pero no en todos los demás casos. No consigo averiguar cómo seleccionar las banderas adecuadas para este caso al comprobar MQLInfoInteger()?
Podría hacerlo muy simple, por ejemplo, así:
if (MQLInfoInteger(MQL_VISUAL_MODE) || MQLInfoInteger(MQL_CHART_MODE))
{
//выполняем некоторые действия
}
pero la bandera MQL_CHART_MODE no se proporciona en mql5.
¿alguien tiene alguna idea?
¿Alguien tiene alguna idea?
if (ChartID()!=0) {
// Graphical chart presents
// draws on it
}