Python量化交易平台开发教程系列3-vn.py项目中API封装的编译

韦纳VeighNa(VNPY)新手入门到写策略 CtaStrategy和CtaBacktester两个模块,在启动时都会自动扫描加载VeighNa Trader运行时目录(主界面窗口顶部标题栏的路径)下的strategies目录中的策略文件。1、”MyStrategy“这个策略名称与编写策略代码里面的类名相同,该策略是问题3中的demo.py里面的类class MyStrategy(CtaTemplate).首先,参考问题2并完成strategies文件夹的创建,进入strategies文件夹创建自己的策略文件,示例:demo.py,以及参考截图示例。 阅读详情

原创文章,转载请注明出处:用Python的交易员

前言

经历了两篇的理论折磨后,本篇教程开始进入实际操作的环节,这里作者假设读者是毫无C++经验的用户,操作一步步配图,还有问题的来vn.py项目的github主页上提问。

本篇将会包含的内容:

  1. 安装Anaconda (一次安装搞定95%以上量化相关包的Python发行版)

  2. 安装Visual Studio

  3. 编译Boost库

  4. 编译vn.lts

安装Anaconda

在Anaconda历史版本中下载1.9.2(win 32位版本)。

enter image description here

下载好后双击安装,流程没有特别需要注意的,安装文件夹作者选的是D:\Anaconda,读者可以自己选择,注意最后一步编译vn.lts中设置时的文件夹必须是这里的安装文件夹。

为什么不用最新版本:尝试过使用2.1.0版,发现有一些包在我的电脑上存在兼容性问题(可能因为中文支持不好),需要修改一些.py文件里的源代码,太过麻烦,而且1.9.2到2.1.0的区别非常小。

为什么不用64位版本:同样是因为发生过兼容性的问题,不怕麻烦的读者可以自己折腾看看。

安装Visual Studio

在Visual Studio下载中下载Community 2013 with Update 4,注意选择简体中文(英文好的随意)。

enter image description here

下好了同样正常安装,安装文件夹随意,这个对后面编译没有影响。

不想用2013的其他版本的VS应该也都没问题,作者还测试过2010。

编译Boost库

下载解压缩

在Source Forge下载Boost 1.57.0,Source Forge下载速度较慢,建议选择7z格式。

enter image description here

下载完成后进行解压缩,将Boost库放到D:\boost_1_57_0文件夹下,注意最后一步编译vn.lts同样会用到这个文件夹。

Visual Studio 命令提示

打开Visual Studio 2013,在菜单栏的“工具”下找到“Visual Studio 命令提示”打开,如下图。

enter image description here

打开后的窗口就是个cmd命令窗口,接下来我们需要在其中敲入一些命令。

记得我们之前Boost库放在了D:\boost_1_57_0这个文件夹下,首先我们要切换到这个文件夹,逐行输入以下命令,输完后记得回车:

d:

cd\boost_1_57_0

此时cmd里的显示应该类似于: enter image description here

booststrap.bat

然后输入以下内容,用于生成b2.exe文件:

bootstrap.bat

成功后显示为:

enter image description here

b2.exe

接下来编译boost库,--toolset=msvc-12.0是因为作者使用的是VS2013, --build-type=complete编译整个boost库,因为项目中不止用到boost.python:

b2 --toolset=msvc-12.0 --build-type=complete

这一步耗时会较长,视乎你的电脑性能,作者这里耗时大约20多分钟,过程中也会出现很多奇怪的输出,忽略就好,成功后会看到:

enter image description here

这里D:\boost_1_57_0\stage\lib中就是我们编译好的Boost库。

编译vn.lts

本教程中的例子是行情API(vnltsmd)。

下载vn.py

vn.py项目托管在Github上,主页为https://github.com/vnpy/vnpy,点击主页右侧的“Download ZIP”下载(下图红框)。

enter image description here

解压缩zip文件,将vn.lts\ltsapi文件夹下的所有文件(.so文件除外)以及vn.lts\vnltsmd\pyltsmd文件夹下的所有文件,复制到一个新的文件夹中(假设命名为new),内容如下图所示:

