说明

前面几篇讨论了一些基础的概念,这篇梳理一下,准备开始搭建一个长期运行的数据采集、决策支持的小系统,就叫StockSys吧。一开始先不考虑的复杂,就先简单占个位(PlaceHolder)

内容

1 假设

多臂老虎机问题是概率论中一个经典问题,也属于强化学习的范畴.设想,一个赌徒面前有N个老虎机,事先他不知道每台老虎机的真实盈利情况,他如何根据每次玩老虎机的结果来选择下次拉哪台或者是否停止赌博,来最大化自己的从头到尾的收益.

整个实验将建立在多臂老虎机的假设下,每个策略和某只股票的结合就是一个老虎机。系统的运行就是在不停的评估,选出目前最好的老虎机组合。

2 数据持久化

前面的实验总是直接从接口读取某只股票的所有数据,这样做不太经济环保。因此需要建立自己的数据库(我喜欢mongo),每天定时的去拉取增量数据,然后存到主表里。

特别是分钟数据,需要每隔1分钟向雪球请求一次,然后落库。

这种长期的、周期的任务正好用到之前做的动态任务系统,写好接口拉取操作,指定几个cron任务就好了。

数据持久化有个更大的设想(MultiData),可以执行多数据源的管理,以后看情况搞。目前假定按照时间作为唯一索引,存储和处理是分散开的,处理时对齐时间后可以利用所有数据。这里可以完善一下我的ATimer, 形成几种固定的用法。

3 数据转换

原始数据获取后需要经过转换才能使用。我们假设数据只要:

  • 1 差分处理
  • 2 计算目标状态
  • 3 波动统计

事实上未来这部分会有非常庞大的计算量(需要分布并行计算),所以说先假定几个简单的计算占个位。

数据转换后的结果也会持久化在库中。(数据不大,计算量非常大,结果也不大,这种情况特别适合分布式)

4 信息再提取

如果说上一步是基本的数据处理,这一步就是特征工程。同样也会有很大的计算量。与前一步不同的是,这里会产生一些具有一定信息量的特征,可以直接辅助决策。暂时假定我们只需要

  • 1 计算二阶涨跌预测
  • 2 计算支持度与置信度

5 候选与建议

这一步就是类似模型构造的功能了。这里是模型大量存在的地方,或者说是模型系统。但现在我们只假设:

  • 1 根据股票的市值,尽量推荐蓝筹股,流通性好的
  • 2 根据置信度和支持度对上一步的结果进行排序

6 记录与评估

这一步是用于进行事后分析和评估,结果再反馈到前面进行调整的。相当于监督和强化。现在只做

  • 1 操作记录落库
  • 2 交易成本分析
  • 3 推荐(模型)效果评估

大概就先搭这么个简易的框子吧。