8 votos

¿Existe una API de gráficos que permita replicar las características de la herramienta de gráficos de Bloomberg?

Creo que la mayoría de nosotros estará de acuerdo en que ser capaces de calcular valores es sólo una parte de nuestro trabajo, ya que también nos gustaría ser capaces de mostrarlos de forma agradable para entender mejor o ayudar a los compañeros/clientes a entender algunos conceptos o resultados.

Normalmente intentamos hacerlo mediante gráficos, la mayoría de las veces desde MATLAB y R durante la fase de desarrollo, pero las librerías de gráficos no permiten modificar fácilmente el gráfico una vez creado.

He estado utilizando ocasionalmente la interfaz de Bloomberg Charting, y debo decir que me parece especialmente brillante, ya que te permite:

  • Zoom y desplazamiento
  • Añadir líneas verticales/horizontales/...
  • Calcular los rendimientos entre puntos
  • Añadir indicadores técnicos
  • Posibilidad de exportar el gráfico al portapapeles
  • Y así sucesivamente.

La mayoría de las librerías de gráficos que he podido encontrar hasta ahora para .Net sólo tienen algunas de estas características, pero casi ninguna permite a los usuarios añadir/eliminar elementos gráficos del carro fácilmente.

Me preguntaba si alguien conoce una buena API de gráficos que proporcione un control con el que el usuario pueda interactuar ampliamente (como en Bloomberg) una vez que se muestren los datos.

3voto

smackaysmith Puntos 113

Si se trata de datos de FX solamente; he encontrado que MetaTrader es el mejor.

mi sistema de comercio automatizado está construido en Java; y los archivos de datos de salida a la carpeta MT4; que se recogen automáticamente por un indicador personalizado que he construido; que simplemente lee el archivo de datos y trazarlo en el par de divisas que estoy viendo.

Los gráficos de MT4 son extremadamente rápidos; se puede acercar y alejar el zoom y, literalmente, se puede trazar cualquier cosa.

La versión reciente de MT4 tiene nuevas características de lujo.

Engaño a MT4 para que muestre gráficos para otros símbolos (que no están relacionados con FX) dibujándolos en una ventana separada; encima del par FX existente. simplemente minimice el gráfico del par FX; y vea las otras ventanas.

Me interesa si alguien aquí tiene una sugerencia mejor.

3voto

Ant Puntos 121

Siguiendo con la respuesta de alpha, podrías utilizar algunas de las ideas y herramientas descritas en este blog para vincular R, y tal vez también MATLAB/Octave, a la plataforma Metatrader para utilizar las capacidades gráficas de Metatrader. El enlace de este blog es esta página donde hay una herramienta dll disponible, con código abierto descargable, para llamar a R directamente desde Metatrader, así que presumiblemente cualquier cosa que pueda ser calculada en R puede ser trazada en Metatrader.

3voto

d4nt Puntos 4486

He estado usando HighStock que produce gráficos interactivos muy elegantes con una cantidad relativamente pequeña de JavaScript. Entre otras cosas, puede producir gráficos de velas/OHLC con barras de volumen, eche un vistazo a la página de ejemplos.

3voto

Markus Olsson Puntos 12651

Yo recomendaría realizar las tareas intensivas de visualización y los UIs en un front-end separado, dado que R y Matlab no están optimizados para renderizar eficientemente gráficos y otras visualizaciones.