enter image description here

创建VS项目

打开VS2013后,点击菜单栏的“文件” -> “新建” -> “项目”, 在弹出的窗口中的左侧选择“模板” -> “Visual C++” -> “Win32” -> “Win32项目”,下方的名称填入“vnltsmd”, 位置填入“D:\”(参见下图)。

enter image description here

点击“确定”后,弹出Win32应用程序向导,点击“下一步”,应用程序类型选择为“DLL”,点击“完成”。

添加文件

在左侧的解决方案管理器中,将已有的文件全部删除。然后右键点击vnltsmd,选择“添加” -> “现有项”, 将之前new文件夹中所有的文件添加进来,如下图:

enter image description here

添加完成后的解决方案如下图:

enter image description here

配置项目

点击上方工具栏中的解决方案配置选项框(默认显示应该是“Debug”),选择“Release”,如下图红色方框: enter image description here

右键点击方案管理器中的vnltsmd,选择“属性”,打开“vnltsmd属性页”对话框。

选择“配置属性” -> "VC++目录” ,如下图:

enter image description here

在包含目录中添加:

  • D:\boost_1_57_0
  • D:\Anaconda\include
  • new文件夹

在引用目录中添加:

  • D:\boost_1_57_0\libs\
  • D:\Anaconda\libs
  • new文件夹

然后点击“链接器”,在附加库目录中添加:

  • D:\boost_1_57_0\stage\lib
  • D:\Anaconda\libs
  • new文件夹

最后点击“C/C++” -> "预编译头”,将“预编译头”设置为“不使用预编译头”。

都设置完了记得点“确定”,不然又得重弄一遍。

编译

终于完成了繁琐的项目创建和配置,此时按下F7,VS就会开始自动编译创建项目。显示如下内容说明编译成功:

1>------ 已启动生成:  项目: vnltsmd, 配置: Release Win32 ------
1>  dllmain.cpp
1>  stdafx.cpp
1>  vnltsmd.cpp
1>     正在创建库 D:\vnltsmd\Release\vnltsmd.lib 和对象 D:\vnltsmd\Release\vnltsmd.exp
1>  正在生成代码
1>  已完成代码的生成
1>  vnltsmd.vcxproj -> D:\vnltsmd\Release\vnltsmd.dll
========== 生成:  成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========

这时候我们到D:\vnltsmd\Release\文件夹下,找到vnltsmd.dll这个文件,将后缀名从.dll改为.pyd,就可以直接在python中导入使用了。

从Github上下载的文件解压缩后的文件夹内,找到vn.lts\vnltsmd\test文件夹,将改名后的vnltsmd.pyd复制到该文件夹下覆盖原本的同名文件,就可以使用mdtest.py进行测试了,注意要在mdtest.py中先填入你的LTS用户名和密码。

总结

本篇教程如果读者从头到尾按照步骤一步步做下来应该是可以保证编译出.pyd文件的,上文示例中使用的是行情API,交易API的编译方法相同。

史上最详细的VNpy入门教程,从图文安装教程到手搓策略一步到位 VNpy团队直接提供了一整套打包好的安装程序,下载完了动动鼠标就搞定,一套带界面、带策略编辑器、带回测引擎的全家桶,图形界面都有了,你再不会,那真不是技术的问题……接下来带大家走一遍如何自己写一个双均线策略的流程,估计大部分人会选择官方出的一键安装包,所以以下教程均基于一键安装包来完成。了,有点像Anaconda,会给你的环境默认安装许多有用的包。花姐就按照官方建议被坑了,装了半天,各种捣鼓,也没搞定。在安装时最好创建个Python的虚拟环境,不然我怕VNpy安装好了,你的其它程序反而挂了。 阅读详情

相关推荐

量化交易入门之vnpy简单策略编写

本篇博客将介绍量化交易框架vnpy的简单策略编写。

qq_42247900的博客 4273

vnpy,一个不可思议的Python库!

vn.py是一个开源的 Python 交易编程框架,旨在帮助程序员快速搭建属于自己的量化交易平台。该框架支持股票、期货、外汇等多种金融产品的交易,提供了从数据获取、策略开发到交易执行的全流程支持。

