金融小白两周完成一个量化系统 (三)项目进度以及结构框架

前言

我在考虑是不是要改一下标题名称。原来定的两周时间应该完不成。现在已有十天时间了,才把东方财富网复制回来。超纲的时间花在股票分析模块上,因为原计划是没有这个模块的,后来新加上的,IT项目超标也是一件很正常的事情。

近几天的工作重心在K线图,指标计算和框架重构...。VNPY的K线图用的是pyqtgraph库实现的,其设计的思想需要花心思研究才能改得顺利。vnpy是以事件为驱动的框架,由于边学边写,前面写了很多,后面发现写出来的并不符合模块化和解耦分离的原则,又要重构。但也不得不赞叹这个框架,我用了大量的多线程,任务队列,多个SSE线程一起监听,用起来十分丝滑,没有卡顿。即使是在开盘交易时间,切换股票时的K线图,分时图,成交明细,实时行情的数据显示也做得十分流畅,大大超出了我的期望。

功能结构

任务队列和线程池,vnpy 是没有的。我认为有需要就加上了,主要是用于下载股票的历史数据,有可能批量添加多个股票,每个股票近十年的历史数据要保存到数据库,每个股票作为一个任务加到队列,由线程池去执行查询获取和保存到数据库。能大大提高系统的性能。

主要的核心还是事件引擎上,目前策略引擎,邮件引擎都还未用到。主要实现的是数据引擎,消息引擎的作用在于通知前端界面的弹窗消息。

K线图

vnpy 的K线图十分简陋,没有均线,没有指标,也没有分时图的显示,都要自已加上。现在修改得也不算完美,还是有几点小缺陷。但是比原来的好多了。把市面上常用的指标杂七杂八的都加上了。

现在是中午休盘时间,所以分时图只到中间,开盘交易会实时走动。

日K线13个指标,分时图也加了八个指标。不管有用没用,先加上再说。

基本上把东方财富网的基本功能都搬回来了。在获取数据的时间上几乎与它是等同的,同花顺app感觉会快一点,快1 - 2 秒。右上角的日期时间,批的是数据推送时间,并不是指当前时间。对比过,这个时间与北京时间大概相差7秒。对于低频交易用户,已经足够了。

代码重构

vnpy的整个框架,除了核心引擎之外,几乎全都改了一遍。vnpy 有些地方用得不是很顺手。比如表格监控器。

表格头是这样定义的, 会为每一个单元格都添加一个自定义Cell,然后控制该列数据的映射,格式化,文字颜色等

headers = {
        "symbol": {"display": _("代码"), "cell": BaseCell, "update": False},
        "exchange": {"display": _("交易所"), "cell": EnumCell, "update": False},
        "direction": {"display": _("方向"), "cell": DirectionCell, "update": False},
}

我的是这样,把该列的特性写在 headers上,由代码实现去控制格式化,文字颜色等操作

headers = {
        "symbol": {"display": _("代码")},
        "exchange": {"display": _("交易所")},
        "last_price": {"display": _("最新价"), "formatted": True, "color": True},
}

我实在是没看懂vnpy原来的实现方式。股票数据的格式化和文字颜色的变化是十分常见的。对于数据格式化,要针对每一列,甚至每一列的不同数据,用万还是亿来作单位等都要考虑,而文字颜色,是需要用同一行的某个数据去计算比较得出是显示绿色还是红色,实现起来较为复杂。原来的方法不顺手,就按自已的思路去设计实现了。

接下来的工作,就是主要的策略模块了。这个大模块,我还没有什么好的头绪。如果你有什么好的建议,欢迎来交流

以下是现阶段项目的演示

百度网盘 请输入提取码 kesu

相关推荐
非凸科技4 小时前
非凸科技助力第49届ICPC亚洲区域赛(成都)成功举办
科技·金融·非凸科技
电报号dapp11910 小时前
DeFi 4.0峥嵘初现:主权金融时代的来临
金融·区块链
fgl10010 小时前
富格林:安全步骤交易稳健出金
金融
Q8137574602 天前
金融场中的量化交易:民锋数据驱动策略的优势解析市
人工智能·金融
fgl1002 天前
富格林:揭露欺诈陷阱用心追损
金融
用友智能财务2 天前
数智税务 | 数电票:带来税务管理五大新挑战、绘就智慧税务征管新蓝图
科技·金融·业界资讯
fgl1003 天前
富格林:拆穿欺诈套路平稳出金
金融
Q8137574603 天前
人工智能驱动金融市场:民锋智能分析引领精准投资
人工智能·金融·数据分析
NewsMash4 天前
平安养老险蚌埠中支开展敬老月金融知识宣传活动
金融