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
Y sí, analizar textos en MQL es muy divertido :-) Bueno, no está diseñado para el análisis de texto. Es decir, se puede, pero es un fastidio...
Matrices y órdenes: así es MQL
A eso me refiero... :)
La versatilidad es a menudo sinónimo de pereza, y más aún de cuerda.
Déjenme darles un ejemplo.
Una vez analicé una cadena recibida de un criptointercambio utilizando WebRequest. Y lo analicé utilizandola biblioteca JSON de Sergeev, que portó de la "biblioteca C++ de alta velocidad". Y he notado que la velocidad es muy insatisfactoria. Allí todo se hacía a través de cuerdas "universales".
Entendí que la razón de la baja velocidad era el encadenamiento y quise evitar el uso de funciones de encadenamiento y escribí una función que parseaba directamente desde el array uchar. El resultado me sorprendió bastante. Mi velocidad de análisis era .... (redoble de tambores) 800 veces más rápido. Si el análisis de una cadena completa a través de JSON tardó 0,3 segundos, mi función lo analizó en menos de la mitad de un milisegundo.
Aquí está un ejemplo de mi parsing a través de uchar array.
La esencia de su sugerencia es la siguiente:
Originalmente quería usar objetos MT para transferir cadenas.
La segunda variante me pareció inicialmente más rápida.
Cuando tienes tantas tareas como yo, tienes que confiar en tu intuición a la hora de elegir una solución. No tendrás suficiente vida para revisar todo a fondo. Se necesita un equipo o un gran sentido de la intuición para elegir la dirección correcta. Y, por supuesto, hay que sacrificar la profesionalidad y aguantar las lagunas de conocimiento. De lo contrario, te quedarás haciendo garabatos (aunque sean profesionales) y nunca terminarás un megaproyecto. Esta es la realidad.
La esencia de su sugerencia es la siguiente:
No es para nada así.
Estoy ocupado en este momento - no hay tiempo para explicar.
Si desmontas mi código en detalle, para que no queden espacios en blanco, harás muchos descubrimientos por ti mismo.
ZS. Sólo que sin un depurador será mucho más difícil averiguarlo. No sé si has empezado a usarlo o todavía no utilizas esta importante herramienta.
...
Si examina mi código en detalle, y no deja espacios en blanco, hará un montón de nuevos descubrimientos.
ZS. Sólo que sin usar el depurador será mucho más difícil de entender. No sé si has empezado a usarlo o todavía no utilizas esta importante herramienta.
Mañana miraré más detenidamente tu código. (No olvides los husos horarios).
Tal vez, efectivamente, descubra algo nuevo. ))
Cualquier estructura es una cadena. Una matriz de estructuras es una matriz de cadenas con una descripción de su formato. Clase - estructura y métodos, implementación de la clase - conjunto de implementaciones (perdón por mi francés).
No es necesario convertir nada hasta el último momento. En todas partes sólo hay hilos. Simplemente, están normalizados: algunos toman 2, o 4 bytes, y otros toman 1, por lo que hay que alinearlos.
La primera vez que utilicé este enfoque fue en 1993, con el SGBD Clarion. Funcionó muy rápidamente.
Cualquier estructura es una cadena. Una matriz de estructuras es una matriz de cadenas con una descripción de su formato. Clase - estructura y métodos, implementación de la clase - conjunto de implementaciones (perdón por mi francés).
No es necesario convertir nada hasta el último momento. En todas partes sólo hay hilos. Simplemente, están normalizados: algunos toman 2, o 4 bytes, y otros toman 1, por lo que hay que alinearlos.
La primera vez que utilicé este enfoque fue en 1993, con el SGBD Clarion. Todo funcionó muy rápidamente.
Más o menos a la misma hora con lo mismo :-) Una escuela... por cierto el SGBD no era malo y estaba adelantado a su tiempo en muchos aspectos.
PD/ hay un cosquilleo muy querido a veces, a posteriori a nivel de concepto "todo es una cadena/texto". La velocidad está realmente al nivel de python.
Mañana miraré más de cerca tu código. (No te olvides de los husos horarios).
Tal vez descubra algo nuevo. ))
Puede ser útil
El ejemplo de indicador que utiliza la variable de recurso en el ejemplo doble, que no reinicializa su valor al cambiar de TF. Esta es una alternativa más conveniente a las variables globales de la terminal. Del mismo modo, se pueden utilizar diferentes estructuras de datos y matrices de estas estructuras como globales.
todavía puede ser útil.
)
Por interés, voy a probar la variante con unión. Y conCharArrayToString y StringToCharArray. Aunque mi intuición me dice que difícilmente será más rápido que la comunicación a través de la descripción de МТ objetos. Pero puede que me equivoque. Veamos...
Peter, has hecho un comodín desde el principio, y ahora estás discutiendo sobre el rendimiento de la mensajería dentro de tu comodín. Ya lo has entendido: una cuerda es sólo un útil ***, nada más. Cualquier dato es en realidad una colección de bytes en la memoria. Así que se le aconseja que maneje los bytes directamente, pero es terco como siempre al no entender que la misma cadena es la misma matriz de bytes. Así que no pierdes nada en la conversión de la cadena a la matriz uchar. Pero cuando se analiza una cadena, su rendimiento realmente se ralentiza. Por eso toda tu intuición está perdida.
1. Peter, originalmente hiciste un juego, y ahora estás discutiendo sobre el rendimiento de la mensajería dentro de tu juego.
2.Entiendes: una cadena es sólo un útil ***, nada más. Cualquier dato es en realidad una colección de bytes en la memoria. Así que te aconsejan que trabajes con bytes directamente, pero eres terco como siempre al no entender que la misma cadena es la misma matriz de bytes. Así que no pierdes nada en la conversión de cadena a matriz uchar. Pero cuando analizas una cadena, tu rendimiento realmente se ralentiza.
3. Así que toda tu intuición es sólo un fallo.
1. "Salvajismo" - en este caso, es su comprensión, no lo que hice. Han hecho falta 75 páginas para que entiendas de qué se trata y de qué es el motor. Entiéndase: los defectos y errores no caracterizan a una entidad. Ninguna forma de la esencia caracteriza a la propia esencia. Al igual que tu ropa no define el tipo de persona que eres. Sólo el pensamiento equivocado juzga el todo por lo particular.
2. Para mí está claro como es. Hoy comprobaré si hay una ganancia real de velocidad utilizando la función StringToChar.
3. Cada día compruebo mi intuición. Cada día lo dudo. Y con razón. Si falla, debe guiarse por la Razón. Pero la Razón es demasiado limitada, arrogante y estúpida para confiar siempre en ella. Por lo tanto, la intuición es la única alternativa. Si sabes lo que quiero decir...