黑马非马的博客 1万+

VNPY用户手册.docx

VNPY用户手册

vnpy:Python量化交易开发框架

它集成了多个国内外的交易接口,支持多种交易所的实时行情获取和交易执行,并提供了丰富的技术指标、交易数据分析和可视化功能。当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。vnpy库提供了丰富的功能和接口,可以用于快速开发和回测量化交易策略。

白帽阿叁的博客 6957

鲁棒优化入门(6)—Matlab+Yalmip两阶段鲁棒优化通用编程指南(上)

Matlab+Yalmip两阶段鲁棒优化通用编程指南(上篇),内容包括: ①.拿到一个复杂的两阶段鲁棒优化问题的分析步骤和方法。 ②.采用Yalmip工具箱中的uncertain函数和鲁棒优化模块求解两阶段鲁棒优化的子问题。 ③.Yalmip工具箱中的鲁棒优化模块和常规的求解思路有什么异同。 ④.使用KKT条件求解两阶段鲁棒优化的子问题,并使用C&CG算法进行迭代求解。

配电网和matlab的博客 1万+

边云协同智能进化:大模型与小模型的动态训练与高效部署策略

本文深入探讨了边云协同架构下大模型与小模型的动态训练与高效部署策略。通过物流分拣、医疗影像等实战案例,展示了如何利用边云协作框架实现AI模型的智能进化,显著提升处理效率与准确性。重点解析了动态任务分配、增量学习和知识蒸馏等关键技术,为分布式训练场景提供优化方案。

work3的博客 191

python量化交易平台开发教程系列_Python量化交易平台开发教程系列3-vn.py项目中API封装的编译...

原创文章,转载请注明出处:用Python的交易员前言经历了两篇的理论折磨后,本篇教程开始进入实际操作的环节,这里作者假设读者是毫无C++经验的用户,操作一步步配图,还有问题的来vn.py项目的github主页上提问。本篇将会包含的内容:安装Anaconda (一次安装搞定95%以上量化相关包的Python发行版)安装Visual Studio编译Boost库编译vn.lts安装Anaconda在A...

weixin_39602280的博客 343

Unity WebGL项目如何实现画布透明,完美融入网页背景(附.jslib文件与完整配置)

本文详细解析了Unity WebGL项目实现画布透明化的技术原理与实战步骤,从.jslib文件配置到前端框架集成,帮助开发者解决默认背景色问题,实现3D内容与网页设计的无缝融合。重点介绍了透明化核心机制、常见误区及React/Vue等现代框架中的最佳实践方案。

weixin_31896061的博客 301

【量化】Python量化交易平台vnpy开发-汇总笔记

文章目录0.引言1.类CTP交易API的工作原理2.类CTP交易API的Python封装设计3.vn.py项目中API封装的编译4.事件驱动引擎原理和使用5.底层接口对接6.中层引擎设计7.顶层GUI界面开发(1)8.顶层GUI界面开发(2) 文章专栏:https://zhuanlan.zhihu.com/vn-py 开源代码:https://github.com/vnpy/vnpy [5年前的文...

GreatXiang888的博客 3643

Cadence ADE实战:1GHz VCO相位噪声仿真全流程(附PSS/Pnoise避坑指南)

本文详细介绍了在Cadence ADE环境中对1GHz VCO进行相位噪声仿真的完整流程。重点剖析了PSS(周期性稳态分析)和Pnoise(周期性噪声分析)两大核心引擎的关键参数设置与避坑指南,帮助射频与模拟IC设计者准确评估VCO性能,解决仿真不收敛、结果异常等常见问题。

rock5的博客 672

abaqus热力耦合模拟教程学习笔记

学习资源:BV1je4y1a7Ku软件:abaqus2016以m为单位制。

qq_41900477的博客 2万+

【vn.py学习笔记(二)】vn.py底层接口 学习笔记

