
对于数据存储的优化设计,计算机科学领域进行了大量的理论和学术研究。然而,本书不会考虑太多的细节,因为很容易迷失在细节中!相反,这里将介绍构造股票securities master的通用模式,您可以根据自己的应用程序修改该模式。
第一个任务是定义我们的对象,这些对象是关于财务数据的元素,最终将映射到数据库中的表。对于股票主数据库,预测如下实体:
交易所——数据的最终原始来源是什么?
供应商——从哪里获得特定的数据点?
票据/股票代码——股票或指数的代码/符号,以及相关公司或基金的公司信息。
价格——特定证券在特定日期的实际价格。
公司行为——所有股票分割或股息调整的列表(这可能导致一个或多个表),用于调整定价数据。
国定假日——为了避免将交易假日错误分类为丢失的数据错误,存储国定假日和交叉引用是有用的。
在存储规范的代码块方面存在一些重要的问题。不同的供应商使用不同的方法来解析代码,从而将多个数据源组合在一起以保证准确性。此外,公司破产,暴露于并购活动(即被收购和更改名称/符号),并可以有多个公开交易的股票类别,不过这个问题对于做较大的指数成分股影响不大。
数据的精准性评估
供应商的历史定价数据容易出现多种形式的错误,如下:
公司行为
对股票分割和股息调整的错误处理,必须绝对确保这些公式得到正确的执行。
峰值
大大超过某些历史波动水平的定价点,当这些峰值确实发生时,必须小心,出现峰值也可能是由于没有考虑到股票分割的因素。Spike filter脚本在这种情况下被用于提醒交易员。
“开高低收”数据的聚合
免费的OHLC数据,如来自Yahoo/谷歌的数据,特别容易出现“糟糕的tick聚合”情况,在这种情况下,较小的交易所形成的零散交易订单的价格远高于那些主要的交易所,从而导致聚合后的极大值/极小值被过度夸大。与其说这是一个“错误”,不如说这是一个需要警惕的问题。
数据丢失
数据丢失可能是由于在特定时间段内缺乏交易、交易假期或仅仅是交易所系统中的一个错误造成的。丢失的数据可以被填充、可以使用差值填补或者忽略,这取决于交易系统。
这些错误许多依赖人工工判断来决定如何处理,自动化此类错误的通知是可能的,但是自动化这些问题的解决方案要困难得多。例如,一个人必须选择被告知峰值的阈值——要使用多少个标准差,以及在什么回望周期内使用,过高的标准差会错过一些峰值,而过低的标准差和许多不寻常的消息会导致误报,所有这些问题都需要量化交易员提前做出判断,决定如何修复错误也是必要的,一旦发现错误,是否应该立即纠正,如果是,是否应该进行审计跟踪,这将需要数据库中的额外的表。
这就把我们带到了回填的主题上,这对于回填测试来说是一个特别危险的问题,它涉及上游不良数据的自动纠正。如果您的数据供应商纠正了一个历史错误,但是正在根据他们以前的错误数据进行的研究生产一个经过回测的交易策略,那么需要对策略有效性做出决策。这可以通过充分了解策略的性能指标(特别是每笔交易的赢/输特征的差异)而得到一定程度的缓解。策略的选择或设计应确保单个数据点不能在很大程度上影响策略的性能。
自动化操作
编写用于执行数据下载、存储和清理的软件脚本的好处是,脚本可以通过操作系统提供的工具实现自动化。在基于unix的系统(如Mac OSX或Linux)中,可以使用crontab,它是一个持续运行的进程,允许在定制定义的时间或定期执行特定的脚本。在MS Windows上有一个类似的进程,称为任务调度程序。
例如,一个生产过程可能会自动下载所有通过数据供应商发布的标准普尔500指数收盘价格。然后它将自动运行上述丢失的数据和spike过滤脚本,通过电子邮件、短信或其他形式通知交易员。此时,任何回溯测试工具都将自动访问最近的数据,而不需要交易员处理。根据您的交易系统是位于桌面还是位于远程服务器,您可以选择使用这些任务的半自动或全自动流程。
数据可用性
一旦数据自动更新并驻留在RDBMS中,就有必要将其放入回测软件中。这个过程将高度依赖于您的数据库是如何安装的,以及您的交易系统是本地的(即桌面计算机)还是远程的,就像使用位于同一位置的交易所服务器一样。
一个重要的考虑因素是尽量减少过多的输入/输出,因为这在时间和金钱方面都非常昂贵,假设远程连接的带宽非常昂贵。解决此问题的最佳方法是仅在网络连接上需要的移动数据(通过选择性查询)或导出和压缩数据。
许多RDBMS支持复制技术,该技术允许将数据库克隆到另一个远程系统,通常具有一定程度的延迟。根据您的设置和数据量,这可能只有几分钟或几秒钟的时间。一种简单的方法是将远程数据库复制到本地桌面。但是,请注意,同步问题很常见,而且需要花费大量时间来修复!
【交易学习】
【交易员洞察】
【基础知识】
【货币交易】
【黄金交易】
风险提示:以上内容仅代表作者或嘉宾的观点,不代表 FOLLOWME 的任何观点及立场,且不代表 FOLLOWME 同意其说法或描述,也不构成任何投资建议。对于访问者根据 FOLLOWME 社区提供的信息所做出的一切行为,除非另有明确的书面承诺文件,否则本社区不承担任何形式的责任。
FOLLOWME 交易社区网址: www.followme.com
加载失败()