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

前言

我在考虑是不是要改一下标题名称。原来定的两周时间应该完不成。现在已有十天时间了,才把东方财富网复制回来。超纲的时间花在股票分析模块上,因为原计划是没有这个模块的,后来新加上的,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

相关推荐
星辰徐哥17 小时前
鸿蒙金融理财全栈项目——上线与运维、用户反馈、持续迭代
运维·金融·harmonyos
tech讯息1 天前
光明区举办“3·15”国际消费者权益日系列活动 广发银行深圳分行金融知识普及守护新就业群体
人工智能·金融
砚上有墨1 天前
金融行业虚拟化架构向私有云架构演进
金融·架构
悦数图数据库1 天前
图数据库如何重塑行业智能决策 | 破局金融数据关联困局 悦数图数据库
数据库·金融
2501_921649492 天前
免费港股实时行情 API:功能、性能与接入指南
开发语言·后端·python·金融·restful
荷蒲2 天前
【小白量化机器人】爬取财经新闻并利用本地大模型评分选择合适交易策略
人工智能·python·机器学习·ai·金融·本地大模型
期权汇小韩2 天前
A股港股韧性凸显:分化时代下的投资策略与心态管理
金融
老杨_QQ1222090173 天前
对量化交易未来的思考
人工智能·python·金融
对许3 天前
NOTE09
金融
xier_ran4 天前
【第二周】RAG与Agent实战08:提示词优化案例_金融文本匹配判断
自然语言处理·金融·prompt·agent·rag