【vn.py学习笔记(二)】vn.py底层接口 学习笔记CTP API的工作原理CTP介绍API功能介绍CTP API文件API 通用规则CTP API的Python封装设计封装设计思路封装后API工作流程CTP API对接中层引擎原理参考资料   笔者刚接触量化投资,对量化投资挺感兴趣,在闲暇时间进行量化投资的学习,只能进行少量资金进行量化实践。目前在进行基于vnpy的A股市场的量化策略学习,主要尝试攻克的技术难点在:A股市场日线数据的免费获取维护、自动下单交易、全市场选股程序、选股策略的回测程序、基于机

PAN_Andy的博客 4527

深入解析Dataloader中shuffle机制与随机种子对模型训练的影响

本文深入探讨了Dataloader中shuffle机制与随机种子对机器学习模型训练的影响。通过实际案例分析,详细解释了数据打乱顺序的必要性、随机种子的正确设置方法以及两者协同工作的原理,帮助开发者避免常见陷阱并提升模型训练效果。

weixin_29166013的博客 142

Python量化交易框架vn.py:从零构建AI驱动的交易系统

在金融科技快速发展的今天,量化交易已成为专业投资者的核心竞争力。vn.py作为一款基于Python的开源量化交易平台开发框架,为开发者提供了从数据获取到实盘交易的完整解决方案。本文将带你深入了解vn.py的核心架构、AI量化功能以及如何快速上手构建自己的交易系统。 ## 为什么选择vn.py进行量化交易开发? **vn.py量化交易框架**以其全面的功能覆盖和灵活的架构设计,成为众多金融机构和

gitblog_00606的博客 1073

2024年03月CCF-GESP编程能力等级认证Python编程五级真题解析

下面流程图在yr输入2024时,可以判定yr代表闰年,并输出 2月是29天 ,则图中菱形框中应该填入( )。 A. (yr % 400 == 0) or (yr % 4 == 0) B. ( yr % 400 == 0) or (yr % 4 == 0 and yr %100 != 0) C. ( yr % 400 == 0) and ( yr % 4 == 0) D. (yr % 400 == 0) and (yr % 4 == 0 and yr % 100 != 0)

人生就是一个不断学习的过程 748

多思计组实验实验三、存储器读写实验

实验三、存储器读写实验

qq_53089329的博客 3653

终极指南:快速上手vn.py量化交易框架

