vn.py 2.1.8 发布,策略盈亏统计监控

栏目: 软件资讯 · 发布时间: 5年前

内容简介: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 字段进行映射和计算,进一步增强了对于投资组合的盈亏统计和分析功能:

vn.py 2.1.8 发布,策略盈亏统计监控

界面整体可以分为左右两部分,左边显示的是当前已有交易组合的信息表:

vn.py 2.1.8 发布,策略盈亏统计监控

其中每列的含义如下:

  • 组合名称:委托的来源(reference)

    • 手动交易:ManualTrading

    • CTA策略:CtaStrategy_ 策略名

    • 价差交易:SpreadTrading_ 价差名

    • 期权交易:OptionMaster_ElectronicEye/DeltaHedging

    • 算法交易:AlgoTrading_ 算法编号

    • 脚本策略:ScriptTrader

    • 组合策略:PortfolioStrategy_ 策略名

  • 本地代码:带交易所后缀的合约代码

  • 开盘仓位:昨日收盘时(今日开盘),组合内该合约的持仓

  • 当前仓位:开盘仓位加上今日成交数量(多头成交 - 空头成交)的结果

  • 交易盈亏:今日所有成交,以成交价格映射到当前最新价的盈亏

  • 持仓盈亏:组合开盘仓位,以昨收盘价映射到当前最新价的盈亏

  • 总盈亏:交易盈亏和持仓盈亏的和

  • 多头成交:组合内该合约今日买开和买平成交数量

  • 空头成交:组合内该合约今日卖开和卖平成交数量

其中交易盈亏(TradingPnl)和持仓盈亏(HoldingPnl)的计算,采用的是期货交易所每日结算时所用的【逐日盯市】(Marking to Market)算法,具体原理可以搜索相关资料学习。

该组件基于 QTreeWidget(树形表格)开发,可以很方便的点击最左侧每行的箭头进行折叠和展开,也可以点击顶部的【全部展开】和【全部折叠】按钮进行批量操作,并通过【调整列宽】按钮自动调整表格每列的宽度。

右侧部分显示的是所有成交记录,支持通过右上角的下拉框根据组合进行筛选显示:

vn.py 2.1.8 发布,策略盈亏统计监控

盈亏数字的更新基于定时逻辑自动计算,计算频率可以通过顶部中间的选项框调整:

vn.py 2.1.8 发布,策略盈亏统计监控

整体上重构后的 PortfolioManager 使用非常傻瓜,大部分情况下只要在 VN Station 的启动界面加载即可,运行策略交易的过程中打开【投资组合】界面,就能实时监控每个策略的当日交易和盈亏情况。

虽然模块中最频繁运行的策略盈亏计算逻辑已经高度优化,实现了和成交数量无关的 O(1) 时间复杂度,即不会因为成交数量过多而导致计算耗时变长,但终究会有一定的额外开销(百微秒到几毫秒)。对于运行策略交易的程序,总归开销是越低越好,因此推荐刷新频率在不影响使用的情况下可以设的高些(比如 30 秒才计算一次)。

所有组合的持仓数据数据会在关闭 VN Trader 时写入缓存文件中,所以不要直接杀进程退出,会丢失数据!在隔日加载时,程序会自动将昨天的总仓位结算到今天的昨仓数据字段中,注意该逻辑对于 24 小时交易的市场(外盘期货、数字货币)可能不一定合适,后面考虑加入每日定时结算或者手动结算的功能。

如果发现有仓位记录错误,或者策略已经移除的情况,可以用 VS Code 手动修改缓存文件,修改后再重新启动 VN Trader 即可。缓存文件位于C:\users\administrator\.vntrader\portfolio_manager_data.json。

其他更新

接口方面:

  1. 南华期货 NHTD 极速接口,包括针对 ETF 期权的 NhStockGateway 和针对期货的 NhFuturesGateway,该接口只能在【南华云】托管环境中使用,采用 UDP 通讯协议(行情和交易)替换传统 API 的 TCP 通讯协议,达到极致的低延时交易性能;

  2. 国泰君安统一交易网关接口 GtjaGateway,行情上基于国君 SIP 行情 API 开发(支持 TCP、软件组播、FPGA 组播等多种行情源),交易上基于国君HFT交易API开发(支持华锐极速、顶点极速、金证集中等多种柜台)。

策略模块:

SpreadTrading 模块新增灵活价差功能,对比之前的普通价差,能够支持更加灵活的价差计算公式(例如 A/B、A-B*C 等),同时允许引入不参与交易的定价腿,满足复杂境内外套利价差需要考虑汇率和税率等因素的需求。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Rework

Rework

Jason Fried、David Heinemeier Hansson / Crown Business / 2010-3-9 / USD 22.00

"Jason Fried and David Hansson follow their own advice in REWORK, laying bare the surprising philosophies at the core of 37signals' success and inspiring us to put them into practice. There's no jarg......一起来看看 《Rework》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换