applications commerciales du système - la mise en cache des données historiques dans la base de données locale?

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

Question

La plupart des applications commerciales des fournisseurs reçoivent DataFeed commerical tels que les maisons de courtage ou IQFeed que le soutien de l'API de trading. Y at-il le mérite de le stocker dans la base de données locale? datafeed intraday est juste énorme taille et la base de données augmenterait de façon exponentielle avec 1 minute pour les données à seulement 50 titres, sans parler des données tick par tick. Je pense que ce serait un cauchemar pour la sauvegarde de base de données et peut influer sur les performances.

Si vous obtenez des données historiques dans des fichiers texte sur DVD ou en ligne, puis le stocker dans la base de données est le seul choix logique, mais serait-il toujours une bonne idée si vous obtenez via l'API?

Était-ce utile?

La solution

Son tout l'espace de stockage vraiment. Vous pouvez certainement le faire via l'API, mais assurez-vous que vous ne le faites pas en utilisant la même application qui fait le trading automatisé pour vous.

Comme vous l'avez dit Tick données est à peu près hors de question, pour des données 1 minute qui signifierait environ 400 bars / jour et 20000 barres pour 50 symboles.

L'espace de calcul peut être calculé sur cette base, si vous stockez OLHC il peut être atteint avec quatre valeurs de type Int.

Comme autre réponse a souligné, la performance peut être un problème avec de plus en plus des symboles, mais ne devrait pas être un problème avec 50 symboles sur les barres 1 minute.

Autres conseils

Ceci est une question de performance. Si l'API est assez rapide, utilisez cela. Si ce n'est pas et la mise en cache aiderai, cache-le. Seul votre application et vos habitudes d'utilisation peuvent déterminer à quel point la vérité et la nécessité appliquer à ces déclarations.

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