想要进入量化交易领域却不知从何入手?vn.py作为基于Python的开源量化交易平台开发框架,正是你开启专业交易之旅的理想选择。这个由交易员开发、为交易员服务的强大工具,将带你从零开始构建完整的量化交易系统。 [![vnpy框架核心图标](https://raw.gitcode.com/vnpy/vnpy/raw/737eff0902ec6c3da4e20f11d53dabddac9887a2/

gitblog_00395的博客 963

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Python量化交易框架怎么选?用vn.py从回测到实盘的完整路径

在开始读这篇文章之前,先问问自己:你是不是也经历过这几个场景——想同时接期货和股票行情,结果被各家柜台API的参数格式折腾到凌晨;写好的策略在历史数据上收益曲线完美,一上实盘就频繁出错;或者好不容易训练出一个机器学习模型,却发现它和交易系统的代码风格完全两套体系,根本没法串起来? 这些问题的根源,往往不在你的策略本身,而在于缺少一个靠谱的底层框架。vn.py(项目名 VeighNa)正是为解决这

gitblog_00594的博客 343

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

从零开始构建AI量化交易系统:vn.py实战指南

在金融科技的浪潮中,量化交易已成为专业投资者的核心工具。vn.py作为基于Python的开源量化交易平台开发框架,为交易员提供了从数据获取到实盘交易的完整解决方案。这款由交易员开发、为交易员服务的框架,如今融入了AI技术,为量化交易带来了全新的可能性。 ## 🎯 核心关键词与学习价值 **核心关键词**:量化交易框架、AI策略开发、Python交易系统、多因子模型、实盘交易 **长尾关键词

gitblog_00424的博客 510

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

如何用Python构建企业级量化交易系统:vn.py架构深度解析

在金融科技快速发展的今天,量化交易已经从专业机构的专属工具转变为广大开发者能够触及的技术领域。vn.py作为一个由交易员开发、为交易员服务的开源Python量化交易框架,为构建企业级交易系统提供了完整的解决方案。本文将深入剖析vn.py的技术架构、核心功能和应用实践,帮助你理解如何利用这个框架构建自己的量化交易系统。 ## 项目定位:从交易工具到开发框架的演进 vn.py最初是一个交易终端软件

gitblog_00672的博客 294

python 股票交易接口 github_GitHub - gusihao/vnpy: 基于python的开源交易平台开发框架...

vn.py - 基于python的开源交易平台开发框架2016年vn.py项目计划回顾转眼之间已经到了2016年的四季度,感谢广大用户的支持,vn.py项目在这一年中成长得十分迅速。截止2016年10月13日,Github上的Star已经从年初的583上升到了1672,Fork也从362上升到了987。目前在Github上量化交易相关的项目里,vn.py名列全球第三,仅次于zipline和tush...

weixin_39914752的博客 833

终极指南:如何用vn.py快速构建AI量化交易系统

想要进入量化交易领域但被复杂的技术门槛吓退?vn.py基于Python的开源量化交易平台开发框架正是为你量身打造的解决方案!这款由交易员开发、为交易员服务的框架,如今融入了AI技术,为专业量化交易带来了更多可能性。无论你是金融从业者、数据科学家还是编程爱好者,vn.py都能帮你快速搭建属于自己的量化交易系统。 ## 🚀 为什么选择vn.py作为你的量化交易起点? **vn.py**是一个功能

gitblog_07871的博客 458

从零到一:AI量化交易系统vn.py实战入门指南

**vn.py**是一款基于Python的开源量化交易平台开发框架,专为交易员设计,提供从数据获取、策略研发到实盘交易的完整解决方案。在AI技术浪潮下,vn.py 4.0版本重磅推出AI量化模块,让普通开发者也能轻松构建智能交易系统。 **核心关键词**:量化交易框架、AI策略开发、Python交易系统、多因子模型、实盘交易 **长尾关键词**:vn.py安装配置、机器学习策略实战、CTA策略

gitblog_01083的博客 349

vn.py量化交易框架完整开发指南:从环境搭建到策略部署的全流程实践

vn.py作为基于Python的开源量化交易平台开发框架,提供了从数据获取、策略编写到实盘交易的全流程解决方案,帮助开发者快速构建专业级自动化交易系统。本文将系统讲解如何利用这一框架解决实际交易场景中的核心问题,从环境配置到高级功能应用,为量化交易开发提供全方位技术支持。 ## 量化交易系统开发的核心挑战与解决方案 在金融市场数字化转型过程中,交易系统开发面临三大核心痛点:多市场接口整合复杂、

gitblog_00998的博客 773

python 股票交易接口 github_GitHub - Higgsbit/vnpy: 基于python的开源交易平台开发框架...

vn.py - 基于python的开源交易平台开发框架2016年vn.py项目计划回顾转眼之间已经到了2016年的四季度,感谢广大用户的支持,vn.py项目在这一年中成长得十分迅速。截止2016年10月13日,Github上的Star已经从年初的583上升到了1672,Fork也从362上升到了987。目前在Github上量化交易相关的项目里,vn.py名列全球第三,仅次于zipline和tush...

weixin_39675289的博客 580

python项目计划_2017年vn.py项目计划

去年初写2016年项目计划的情景还历历在目,眨眼就一年过去了,vn.py项目在2016年的成长速度远远超出了我的预期。截止写这篇文章的2017年1月7日,vn.py项目在Github上收获了2244个Star以及1276个Fork,比起2016年初几乎翻了四倍,代码贡献者的数量超过了20人(其中17人是在Github上直接提交了代码),机构用户的数量也已经超过了50家。首先回顾2016年项目计划...

weixin_39997664的博客 207
上一篇: Python量化交易平台开发教程系列2-类CTP交易API的Python封装设计
下一篇: Python量化交易平台开发教程系列4-事件驱动引擎原理和使用
Trader_Python
博客等级 码龄11年 392粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值