Si puede ejecutar aplicaciones WPF/Silverlight en su máquina, le recomiendo encarecidamente SciChart ( http://www.scichart.com/ ). Cumple con todos sus requisitos. La librería está dirigida a C#/WPF pero me imagino que también funcionará bien con Visual Basic u otros lenguajes .Net. Antes de continuar te recomiendo que veas la demo de Silverlight (no requiere descarga ni registro) en Demostración de SciChart . He probado extensamente la biblioteca y ahora la utilizo para un proyecto y cumple con todos mis requisitos.

En cuanto a sus requisitos:

  • Zoom y desplazamiento -> Está incorporado y funciona fuera de la caja, usted puede abordar esta cuestión a través de código-behind o establecer y personalizar las propiedades y la funcionalidad dentro de xaml (preferido).

  • Añadir líneas verticales/horizontales/... -> se puede hacer fácilmente. Veo que se añaden características de anotación con cada nueva versión, sin embargo, la biblioteca actual ya ofrece amplias capacidades de anotación. Echa un vistazo a lo siguiente ( http://www.scichart.com/annotations-are-easy/ y http://www.scichart.com/questions/question/multiple-rollover-modifiers-mvvm )

  • Calcular el rendimiento entre puntos -> No estoy seguro de lo que quiere decir con esto, pero si mi suposición es correcta, entonces puede calcular las medidas de rendimiento relativas y generar una serie de datos separada y renderizarla porque los ejes son totalmente personalizables. Si se refiere a algo diferente, por favor, explíquelo.

  • Añadir indicadores técnicos -> Puede añadir cualquier dato o serie temporal que desee. Los indicadores técnicos no se proporcionan fuera de la caja, pero recomiendo siempre calcular dicha métrica por su cuenta y simplemente utilizarla como fuente de datos para construir una serie de datos y representarla en un gráfico.

  • Posibilidad de exportar el gráfico al portapapeles -> No sólo eso, sino que también puede imprimir o guardar fácilmente los gráficos en varios formatos. También puede almacenar fácilmente la plantilla específica utilizada para el gráfico, así como los ajustes utilizados, de modo que la próxima vez que cargue el front-end se restablecerán sus ajustes de visualización.

Quiero señalar los puntos en los que esta biblioteca brilla en comparación con otras bibliotecas, pero también en los que veo margen de mejora:

  • Quizás la característica más fuerte de SciChart es el rendimiento. La representación de millones de puntos de datos en un gráfico de dispersión, en un gráfico de líneas, en un gráfico de acciones (OHLC) y en otros muchos estilos de gráficos no sólo tiene un alto rendimiento, sino que también es extremadamente sencilla de realizar. Sólo conozco otra biblioteca que juega en la liga del rendimiento de SciChart. Utilizo esta biblioteca para visualizar datos de series temporales basados en ticks y puedo renderizar 5 millones de puntos de datos (he oído hablar de personas que intentaron renderizar decenas de millones de puntos de datos y lo consiguieron) y desplazarme, desplazarme y hacer zoom a velocidades de fotogramas muy satisfactorias. Me permite esencialmente hacer zoom y ampliar la serie de tiempo a puntos de datos individuales, el eje Fecha/Hora puede ser personalizado para mostrar marcas de tiempo de milisegundos o incluso de mayor resolución (algo que no se podía hacer con varias otras bibliotecas cuando las probé).

  • La biblioteca no es gratuita, pero el coste de adquirir una licencia es razonable en comparación con otras bibliotecas.

  • A través de xaml y de la capacidad de derivar de ciertas clases base y de una bindabilidad muy bien diseñada, el estilo y la personalización de las anotaciones, los tipos de ejes y etiquetas, los tipos de gráficos, los tipos de series renderizables, los paneles, la sincronización de múltiples gráficos, la interactividad con el ratón/teclado, entre otros, se pueden lograr sin mucho esfuerzo.

  • El tiempo de respuesta así como la calidad de la respuesta del personal de apoyo me parecieron exquisitos. Hice muchas preguntas al personal y planteé varios tickets de soporte al principio y, por lo general, me atendieron en 24 horas. Eso fue incluso cuando probé el producto. Varias preguntas sólo surgieron porque tenía requisitos muy específicos sobre un problema relacionado con múltiples paneles de gráficos.

  • Aunque está bien probada, y al parecer es bastante bien recibida por los desarrolladores de algunas instituciones financieras y aparentemente es muy utilizada por los científicos que requieren capacidades de visualización de alto rendimiento, la biblioteca es todavía una empresa bastante reciente. Puede que no ofrezca la misma cantidad de contenido en su foro de soporte que los que llevan una década o más, pero de nuevo me resultó agradable interactuar con el personal de soporte, que fue receptivo y ayudó con ciertos detalles. Así que, inmaduro no es probablemente el término correcto porque funciona absolutamente estable en producción, pero no es la biblioteca más madura que existe.

  • La librería se especializa en gráficos de alto rendimiento para WPF/Silverlight y hace su trabajo de manera excelente, sin embargo, no ofrece otros controles como diagramas, controles de tablero, controles de lista o de cuadro de texto. Yo mismo prefiero trabajar siempre con lo mejor que mi presupuesto pueda comprar y utilizar esta librería sólo para los gráficos. Otros proveedores brillan en otras categorías y puedo apreciarlo.

En resumen, yo tenía requisitos muy similares a los que usted expuso y esta biblioteca hizo y sigue haciendo un trabajo fantástico para satisfacer mis requisitos. Utilizo una implementación de gráficos para las visualizaciones de datos de alta frecuencia y otra, cuyo estilo es muy similar al de la biblioteca de gráficos de Bloomberg, para la visualización general de series temporales de precio/volumen de baja frecuencia.

Divulgación: En algún momento recibí una compensación no monetaria a cambio de prestar un servicio a SciChart. Pero creo que esta recomendación/revisión está sesgada sólo en el sentido de que realmente creo en la calidad de esta biblioteca y de las personas que la apoyan porque yo mismo la probé extensamente y ahora la uso y encontré que cumple con todos mis requisitos de visualización de series de tiempo.

2voto

DShook Puntos 5361

Echa un vistazo a http://www.modulusfe.com/stockchartsl/

Tienen un bonito demo (requiere el plugin Microsoft Silverlight). Puede hacer zoom y desplazarse, añadir líneas e indicadores técnicos, guardar la imagen, etc.

Vea también esto Pregunta SO .

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X