没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
64页
vn.py是基于Python语言的量化交易系统,是目前国内最好的开源量化交易平台之一。 vn.py是机构级别的量化交易软件,掌握vn.py框架原理并且熟练使用,有利于快速入门量化交易,搭建自己的量化交易系统,也可以在机构中找到与量化岗位相关的工作。 本文是原创作品,针对vn.py的最新版本2.2.0(2021年3月26日发布),从源码的下载、安装、主程序入口、主窗口入手,先跟您一起把源码运行起来。再聚焦于vn.py的一个重要应用“CTA回测”,从各个层次上分析其源码,包括相关的数据库操作、多线程机制、事件引擎机制等,把这个应用从顶到底,再从底到顶贯通起来。明白了这些内容,再分析其它的功能就会事半功倍。 本文适合想要分析 vn.py源码的人,还要看清楚软件版本,否则请不要下载,免得浪费积分。
资源推荐
资源详情
资源评论
vn.py 2.2.0 源代码深入分析
作者:稳转
前言
本文档是《 量化交易从入门到实战》的附配资源之一,其他的附配资源可加入 群
下载。
《 量化交易从入门到实战》一书由清华大学出版社出版,该书既是一本针对所有层次读者
的 编程教学书籍,又是一本利用 解决量化交易实际问题的专业书籍,共分为四个部分。
第一部分是 语言基础,主要介绍 的基础编程、数据结构、结构化编程、函数以及模块
和包等内容,掌握这一部分可以算是 基本入门。第二部分是 编程进阶,包括面向对象
的编程、面向数据的分析与可视化以及数据持久化等内容,掌握了这一部分可以进行 的专业编
程实践。第三部分是使用 进行界面开发。 是一种常用而强大的图形用户界面设计工具,
使用它可以设计出美观、易用的用户界面。掌握这一部分,可以在大型项目团队中完成比较核心的工作 。
第四部分是 量化交易平台,为读者提供高水平实践机会,在巩固专业程序员水平的同时,也在量
化金融这个 的重要应用领域中进行深入探索。该书目录为:
第一部分 语言基础
第 章 准备工作
第 章 初识 编程
第 章 数据结构
第 章 结构化编程
第 章 函数
第 章 模块和包
第二部分 编程进阶
第 章 面向对象编程
第 章 数据分析与可视化
第 章 数据持久化
第三部分 使用 进行界面开发
第 章 基础
第 章 界面编程
第 章 控件
第 章 的使用
第 章 绘图
第四部分 量化交易平台
第 章 的使用
第 章 !"# $% 分析
第 章 数据库操作
第 章 &#' 回测
该书内容一脉相承,第四部分与前三部分是有机结合而不是割裂的。例如 的数据分析和可
视化工具有很多种,该书选择的 "()、$%$、)$**+ 和 $ 本身就是其中最常用
的,也都在 中确实得到了应用。虽然该书第四部分只是 代码分析的基础,但 编程
涉及的所有技术,在前三部分都有介绍。
作为技术书籍,《 量化交易从入门到实战》从技术上来说已经包含了 系统实现的核
心内容,并已经认真分析了所涉及的代码,但不可能涉及所有细节,受篇幅限制也不可能过分深入。从
功能上来说, 作为一个专业化平台系统,《 量化交易从入门到实战》只涉及了其中的一
小部分功能,本文档与大家一起继续深入分析 的其他部分。
与 相关的每个小专题在网上都能找到相应介绍,但不成系统。本文档是对 的全面分析,
希望对大家有所帮助。
的编程技术很精妙,程序结构非常清晰。但毕竟是复杂系统,各部分相互交叉,要想一开始
就从代码入手,涉及哪个代码文件就把它吃透,会非常困难。本文第一、二部分采用的方法是从功能入
手,从多个代码文件中找出与特定功能相关的代码,串成该功能的实现方法。用这种方法需要分析者有
一定的编程经验,如果您现在编程经验还不太充分,只需要跟随本文档的线索先分析起来,等对系统有
了一定了解,脱离文档自己独立分析也不会有问题。
随着分析的深入,已经不再允许任何含糊其辞。每个函数,每个函数的每个参数都要搞清楚,对系
统要达到通晓的程度,将来才可能改写系统。本文第三、四部分,很多内容以源码的形式呈现,在源码
上增加详细的注释。遇到具体的功能,就会一直深入分析到底。其中第三部分采用自顶向下的分析方法 ,
第四部分采用自底向上的分析方法,确保读者融会贯通。
本文档不是书稿,在编排上可能不够严谨。本人水平有限,文档中肯定会存在问题和错误,敬请批
评指正。
第一部分 初步分析
本部分对应《 量化交易从入门到实战》一书的第四部分。对于 和 的初学者,
需要先系统学习教材,因为教材在内容编排上更完整合理。教材上有的这里就不再重复,免得混乱,本
部分仅包含对教材对应内容的补充与修正(随着软件版本而变化)。
不方便买教材的朋友,我在 社区的经验分享板块还有一篇置顶文章《 源代码深
入分析》,内容虽然略旧但结构比较完整,可以参考。
本部分目标:理清 程序的整体架构。
第1章 vn.py 的使用
对应《 量化交易从入门到实战》的第 章。
本章学习方法:以教材为主线进行学习,同时对照参考本文档。
1.1. 量化交易基础
量化交易涉及多方面的知识,包括但不限于:
一般分析技术,如 ,'& 等指标
波浪理论-缠论等高级分析技术
基于机器学习的技术,如线性回归和 .!, 等
基于人工智能的技术,如循环神经网络、卷集神经网络和强化学习等
基于概率论的时间序列分析方法,如 '/,'、'/&0 等
基于金融工程学的方法,如定价方法、套利方法等
从专业学科的角度看,量化交易涉及多个学科,包括:证券投资学、计算机科学、数学(包括线性
代数、概率论和数理统计等)和机器学习-人工智能等。
量化交易是科学而不是奇淫巧计,不要学点方法就以为拿到了打开财富之门的秘诀,只有打好基础 ,
才可能靠谱地做量化。如果刚刚接触量化,推荐两本书,有利于建立对量化交易的基本认识:
《宽客:华尔街顶级数量金融大师的另类人生》
《宽客人生:从物理学家到数量金融大师的传奇》
根据美国量化发展的经验,成功的策略都是由精英团队经过多年研究才能盈利,盈利之后仍然需要
精英团队来运维。 能够为您解决平台的问题,使您将更多的精力放到知识上。本文档帮助您更有
效地使用 平台。
1.2. vn.py 的安装与运行
1.2.1. 源码下载与安装
的官网是 1--2223)-。
主页上增加了“ 仓库”的下载链接,建议使用这个,下载速度要快得多。
执行 14 中的 $**+$ 批处理文件进行安装,自动下载安装需要的包。
安装需要一定的经验,以下是一些安装经验的记录:
强烈建议参考书籍第 章的补充内容,使用镜像站点,可以极大地加快 的下载速度。下载
速度快了,一次安装成功的概率会大很多。
安装的时候需要大量的网络下载,最好选择网络较好的环境。还与人家网站的情况有关,所以
不一定能一次安装成功。一次不成功就再试一次,今天不成功就等明天再试试看。
一遍一遍地试也不是个事儿。如果是有经验的 编程人员,可以根据安装时的报错信息,
手动补充安装需要的包,特别是在 5 下,有些包可能根本就不能自动安装。
在 5 上安装更容易成功。在 5 上安装,需要手工安装一些包,有些甚至不能用
直接安装,需要下载轮子之类的东西再手动安装。
的 版本 太高 也 不 好 , 可 能 与 的 66 有 冲 突 。 据 说 如 果 非 要 用 高 版 本 的
,需要将 &# 的 66 重新编译。
推 荐 的 方 法 : 安 装 '$3%$ , 在 '$3%$ 上 使 用 “ 3%$3 $7
89命令,创建一个名为 的虚拟环境,然后切换到新的虚拟环境中进行
安装及今后的定制开发。
的 版本,用最新版的 &$ ),将 源目录作为项目打开,如果没事先选
择虚拟环境,默认 :'.; 环境,&$ ) 会自动对虚拟环境进行配置,使 可执行。退
出 &$ ),在 '$3%$ ) 下也就能直接运行了。
14 中的文件 <( )= 中列出了所有需要安装的第三方包,有些还指明了
版本。您可以对照 * 的结果,把这些包先分别装好,然后再执行 $**+$,会减少一
些重复工作。
1.2.2. vn.py 的启动
提供的源码中没有主程序。 在启动过程中可以只加载必要的模块,因此需要使用者自
己根据需要创建主程序。在 14 中创建一个新的 文件 (,代码为:
> )) ;;
> ) $% ) ,$;
> ) $% () ,$5%2?3 $@<$
> )$2$3) &$2$
> )$3$@ $) &$. $'
> )$3$@+$3A ) &$:$3A '
> )$%$$@)$$ ) $$,$$ '
%>)$1
BBB.$ !"# $% BBB
<$83 $@<$
@8;;
)$@8,$;@
)$@$%%@$2$&$2$
)$@$%%@$&$. $'
)$@$%%@$&$:$3A '
)$@$%%@$$$,$$ '
)$@2%28,$5%2)$@?@
)$@2%22,$=)C%
<$=3
>@@$)@@88B@@)$@@B1
)$
以上是书中给出的示例主程序,但随着 版本的不同,建议的主程序略有差别,可以在下载页
面上找到。
随着用户使用经验的积累,可能需要在系统中加载不同的模块,这就需要对主程序进行修改定制。
比如本书给出的示例中增加了数据库管理器的加载。
打开 &,,转到 14 目录,运行下面命令:
(
就可以启动 。
使用 &, 有多种方法,如:
7使用 5%2 的“运行”功能,运行 &,。
7使用 5%2 的资源管理器,在 14 目录下,按住 .> 键,点击鼠标右键,在弹出
菜单中选择“在此处打开 2 .** 窗口”。
如果上述方法都不行,比如可能出现以下出错信息:
# $3+$3A) 33$***$1
D*B (B?*?E)%(*F
> )$2$%$) $$2$
D*B1444$2$4%$4@@@@B?*?E)%(*F
> )%$@$2$) $$2$
D*B1444$2$4%$4%$@$2$B?*?E)%(*F
) 2)
D*B14(%4*+47$3A$42)B?*?E)%(*F
> )23)3*) G+H3?$3
D*B14(%4*+47$3A$423)4@@@@B?*?E)%(*F
) 2$??
) ; 166*$%>$*%1找不到指定的程序。
此时可以使用 '$3%$ 的 '$3%$ ),应该可以成功。
1.2.3. 使用 IDE
要分析原代码,最好还是在 ; 中进行。使用 ;,不仅方便查看源码,还可以在其中调试执行,
有利于加快对源码的理解。
教材推荐使用 &$ ),把 14 目录作为一个项目打开,执行其中的 (,可正常运
行。这样就可以对代码进行修改和调试。我还测试了用 3 也可以。如果是 '$3%$ 环境,也可以
剩余63页未读,继续阅读
资源评论
稳转
- 粉丝: 23
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功