内容简介:vn.py 2.1.8 发布了。vn.py 是基于 Python 的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统,目前已经成长为一套全功能的交易程序开发框架。 目前,vn.py 已经正式进驻 Gitee。对于访问 Github 速...
vn.py 2.1.8 发布了。vn.py 是基于 Python 的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统,目前已经成长为一套全功能的交易程序开发框架。
目前,vn.py 已经正式进驻 Gitee。对于访问 Github 速度太慢的用户来说,就有了一个更好的国内替代选择。该 Gitee 仓库会每日和 Github 仓库同步,自动更新最新版本的代码。
仓库地址:https://gitee.com/vnpy/vnpy
本次更新的内容主要是重构了 PortfolioManager 模块,实现交易策略的实时盈亏统计监控功能。和之前一样,对于使用VN Studio的用户,启动VN Station后,直接点击界面右下角的【更新】按钮就能完成自动更新升级,对于没有安装的用户,可下载VNStudio-2.1.8,体验一键安装的量化交易Python发行版。
下载地址:https://download.vnpy.com/vnstudio-2.1.8.exe
重构后的投资组合管理模块(PortfolioManager)
PortfolioManager 模块最初于 2.0.8 版本发布,当时主要的定位是为主观类的交易策略(如期货基本面单边和套利策略),提供一个方便的交易业绩跟踪和分析工具。
在 2.1.7 版本增加了委托来源标识(reference 字段)后,所有从 vn.py 发出的委托请求都可以直接通过该标识来区分其交易来源,如手动交易、算法执行、量化策略等,每个交易来源可以视作一个独立的【投资组合】。
本次 2.1.8 版本对 PortfolioManager 模块的重构,将所有委托基于 reference 字段进行映射和计算,进一步增强了对于投资组合的盈亏统计和分析功能:
界面整体可以分为左右两部分,左边显示的是当前已有交易组合的信息表:
其中每列的含义如下:
-
组合名称:委托的来源(reference)
-
手动交易:ManualTrading
-
CTA策略:CtaStrategy_ 策略名
-
价差交易:SpreadTrading_ 价差名
-
期权交易:OptionMaster_ElectronicEye/DeltaHedging
-
算法交易:AlgoTrading_ 算法编号
-
脚本策略:ScriptTrader
-
组合策略:PortfolioStrategy_ 策略名
-
-
本地代码:带交易所后缀的合约代码
-
开盘仓位:昨日收盘时(今日开盘),组合内该合约的持仓
-
当前仓位:开盘仓位加上今日成交数量(多头成交 - 空头成交)的结果
-
交易盈亏:今日所有成交,以成交价格映射到当前最新价的盈亏
-
持仓盈亏:组合开盘仓位,以昨收盘价映射到当前最新价的盈亏
-
总盈亏:交易盈亏和持仓盈亏的和
-
多头成交:组合内该合约今日买开和买平成交数量
-
空头成交:组合内该合约今日卖开和卖平成交数量
其中交易盈亏(TradingPnl)和持仓盈亏(HoldingPnl)的计算,采用的是期货交易所每日结算时所用的【逐日盯市】(Marking to Market)算法,具体原理可以搜索相关资料学习。
该组件基于 QTreeWidget(树形表格)开发,可以很方便的点击最左侧每行的箭头进行折叠和展开,也可以点击顶部的【全部展开】和【全部折叠】按钮进行批量操作,并通过【调整列宽】按钮自动调整表格每列的宽度。
右侧部分显示的是所有成交记录,支持通过右上角的下拉框根据组合进行筛选显示:
盈亏数字的更新基于定时逻辑自动计算,计算频率可以通过顶部中间的选项框调整:
整体上重构后的 PortfolioManager 使用非常傻瓜,大部分情况下只要在 VN Station 的启动界面加载即可,运行策略交易的过程中打开【投资组合】界面,就能实时监控每个策略的当日交易和盈亏情况。
虽然模块中最频繁运行的策略盈亏计算逻辑已经高度优化,实现了和成交数量无关的 O(1) 时间复杂度,即不会因为成交数量过多而导致计算耗时变长,但终究会有一定的额外开销(百微秒到几毫秒)。对于运行策略交易的程序,总归开销是越低越好,因此推荐刷新频率在不影响使用的情况下可以设的高些(比如 30 秒才计算一次)。
所有组合的持仓数据数据会在关闭 VN Trader 时写入缓存文件中,所以不要直接杀进程退出,会丢失数据!在隔日加载时,程序会自动将昨天的总仓位结算到今天的昨仓数据字段中,注意该逻辑对于 24 小时交易的市场(外盘期货、数字货币)可能不一定合适,后面考虑加入每日定时结算或者手动结算的功能。
如果发现有仓位记录错误,或者策略已经移除的情况,可以用 VS Code 手动修改缓存文件,修改后再重新启动 VN Trader 即可。缓存文件位于C:\users\administrator\.vntrader\portfolio_manager_data.json。
其他更新
接口方面:
-
南华期货 NHTD 极速接口,包括针对 ETF 期权的 NhStockGateway 和针对期货的 NhFuturesGateway,该接口只能在【南华云】托管环境中使用,采用 UDP 通讯协议(行情和交易)替换传统 API 的 TCP 通讯协议,达到极致的低延时交易性能;
-
国泰君安统一交易网关接口 GtjaGateway,行情上基于国君 SIP 行情 API 开发(支持 TCP、软件组播、FPGA 组播等多种行情源),交易上基于国君HFT交易API开发(支持华锐极速、顶点极速、金证集中等多种柜台)。
策略模块:
SpreadTrading 模块新增灵活价差功能,对比之前的普通价差,能够支持更加灵活的价差计算公式(例如 A/B、A-B*C 等),同时允许引入不参与交易的定价腿,满足复杂境内外套利价差需要考虑汇率和税率等因素的需求。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 媒体:蔚来要实现盈亏平衡 每年需卖出20万辆ES6
- zabbix监控tomcat 自定义监控项
- iOS 性能监控(一)—— CPU功耗监控
- iOS 性能监控(二)—— 主线程卡顿监控
- WGCLOUD 监控系统更新,集成 ES 在线监控工具
- 监控之路5-zabbix定义一次完整的监控
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解LINUX内核(第三版)
(美)博韦,西斯特 / 陈莉君;张琼声;张宏伟 / 中国电力出版社 / 2007-10-01 / 98.00元
为了彻底理解是什么使得Linux能正常运行以及其为何能在各种不同的系统中运行良好,你需要深入研究内核最本质的部分。内核处理CPU与外界间的所有交互,并且决定哪些程序将以什么顺序共享处理器时间。它如此有效地管理有限的内存,以至成百上千的进程能高效地共享系统。它熟练地统筹数据传输,这样CPU 不用为等待速度相对较慢的硬盘而消耗比正常耗时更长的时间。 《深入理解Linux内核,第三版》指导你对内核......一起来看看 《深入理解LINUX内核(第三版)》 这本书的介绍吧!