Bibliothèques de graphiques Java adaptées aux graphiques boursiers en temps réel?

harbun

Bibliothèques de graphiques Java adaptées aux graphiques boursiers en temps réel?


Je suis en train de planifier une application basée sur java qui est utilisée pour le streaming / trading en direct de graphiques boursiers / forex, etc. Cependant, je ne sais pas quelle bibliothèque de graphiques est la bonne pour le travail.

Fondamentalement, la fonctionnalité de création de graphiques doit être la même que dans tout logiciel de trading, comme:

  • Graphiques à barres en chandelier et / ou OHLC, graphiques linéaires
  • Superposer ceux avec d’autres graphiques (Aka traçant une moyenne mobile ou similaire sur le graphique en chandelier)
  • L’utilisateur doit pouvoir ajouter des lignes ou d’autres objets au graphique
  • Affichage de 2 graphiques, par exemple pour afficher le volume sous le graphique principal
  • Zoomez sur le graphique **
  • Défilement horizontal / panoramique **
  • Réglage automatique de l’axe Y lors du défilement / panoramique
  • Mise à jour du graphique lorsque de nouvelles données arrivent (se produit à des intervalles de ms aléatoires), ce qui comprend non seulement un nouveau point de données OHLC à ajouter, mais aussi pour mettre à jour le dernier point de données OHLC si de nouvelles données arrivent avant le délai indique une nouvelle donnée point**
  • interaction avec le graphique telle que la mise en évidence d’un objet sur lequel la souris pointe ***
  • redonner des coordonnées, qui peuvent être utilisées pour obtenir les informations sur les points de données, ou obtenir directement ses informations (données OHLC, horodatage)

** pourrait également être fait en créant un nouveau graphique à chaque fois qu’une action de l’utilisateur est effectuée au lieu de laisser la bibliothèque de graphiques faire le travail – cependant viable uniquement si elle est rapide, voir les exigences de performances.

*** Sympa mais pas obligatoire.

Pour être clair – je ne cherche pas une bibliothèque magique qui fait tout pour moi. Je n’ai aucun problème avec l’écriture de code pour obtenir mon ensemble complet de fonctionnalités. Mais certaines fonctionnalités ne peuvent être implémentées de manière fiable que par la bibliothèque elle-même (comme la transformation des coordonnées du graphique d’un clic de souris vers les bons points de données, car ces coordonnées dépendent de la taille des étiquettes x et y, ce qui signifie que la mesure du gaz serait une mauvaise approche ), les autres fonctionnalités, une fois ajoutées, doivent toujours être suffisamment rapides. Selon la bibliothèque, cela peut ne pas être possible.

La performance est un facteur clé. J’ai déjà fait la plupart de ce codage en python, en utilisant matplotlib. Cependant, plus il y a de bougies sur le graphique, plus il ralentit, au point que l’utilisation de plusieurs graphiques avec suffisamment de données sur chaque graphique rend les mises à jour à des intervalles de millisecondes impossibles en temps réel, malgré de longs efforts pour optimiser le code. De plus, ce code est limité à un cœur (grâce à python GIL), quel que soit le nombre de graphiques. Il est donc compréhensible que je cherche désespérément une solution rapide et que je suis passé à java. Disons donc que l’ouverture de 10 graphiques en même temps, avec quelques centaines de points de données OHLC, toute mise à jour à la fois ne devrait pas avoir un impact majeur sur les performances, à peine perceptible par l’œil humain. C’est quelque chose qui peut être fait en utilisant Java, comme le montrent divers projets commerciaux (clients Java Oanda et Dukascopy par exemple).

La question est, quelle bibliothèque est prête pour la tâche? jFreeChart? Cartographie JavaFX directement? Autres options?

Quelqu’un sait-il quels bibliothèques les projets commerciaux utilisent?

Réponses


 Basil Bourque

Graphiques Vaadin

Si vous voulez une solution d’application Web écrite en Java pur mais rendue automatiquement dans un navigateur Web avec les technologies de normes Web HTML5 , je suggère de regarder le framework Vaadin (open-source, gratuit) plus le module complémentaire Vaadin Charts ( commercial).

Le module complémentaire Vaadin Charts est un wrapper Java (à invoquer côté serveur) enveloppant la bibliothèque HighCharts construite en JavaScript (utilisée côté client dans le rendu du graphique, mais de manière transparente pour le programmeur Java). Ainsi, presque tout ce que HighCharts via JavaScript peut faire, les Vaadin Charts peuvent le faire via des appels Java. Oui

Avec Vaadin Charts, vous obtenez le meilleur des deux mondes: (a) toute la puissance de Java et de ses nombreuses bibliothèques, JDBC , typage statique, vitesse, fiabilité, etc., ainsi que (b) dessin hautes performances du graphique dans le navigateur localement en utilisant JavaScript.

Je ne sais pas si Vaadin Charts répond à tous vos besoins, mais il fournit des graphiques en chandeliers et des graphiques OHLC .

Vaadin a un support intégré pour la technologie Push , de sorte que vos graphiques peuvent être automatiquement mis à jour dans le navigateur Web sans promotion de l’utilisateur.

 

#de, #en, adaptées, aux, Bibliothèques, boursiers, graphiques?, Java, réel?, temps

 

wiki

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *