系统架构
如图18-1所示是该系统的架构图,它主要由如下几部分构成。
图18-1 D-Alpha系统架构
1、数据库与数据仓库
本系统的底层为数据与数据仓库层,包括与量化投资交易有关的基础数据,主要有:历史高频交易数据,历史分析数据,实时行情数据,实时分析数据四大块。
1)历史高频交易数据
历史高频数据回溯了A股市场历史上每一次的交易细节,包括:买一到买五价格,挂单量,成交量;卖一到卖五价格、挂单量,成交量。
2)历史分析数据
历史分析数据有两块,国内的来自于万德历史数据库,国外的来自于Bloomberg历史数据库。
万德历史数据库包括:宏观经济数据、微观经济数据、 数据、分析师数据等。
Bloomberg历史数据库包括:全球宏观经济数据、全球微观经济数据、全球资本市场数据(股票,债券,商品,期权),全球分析师数据等。
3)实时行情数据
实时行情数据直接来自于交易所,用于对市场实时监控。
4)实时分析数据
实时分析数据来自于各大第三方数据提供商,用于策略实时分析。
2、数据引攀
数据引擎的作用就是将底层的各种数据库整合起来,采用统一的接口供上层的策略分析和机会监控两大模块进行调用。由于底层的数据来自不同的数据提供商,他们的数据结构,接口都不尽相同,因此需要数据引擎进行预处理,剔除不合理的数据,格式统一和接口统一的工作。
3、策略分析
策略分析是本量化投资系统的核心模块,基于数据引擎提供的数据,通过对历史数据的分析,得出有效的投资策略,并将该策略的主要参数传递给监控模块,对市场机会进行监控。
4、机会监控
机会监控有自动和人工两种。自动监控通过一个程序化的DLL实现,该DLL实时监控市场情况,当在机会出现的时候,将交易参数传递给程序化交易模块,进行下单操作。
人工监控则是在机会出现的时候,在用户界面上弹出对话框,让交易员进行入工判断后利用程序化交易系统下单。
提供人工监控的目的在于,在市场出现大幅波动,或者策略出现明显不合理的情况的时候,可以让交易员对投资策略进行人工干预,以免由于程序的错误,带来重大损失。
5、程序化交易
一旦市场出现机会后,不管是开仓还是平仓交易,如果通过人工下单的方式,都是效率很低的,尤其是针对套利这种瞬间即逝的机会,只有程序化交易模块才能捕捉。
如果是自动监控的机会,则将交易指令直接发送到程序化交易模块,如果是人工监控的,则由交易员启动程序化交易模块。
程序化交易模块的输出是一系列指令集,传送到交易所(证券交易所,期货交易所)进行撮合回报。