Discusión sobre el artículo "Intercambio de datos entre indicadores Es fácil" - página 2

 
<br/ translate="no">

...Sólo una pregunta es cómo convertir un puntero en un número entero. Aquí es donde nos ayudará la Dynamic Link Library, es decir, las capacidades de C++ de conversión de tipos de datos. Dado que los punteros en C++ son un tipo de datos de cuatro bytes, es conveniente utilizar el tipo int de cuatro bytes para nuestros propósitos...

Si no me equivoco, el autor habla de conversión implícita de tipos. Este es un artículo muy informativo - muchas gracias al autor.

También quería añadir que si necesitas hacer un método SetPtr, no puedes prescindir de la conversión explícita de tipos.

Se verá así

double* SetPtr(int a)
{
  double* a1 = reinterpret_cast <double* > (a);
  return(a1);
}

En general, MQL5 se beneficiaría mucho si los punteros fueran ampliamente reconocidos y utilizados.

 

En general, MQL5 se beneficiaría enormemente si los punteros fueran ampliamente reconocidos y utilizados.

Yo añadiría a esta lista el manejo de excepciones, los constructores con parámetros y la herencia múltiple.

Pero por alguna razón los desarrolladores piensan que no somos lo suficientemente inteligentes como para aprovechar todas estas características y que sólo nos perjudicaremos a nosotros mismos.

Aunque todo lo anterior son herramientas estándar de programación orientada a objetos y nunca han hecho daño a nadie.

Tengo la impresión (por mi parte) de que simplemente son incapaces de implementar estos mecanismos de forma fiable.

Es triste que alguien decidió que no vamos a tener aquí

 

Me he dado cuenta de que con la nueva MT4 construye la función SetIndicatorValue () no funciona, pero GetIndicatorValue () hace. ¿Soy yo, o hay algo en las nuevas versiones (creo que el cambio se produjo en algún lugar después de Build 225) que rompió esa función? Si es así, ¿alguna sugerencia sobre cómo obtener las metodologías en este artículo para trabajar en la nueva MT4 construye? El hecho de que las antiguas versiones ya no son compatibles me está causando un problema en este sentido, ya que realmente me gustaría tener cálculos de indicadores sólo ocurren una vez, en un EA, pero todavía se muestran en los gráficos empujando los valores calculados a los punteros de los búferes de indicadores. (BTW, estuve realmente agradecido de encontrar este artículo y poder aplicar sus técnicas - gracias por escribirlo).

Una pregunta relacionada es que me di cuenta de que en las notas de la versión para Build 392 de MT4 en 3/17/2011, dice: "3. Se eliminaron los recálculos innecesarios de los indicadores cuando se muestran en un gráfico." ¿Esta mejora anula efectivamente la necesidad de las técnicas en este artículo en que el uso de indicadores personalizados en la forma en que fueron concebidos ya no será más lento que el uso de las técnicas basadas en puntero enseñado en este artículo? Muchas gracias.

 
brisully:

Me he dado cuenta de que con la nueva MT4 construye la función SetIndicatorValue () no funciona, pero GetIndicatorValue () hace. ¿Soy yo, o hay algo en las nuevas versiones (creo que el cambio se produjo en algún lugar después de Build 225) que rompió esa función? Si es así, ¿alguna sugerencia sobre cómo obtener las metodologías en este artículo para trabajar en la nueva MT4 construye? El hecho de que las antiguas versiones ya no son compatibles me está causando un problema en este sentido, ya que realmente me gustaría tener cálculos de indicadores sólo ocurren una vez, en un EA, pero todavía se muestran en los gráficos empujando los valores calculados a los punteros de los búferes de indicadores. (BTW, estuve realmente agradecido de encontrar este artículo y poder aplicar sus técnicas - gracias por escribirlo).

Una pregunta relacionada es que me di cuenta de que en las notas de la versión para Build 392 de MT4 en 3/17/2011, dice: "3. Se eliminaron los recálculos innecesarios de los indicadores cuando se muestran en un gráfico." ¿Esta mejora anula efectivamente la necesidad de las técnicas en este artículo en que el uso de indicadores personalizados en la forma en que fueron concebidos ya no será más lento que el uso de las técnicas basadas en puntero enseñado en este artículo? Gracias.

Parece que estaba equivocado, y que los archivos de indicadores adjuntos al artículo funcionan en las nuevas versiones de MT4. Perdón por la falsa alarma, y gracias de nuevo por este trabajo.
 
Zhunko:

Que complicado es...

Con la ayuda de Ilnur hace un año escribí una librería en MQL4 para trabajar con memoria. Puedes asignar memoria, mover punteros, escribir y leer, pasar el nombre del area de memoria a cualquier otro programa.

Todo se basa en el mapeo. Es mucho más simple que la propuesta.

¿Cómo puedo conseguir esta librería? Se lo agradecería. Necesito transferir datos entre dos MTs.
 
gracias
 

¿Es posible añadir funciones a la DLL no sólo para trabajar con double, sino también para datetime, para long y para int?

Resulta que ahora los datos de las matrices de precios se pueden transferir fácilmente entre estructuras anidadas sin copiar, pero los datos sobre tiempo, extensión y volúmenes todavía se deben copiar.

He intentado adaptar GetPtr para que funcione con datetime y long (y mediante perversiones con bits int móviles) - no funciona, la función acepta una referencia a un array, y no se puede convertir.

¿Alguien ha resuelto este problema?

 

Silencio.

Eh... Tendré que acordarme de C++ e instalar MSVC yo mismo...

 
Laryx:

Silencio.

Eh... Tendré que acordarme de C++ e instalar MSVC yo mismo...

Y ahora nadie te contestará nada, todos se han ido al frente.

¿Sabes algo de la actualización de MT4?

 

Por el borde de mi oreja, por el borde de mi oreja... :)

MT4 actualización es muy bueno para mí - Tengo grandes bibliotecas, pero todos ellos están en MT5 (No puedo imaginar mi vida sin OOP). Y los DCs, mala gente, no todos tienen MT5 en la vida real.... Así que esta noticia es muy buena para mí.

Pero - hasta que no habrá un MT4 ++ normal, no veo el punto de adaptar el código para la plataforma actualizada. Cuando salga algo como una beta oficial (sí, con la Librería Estándar, tampoco quiero escribir Asesores Expertos sin ella) - entonces empezaremos a convertir el código....

Y ahora yo - terriblemente quiero obtener direcciones no sólo de matrices dobles, sino también de otras matrices... Ah - yuk... Yo quería evitar el problema a través de la conversión de tipo (tiempo y longs son también de ocho bytes), pero no funciona todavía....