Система торговых приложений - кэширование исторических данных в локальной базе данных? - PullRequest
0 голосов
/ 19 октября 2011

Большинство торговых приложений получают подачу данных от коммерческих провайдеров, таких как IQFeed или брокерские компании, которые поддерживают торговый API. Есть ли смысл хранить его в локальной базе данных? Внутридневная подача данных просто огромна по размеру, и база данных будет экспоненциально расти с 1-минутными данными только для 50 акций, не говоря уже о данных за один тик. Я подозреваю, что это будет кошмар для резервного копирования базы данных и может повлиять на производительность.

Если вы получаете исторические данные в текстовых файлах на DVD или в Интернете, то сохранение их в базе данных является единственным логичным выбором, но будет ли это хорошей идеей, если вы получите их через API?

Ответы [ 2 ]

1 голос
/ 19 октября 2011

Все дело в памяти. Вы определенно можете сделать это через API, но убедитесь, что вы не делаете это, используя то же приложение, которое выполняет для вас автоматическую торговлю.

Как вы сказали, данные тиков практически не обсуждаются, для данных за 1 минуту это будет означать приблизительно 400 баров в день и 20000 баров для 50 символов.

Пространство вычислений может быть рассчитано на основе того, что, если вы храните OLHC, оно может быть достигнуто с помощью четырех значений типа Int.

Как указано в другом ответе, производительность может быть проблемой с большим и большим количеством символов, но не должна быть проблемой с 50 символами на 1-минутных барах.

1 голос
/ 19 октября 2011

Это вопрос производительности. Если API достаточно быстрый, используйте его. Если это не так и кэширование поможет, тогда кешируйте это. Только ваше приложение и ваши шаблоны использования могут определить, насколько правдивость и необходимость применимы к этим утверждениям.

...