vn.py全实战进阶课程学习笔记(零)
刚接触量化投资,交交易对量化投资充满兴趣,易系在闲暇时间进行学习,统源只能进行少量资金实践。软件现阶段的交交易计划是阅读 vn.py 的源码,学习其架构机制,易系开源 php oa系统源码通过分享笔记加深理解。统源如果有不对的软件地方,欢迎指正。交交易分享的易系仓库:github.com/PanAndy/quan...
觉得内容有收获,欢迎关注公众号,统源获取更多资源。软件学习过程中,交交易我也收集了一些量化、易系技术的统源视频及书籍资源,欢迎大家关注公众号亚里随笔获取。
本系列博客是对 vnpy 官方课程《 vn.py全实战进阶课程》的学习整理,旨在梳理课程内容,介绍源码实现,并参考《 vnpy项目文档》。实验操作也将根据课程进行,力求复现过程,用截图记录。
以下记录了配置 vnpy 回测与实盘环境的相关内容。
MySQL 数据库配置
初次接触 vnpy 使用 sqlite 数据库,但在 UI 界面加载数据时较为卡顿,可能是数据库问题。重新安装 vnpy 时,选择配置 mysql 数据库。
配置流程包括:安装 mysql、创建数据库、vnpy 数据库配置。整体配置流畅,未遇报错。
MySQL 安装与创建数据库
从 MySQL 官网下载 windows 版本安装包,一路默认安装。记住 root 账户密码,其他设置默认。
安装完成后,燕窝新版溯源码自动启动 MySQL WorkBench,连接数据库时输入 root 密码创建连接。需手动创建 vnpy 数据库。
在数据库管理界面,点击创建新数据库按钮,输入 vnpy 作为名称,完成数据库创建。
vnpy 数据库配置
数据库创建后,启动 VN Trader,配置数据库相关字段,保存配置后重启 VN Trader。配置成功后,数据库使用无误。
刷新 MySQL WorkBench,确认数据库表结构已创建。同时,检查 C:\Users\xxx\.vntrader\vt_setting.json 文件,验证配置更新。
rqdata 数据服务配置
申请了 天的 rqdata 试用账号,计划购买数据服务。参考官方文档《 vn.py 快速入门7 - 历史数据回测优化》进行配置。
申请试用权限
通过米筐量化平台申请,获得 天免费试用权限。注意,教育专区申请只能在校园网内使用,个人使用时需关注申请方式。
参数配置
收到授权邮件后,获取试用账号和密码。在 vnstation 配置表单中填写,重启 vnstation 完成配置。
simnow 仿真环境配置
首次配置 simnow 仿真环境,参考 vnpy 官方《 vn.py 快速入门2 - 国内期货CTP》。主要记录配置步骤,确保无意外。
准备账号
通过上期技术官方获取的 simnow 仿真交易环境账号。完成注册与登录,注意手机号验证与注册时间。
接口登录与合约查询
启动 VN Trader Pro,电脑源码被偷了连接 CTP 接口,配置连接信息。使用合约查询功能查看合约。订阅行情,注意价格显示与更新频率。
交易下单与委托成交
进行买卖下单与委托操作,关注资金与持仓变化。了解平仓规则与资金管理。
实盘交易准备
熟悉仿真环境后,准备使用 CTP 进行实盘交易。注意实盘交易与仿真环境的差异。
开放东方财富EMT柜台交易及行情CTPAPI源码
东方财富EMT柜台CTPAPI源码现已开放,持续两年,但因接口密码过长接入条件较高而未能广泛使用。我们注意到,密码长度问题可能仍未解决,这给用户带来了巨大困扰。为了解决兼容性问题,我们已发布交易及行情CTPAPI源码,欢迎用户根据自身需求进行修改。
东方财富EMT柜台提供开放式接口,包含模拟交易环境和专属网站注册渠道。用户可自行创建模拟账号,下载开发接口,网址为emt..cn。通过东财EMT柜台CTPAPI,用户可以直接利用CTP程序进行股票交易,理论上支持快期、VeighNa(vn.py)等软件接入进行股票、债券、基金等品种交易,只需将CTPAPI的dll复制过去即可。
至此,华鑫证券奇点柜台、中泰XTP柜台、东方财富EMT柜台的交易及行情CTPAPI源码已全部开放,涵盖6.3.~6.6.9全部CTPAPI版本,支持win、多线程看图源码win、linux、mac等所有平台。特别值得一提的是,华鑫证券奇点股票期权柜台的CTPAPI源码也将在后续发布。
东方证券OST极速柜台CTPAPI的发布也在计划之中,其接口与CTP接口的相似度极高,仅需对头文件进行调整即可实现对接。所有柜台CTPAPI接口源码均位于openctp的github仓库中,地址为github.com/openctp/open...。由于github的访问稳定性问题,以及仓库大小(约两个G)和动态库数量(两三百个),可能需要多次尝试才能成功克隆。
期货配资软件开发(期货资管系统平台搭建方案)
搭建期货系统平台,首先明确技术路线。后端可选Spring、SpringMVC和MyBatis等Java框架,前端则有Vue、c# winform等技术。
定制期货资管软件,包含外盘期货配资,全套源码采用C++、Vue、MySQL和Tradingview实现。功能涵盖K线模块、Tradingview、客户实时大数据分析、AI智能决策、风险自动计算、国内、海外自动下单。提供PC端及手机APP源码、部署文档和专业技术支持。
平台常见模块如下:
1.集成PC前端、手机APP(安卓、iOS)、代理商后台、总后台。湖南棋牌源码下载
2.智能切换行情,支持实盘与第三方数据源。申请账号后,后台直接使用。
3.后台对接实盘,主流内外盘接口如ctp、易盛、ib等,添加账号即可使用。
4.集成短信接口,可自由切换。
5.具备产品管理、实名审核、充值提现、新闻公告、邀请注册等功能。
期货资管系统的移动终端APP应包含分时与K线图行情、个性化下单板和交易设置。功能涵盖自选、报价、分时图、K线图(从分钟到年),三键下单板,便捷交易。
综上所述,介绍了期货资管系统的功能与平台搭建方案,旨在为用户提供全面、高效的服务。希望对大家的开发与使用有所帮助。
vn.py社区精选4 - 双均线策略深度解析
策略原理
双均线策略作为基础的CTA策略,通过短周期与长周期均线的金叉或死叉信号进行交易决策,捕捉市场趋势。策略包含两个关键周期的移动平均线,短周期反映近期市场走势,长周期代表较长时段的趋势。
源码分析
以vn.py项目中的双均线策略源码为例,解析策略实现逻辑和内部代码。
创建策略实例
所有vn.py框架中的CTA策略类(包括内置和自定义)皆基于CTA策略模板类(CtaTemplate)实现子类。模板类为策略设计提供了通用结构,如同汽车设计图指导汽车制造。CtaTemplate定义了交易函数和策略逻辑框架,使得快速实现策略成为可能。
策略初始化
在策略实例创建时,设置参数和变量。参数由外部指定,变量随策略状态变化动态更新。参数列表中包括策略名称、设置信息等,系统自动从配置文件中加载。变量列表用于界面显示,并在策略停止、收到回报或同步数据时保存状态。
构造函数__init__
构造函数接收CTA引擎、策略名称、标的代码和设置信息作为参数,其中引擎对象自动传入。创建BarGenerator实例用于生成分钟级别K线数据,ArrayManager用于缓存K线数据,支持指标计算。
状态变量初始化
状态变量初始化并非在构造函数中完成,而是在创建策略实例后通过图形界面的初始化按钮触发on_init函数,加载历史数据回放给策略初始化变量。
启动自动交易
点击启动策略按钮,自动调用on_start函数,将交易状态变量设置为True,启动交易流程。确保在界面刷新策略状态相关显示时调用put_event函数。
接收Tick推送
CTP接口每0.5秒推送Tick数据,由事件引擎分发到策略中。Tick数据通过BarGenerator的update_tick函数处理,合成1分钟K线数据,供策略使用。
核心交易逻辑
接收到K线数据后,将数据放入ArrayManager容器中,确保至少个数据后初始化完毕。调用talib库计算技术指标,判断金叉或死叉触发交易逻辑。交易指令由策略模板封装,在on_bar函数中直接调用。
委托回报处理
on_order函数处理委托状态变化,on_trader和on_stop_order函数处理成交回报和停止单回报。双均线策略在这些函数中通常无操作。
停止自动交易
每日交易结束后,通过停止按钮关闭自动交易,策略引擎调整交易状态变量,撤销所有活动委托,并保存变量状态。
CTA交易流程梳理
使用思维导图整理vn.py中策略实现与执行流程,包括从创建策略实例到停止自动交易的完整步骤。
《vn.py全实战进阶》课程介绍
该课程提供节内容,涵盖策略设计、参数回测和实盘自动交易的CTA量化业务流程,适合深入学习vn.py应用。
更多vn.py精华内容
关注公众号以获取更多深入分析和实践技巧。
vn.py发布v2.5.0 - Web应用后端服务
vn.py的2.5.0版本已发布,此更新重点在于实现Web应用后端服务,以满足用户在浏览器中运行和管理vn.py量化策略交易的需求。此新版本对数据库结构进行了底层修改,因此之前版本的数据库需要手动迁移,具体步骤请参考“数据库升级迁移”章节。 对于使用VN Studio的用户,启动VN Station并点击界右下角的更新按钮即可自动完成升级。没有安装的用户,请下载VN Studio-2.5.0,享受一键安装的量化交易Python发行版。Web应用后端服务架构设计
WebTrader采用了FastAPI作为后端服务器,支持REST主动请求调用和Websocket被动数据推送。运行时架构图展示两个独立的后端服务进程。使用步骤
新增的Web应用服务源代码位于vnpy_webtrader项目中,用户只需在VN Station启动时加载WebTrader应用即可。 启动VN Trader后,登录交易接口,点击顶部菜单栏的功能->Web服务打开窗口。此时系统运行的仅包括策略交易进程,右上角的服务器配置选项包括启动按钮,用户根据输入信息启动Web服务进程,后台会输出FastAPI运行过程中的日志信息。 启动浏览器打开网址.0.0.1:/docs,即可看到FastAPI接口文档网页,包含了目前WebTrader支持的接口信息,用户可结合vnpy_webtrader项目下的Jupyter Notebook进行接口测试。后续计划
WebTrader目前仅提供Web应用的后端接口,前端页面由社区用户实现,欢迎贡献代码。后续计划将逐渐增加策略交易应用管理功能,如CtaStrategy的调用。TTS交易接口
CTP API已成为国内金融市场的交易API标准,近期知乎网友krenx推出的OpenCTP项目,提供兼容或高度接近CTP的API功能,并自主实现了整套CTP柜台的仿真交易功能,为用户提供更多选择。2.5.0版本中也增加了对OpenCTP交易系统的支持,接口名为TtsGateway。数据库升级迁移
2.5.0版本对数据库结构进行了扩展增强,增加了字段。所有数据库管理器(vnpy.database)都已相应修改,升级后可能导致系统无法启动。购买了RQData等数据服务的用户可直接删除数据库后重新下载。自行录制的数据用户需执行数据迁移操作。其他更新
新增了基于易盛启明星/北斗星兼容交易API的EsunnyGateway,支持内盘期货、黄金TD、外盘期货等市场的交易。接口已剥离,并增加了Ubuntu上的一键自动安装功能,支持pip install命令快速安装。 CHANGELONG新增调整修复剥离花卷猫CTP-Python开源
花卷猫CTP-Python开源项目是一个旨在简化CTP接口调用并展示行情和交易结果的Python开源解决方案。它支持用户进行个性化开发,无论是实盘还是虚拟盘交易,都可轻松实现。该项目的代码可在这里获取,使用Python3.0编写的示例代码兼容性出色,安装只需pip install pywin,无需额外依赖。 CTP接口的底层封装为C/C++编写的dll,其中的实时资金、持仓等数据处理采用了自主研发的算法,相较于官方接口,运行效率显著提升且准确性极高。这一核心部分虽然不开放源代码,但经过长期验证,稳定可靠。 项目界面部分采用花卷猫框架的Python版本,通过可视化低代码方式,用户可以轻松创建界面。值得注意的是,项目发布的版本允许用户自由使用和商业发布,但所制作的产品与花卷猫科技并无法律关联,仅示例界面非官方正式产品。项目代码已经成熟,未来只会进行少量修正,花卷猫科技将不断扩展模块和提供更多的示例,以供用户放心使用。VeighNa发布v3.8.0 - IB交易接口功能强化!
VeighNa社区公众号vnpy-community于-9-发布VeighNa的3.8.0版本,主要升级了IB接口功能,包括API版本升级到..1,期权交易功能强化,增加了期权链合约数据查询和IB实时隐含波动率、希腊值风险数据订阅。
已安装VeighNa Studio的用户可通过快速更新功能自动完成升级,未安装的用户可下载VeighNa Studio-3.8.0体验Python量化交易发行版。推荐Ubuntu或Mac用户使用VeighNa Docker量化交易容器解决方案。
新版本IB接口API安装需前往IB官网下载对应操作系统版本的安装程序,选择Stable版本,安装后运行命令将ibapi接口库源代码添加至Python环境。安装目录下的source\pythonclient文件夹包含ibapi接口库源代码,使用Powershell窗口运行命令即可完成安装。
数字代码回归,因为IB接入的金融市场数量众多,导致合约数量庞大,为简化合约代码,VeighNa核心框架设计上遵循国内金融市场规则,早期使用了由IB分配的ConId,但不便记忆。为了解决问题,后续版本中引入了IB合约描述信息的字符串组合描述代码。在使用描述代码2年后,收到期权交易相关问题反馈,为解决这一问题,版本3.8.0重新引入了数字代码支持,并且两种代码类型可以混合使用。
期权交易增强,IB平台期权交易功能强大,3.8.0版本的IB接口在连接登录时提供了查询期权功能,订阅标的合约行情时自动查询期权链合约,满足期权策略交易所需信息。同时增加了IB提供的隐含波动率和希腊值风险数据支持,可通过TickData.extra字典访问获取。
华鑫奇点接口重构,之前版本中基于奇点官方Python 3.7 API开发的vnpy_tora无法在Python 3.环境中使用,新版本使用了奇点的C++ API重构封装,实现VeighNa Station直接加载使用。
变更日志,新增功能包括K线合成器支持日K线合成、基于华鑫奇点柜台的C++ API重构vnpy_tora、期权合约查询和扩展行情数据支持等。调整了vnpy_rest/vnpy_websocket限制在Windows上必须使用Selector事件循环、vnpy_ctp升级6.6.9版本API、支持大商所1毫秒级别行情时间戳等功能。优化了多个模块性能,修复了一些已知问题,确保用户使用体验。
2024-11-13 10:38
2024-11-13 10:18
2024-11-13 09:42
2024-11-13 09:42
2024-11-13 09:08