Sobre Excel, Visual Chart y la precisión numérica

Todo lo relacionado con este conocido software de trading made in Spain: estudios, indicadores, sistemas, plantillas, etc.
Responder
Speculari
Mensajes: 36
Registrado: 10 May 2012 10:57

Sobre Excel, Visual Chart y la precisión numérica

Mensaje por Speculari »

Hola a todos. Os comento. Estoy realizando un indicador que, entre otras cosas, tiene que mostrar en Excel el valor de la función de Visual Chart .Open(0, Data1). A dicha función, le tengo asignada una variable de tipo Single. El caso es que, al trabajar con el futuro del Bobl (Eurex), el cual tiene dos decimales, en vez de ponerme en Excel el valor, por ejemplo 124,71, que es el que aparece en el gráfico de Visual Chart, me muestra en Excel el valor 124,709999084472.

¿A qué es debido esta imprecisión, si tan sólo tendría que aparecer el número con dos decimales?

Saludos y gracias de antemano. ;)
Speculari
Mensajes: 36
Registrado: 10 May 2012 10:57

Re: Sobre Excel, Visual Chart y la precisión numérica

Mensaje por Speculari »

Acabo de comprobar que el asunto no guarda relación con Excel, ya que haciendo:

MsgBox .Open(0, Data1)

me sale la ventanita con el mismo número, el cual posee más decimales del que tiene el valor realmente. Como ya indiqué, por ejemplo, en el futuro del Bobl (Eurex), el cual tiene tan sólo dos decimales, me salen en dicha ventanita muchos más.

¿A qué es posible esto?

Gracias de antemano. ;)
Avatar de Usuario
Gamelu
Mensajes: 787
Registrado: 21 May 2009 16:49

Re: Sobre Excel, Visual Chart y la precisión numérica

Mensaje por Gamelu »

En metatrader pasa algo similar, y creo que lo solucione con la funcion NormalizeDouble( double value, int digits)
double NormalizeDouble( double value, int digits), sera parecido en visualchart
http://docs.mql4.com/convert/NormalizeDouble
Rounds the floating point value to the given precision. Returns normalized value of the double type.
The calculated StopLoss and TakeProfit values, as well as open price of pending orders must be normalized with a precision the value of which is stored in the pre-defined variable of Digits.
Parameters:
value - Floating point value.
digits - Precision format, number of digits after decimal point (0-8).
Sample:

double var1=0.123456789;
Print(DoubleToStr(NormalizeDouble(var1,5),8));
// output: 0.12346000
Speculari
Mensajes: 36
Registrado: 10 May 2012 10:57

Re: Sobre Excel, Visual Chart y la precisión numérica

Mensaje por Speculari »

Gracias por la ayuda. En Visual Basic existe la función "Format", pero te convierte el resultado a una variable de tipo "Variant". Desconozco si hay alguna otra función más específica para expresiones numéricas.

Saludos ;)
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Visual Chart”