【问题标题】:System trading applications - caching historical data in local database?系统交易应用程序 - 在本地数据库中缓存历史数据?
【发布时间】:2011-12-10 11:15:31
【问题描述】:
大多数交易应用程序接收来自商业提供商(例如 IQFeed)或支持交易 API 的经纪商的数据馈送。将其存储在本地数据库中是否有好处?日内数据馈送的规模非常庞大,数据库将以 50 只股票的 1 分钟数据呈指数级增长,更不用说逐笔数据了。我怀疑这对于数据库备份来说将是一场噩梦,并且可能会影响性能。
如果您在 DVD 或在线文本文件中获取历史数据,那么将其存储在数据库中是唯一合乎逻辑的选择,但如果您通过 API 获取它仍然是一个好主意吗?
【问题讨论】:
标签:
trading
algorithmic-trading
datafeed
【解决方案1】:
这完全是关于存储空间的。您绝对可以通过 API 来完成,但请确保您不要使用为您进行自动交易的同一应用程序来完成。
正如您所说,Tick Data 几乎是毫无疑问的,对于 1 分钟的数据,这意味着每天大约 400 根柱线和 50 个符号的 20000 根柱线。
计算空间可以根据这个来计算,如果你存储的是OLHC,可以用四个Int类型的值来实现。
正如另一个答案所指出的,性能可能是越来越多符号的问题,但 1 分钟柱上有 50 个符号不应该是问题。
【解决方案2】:
这是一个性能问题。如果 API 足够快,请使用它。如果不是,缓存会有所帮助,然后缓存它。只有您的应用程序和您的使用模式才能确定这些陈述在多大程度上是真实和必要的。