Comment puis-je comparer les sources d'alimentation de données du marché pour la qualité et l'amélioration de latence?

StackOverflow https://stackoverflow.com/questions/2239988

Question

Je suis dans les premières étapes de la mise en œuvre d'un outil pour comparer deux sources d'alimentation de données du marché afin de prouver la qualité des nouvelles sources développées à mon patron (ce qui signifie qu'il n'y a pas de régressions, mises à jour ne manqués ou mauvaises), et pour prouver l'amélioration latences.

Alors l'outil dont j'ai besoin doit être en mesure de vérifier les différences de mises à jour, ainsi que de dire quelle source est le meilleur (en terme de latence).

Concrectly, source de référence pourrait être Reuters tandis que l'autre est un gestionnaire d'alimentation, nous développons en interne. Les gens me ont averti que les mises à jour pourraient ne pas arriver dans le même ordre que la mise en œuvre Reuters pourrait diffère totalement de la nôtre. Par conséquent, un algorithme simple basé sur le fait que les mises à jour pourraient arriver dans le même ordre est susceptible de ne pas travailler.

Ma première idée serait d'utiliser les empreintes digitales pour comparer les sources d'alimentation, que l'application ne Shazaam pour trouver le titre du tube que vous soumettez. Google m'a dit qu'elle est basée sur FFT. Et je me demandais si la théorie de traitement du signal pourrait se conduit bien avec des applications d'accès au marché.

Je voulais connaître votre propre expérience dans ce domaine, est-ce possible de développer un algorithme assez précis pour répondre aux besoins? Quelle était votre propre idée? Que pensez-vous de comparaison à partir d'empreintes digitales?

Était-ce utile?

La solution

Si l'échange qui fournit les données a un certain identifiant unique pour les données qu'il fournit la mise en œuvre est assez simple, mais pas trivial.

En substance, vous avez une application qui souscrit aux deux alimentations. (Vous pouvez le faire avec un logiciel sniff-et pour la surveillance / mesure non intrusive - Je peux essayer de répondre à cette question aussi bien)

Vous tiendriez deux listes (ou toute autre méthode de mesure des échantillons « inégalée » de chaque flux) de données inégalées / mises à jour. Comme chaque mise à jour est disponible en vous recherchez l'élément correspondant dans l'autre liste de l'autre flux de données. Lorsque vous vous correspondez avec succès pouvez enregistrer cet appariement. Lorsque chaque mise à jour est disponible en vous devez attribuer en quelque sorte un « horodatage » - probablement le temps de la machine locale. Depuis l'origine dans ce cas simple est le même échange déterminer la latence relative est assez facile.

Cette méthode nécessite l'écriture des applications abonnées pour les données.

Il y a beaucoup de questions telles que la gestion des mises à jour manquantes et le calendrier des données inégalées, comment gérer les échanges ou les aliments qui pourraient ne pas fournir ides uniques pour les mises à jour de travail autour des données fournisseurs erreurs WRT locales en fonction du temps UTC, etc.

renifler les données est similaire mais vous souhaitez capturer les données au moyen de cartes de capture PPCE ou de matériel, puis analyser les flux en fonction des critères d'évaluation des paquets. Ceci est un peu plus difficile que l'abonnement droite, mais a l'avantage d'être non intrusif et assez souple sur ce qui définit des données que vous pouvez mesurer.

Autres conseils

Une approche que je l'ai vu à des flux autour de multiples sources de données d'actions d'entreprises maintient simplement une heuristique informé par qui alimente ont eu tendance à être historiquement plus précis, et donc donner plus de poids à leurs données.

Bien sûr, de tous les types de données du marché des actions entreprises est probablement l'un des volumes les plus bas si cette technique ne sera probablement pas l'échelle de cocher les données!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top