Obtener el número de decimales de cualquier número (no sólo las comillas) evitando Digits() en MQL4 y MQL5 - página 19

 
Gracias, lo probaré mañana.
 
Genial, en mql5 han eliminado la dirección de ordenación de la función ArraySort, en el artículo sobre la migración desde mql4 aconsejan utilizar ArraySetAsSeries en su lugar... Pero no funciona con matrices multidimensionales =))) Ayer modelé ArraySort de la nada)))
 
Dmitry Fedoseev:

Elijo la opción de conversión a cadena.

ajustado su opción ligeramente

int ds(double v){
   string s=(string)v;
   int l=StringLen(s);
   int p=StringFind(s,".",0);
   return((p>0)?l-p-1:0);
}
 
Igor Makanu:

Gracias, ya lo tengo, lo probaré mañana.

Se ha olvidado una aclaración importante :)

#define    test(M,S,EX)        {uint mss=GetTickCount();int nn=(int)pow(10,M);for(int tst=0;tst<nn&&!_StopFlag;tst++){EX;} \
                                printf("%s: loops=%i ms=%u",S,nn,GetTickCount()-mss);}

De lo contrario, puedes quedarte colgado durante mucho tiempo si fallas)

Taras Slobodyanik:

He retocado un poco tu versión.

Opción excelente, pero funciona 10 veces más lento que los ya propuestos a continuación

 
fxsaber:

¿Puedo pensar en una implementación rápida de la traducción de una matriz de estructuras (longitud múltiplo de sizeof(int)) hacia y desde una matriz int[]?

La aplicación práctica es el intercambio rápido de datos a través de los recursos. Mi variante es demasiado universal, por lo que se ralentiza.


Estas funciones aparecieron en MT5

No existen en MT4 y probablemente no existirán. Por lo tanto, tenemos que resolver el problema con y sin estas funciones (si son útiles).

El resultado será útil para un gran número de usuarios del foro.


He escrito una plantilla muy sencilla para el brainstorming con mi solución a este problema.


Resultado

La estructura es una cadena. Su longitud no puede ser un múltiplo de int o no int.

 
Ilya Malev:
Es genial, mql5 ha eliminado la dirección de ordenación de la función ArraySort. Parece que en el artículo sobre la migración desde mql4 recomiendan usar ArraySetAsSeries en su lugar... Pero no funciona con matrices multidimensionales =))) Ayer modelé ArraySort de la nada)))

Artículos

Métodos de clasificación y su visualización con MQL5

Dmitrii Troshin, 2017.05.26 09:44

Se ha creado una biblioteca especial Graphic.mqh para trabajar con gráficos en MQL5. Este artículo describe un ejemplo de su uso práctico y explica la esencia de la mariscalización. Para cada clasificación, hay al menos un artículo separado, y se han publicado estudios enteros sobre algunos de ellos, por lo que aquí sólo se describe la idea general.

 
Andrey Khatimlianskii:

¿Existe una comparación de la velocidad de ordenación con el habitual ArraySort incorporado en el muestreo aleatorio? ¿Hay algún método que ordene los datos aleatorios más rápido en promedio...

O no más rápido, pero al menos igual. O no tan rápido, pero al menos no más del doble de tiempo. Sin ninguna Dll y otras cosas como el multithreading
 
Алексей Тарабанов:

La estructura es una cadena. Su longitud no puede ser un múltiplo de int, o no int.

La multiplicidad es la condición del problema.

 
No puedo superarlo.
Me aseguraré de participar cuando llegue al ordenador.
Tras un rápido vistazo, ya tengo ideas sobre cómo mejorar el resultado en un 10-20%.

 
Nikolai Semko:
No puedo superarlo.
Me aseguraré de participar cuando llegue al ordenador.
Ya tengo algunas ideas sobre cómo mejorar el resultado en un 10-20%.

¿El resultado de qué?