Skip to content

Commit

Permalink
Merge pull request vnpy#44 from vnpy/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
noranhe authored Apr 29, 2021
2 parents 042acd2 + 8b2fc94 commit fc772ca
Show file tree
Hide file tree
Showing 234 changed files with 83,773 additions and 3,977 deletions.
86 changes: 83 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,98 @@
# 2.2.1版本

## 修复
1. 修复IbGateway断线重连后,没有自动订阅之前已订阅的合约行情问题
2. 修复CTA模块的净仓交易模式中,部分平仓部分开仓时,开仓部分下单错误的问题
3. 修复OkexfGateway,某个合约全部平仓后,持仓数量不更新为0的问题
4. 修复HuobisGateway,当行情盘口不足5档时,TickData对象初始化出错的问题
5. 修复HuobifGateway,查询历史数据时由于请求超过1999个数据点导致的失败问题
6. 修复CtpGateway对于FAK和FOK委托指令的处理错误问题
7. 修复HuobiGateway的成交数量为浮点数时,浮点数精度导致上层应用仓位计算偏差问题
8. 修复BinancesGateway,U本位合约查询历史数据失败的问题


## 调整
1. 修改CTA模块的净仓交易模式,支持上期所和能交所的今昨仓拆分下单
2. 调整组合策略模块的回测引擎K线回放逻辑,当某个时间点K线数据缺失时,推送给策略的K线字典中不对其进行向前补齐

## 新增
1. 新增DataManager在导入CSV文件时,对于时间戳时区的选择功能
2. 新增CtaStrategy模块的策略移仓助手功能,实现一键式期货换月移仓支持


# 2.2.0版本

## 修复
1. 修复DataManager查询数据库中K线数据范围时,开始和结束日期相反的问题
2. 修复CoinbaseGateway的行情订单簿在更新时,已经撤单的档位不删除的问题
3. 修复BybitGateway对于USDT本位永续合约,浮点数委托量会被转换为0的问题
4. 修复BinanceGateway/BinancesGateway的ConnectionResetError问题,通过关闭HTTP连接的keep-alive功能实现
5. 修复HuobisGateway在USDT本位模式下时,浮点数合约乘数转换出错的问题
6. 修复PostgreSQL数据库对接层中,save_tick_data函数由于访问interval导致保存出错的问题
7. 修复DataRecorder模块中add_bar_recording下保存录制用合约配置错误的问题
8. 修复PostgreSQL数据库对接层中,由于事务执行失败导致的后续报错问题,创建数据库对象时设置自动回滚模式(autorollback=True)
9. 修复DataManager自动更新数据时,查询数据范围由于调用老版本函数导致的错误
10. 修复RQData下载获取的历史数据浮点数精度问题
11. 修复BarGenerator在合成N小时K线时,收盘价、成交量、持仓量字段缺失的问题
12. 修复K线图表底层组件ChartWidget当绘制数据较少时,坐标轴时间点显示重复的问题
13. 修复SpreadTrading模块生成的价差盘口数据的时区信息缺失问题
14. 修复IbGateway的现货贵金属行情数据缺失最新价和时间戳的问题
15. 修复BarGenerator在合成小时级别K线时,成交量字段部分缺失的问题
16. 修复vnpy.rpc模块启用非对称加密后无法正常退出的问题
17. 修复BinancesGateway持仓更新时由于包含多条方向记录导致的持仓错误问题

## 调整
1. 修改vnpy.chart下ChartItem为按需绘制,大幅缩短图表第一次显示出来的耗时
2. 修改IbGateway的历史数据查询功能,包括所有可用时间(即欧美晚上的电子交易时段)
3. 修改DataRecorder的数据入库为定时批量写入,提高录制大量合约数据时的写入性能

## 新增
1. 新增IbGateway连接断开后的自动重连功能(每10秒检查)
2. 新增双边报价业务相关的底层数据结构和功能函数
3. 新增开平转换器OffsetConverter的净仓交易模式
4. 新增CtaStrategy模块策略模板的委托时的净仓交易可选参数
5. 新增CtaStrategy模块回测引擎中的全年交易日可选参数
6. 新增ChartWizard模块对于价差行情图表的显示支持
7. 新增MarketRadar模块的雷达信号条件提醒功能

# 2.1.9.1版本

## 修复
1. 修复RestClient中,因为pyopenssl.extract_from_urllib3引起的兼容性问题

## 调整
1. 调整OptionMaster模块中,期权链数据结构搜索平值行权价的算法,不再依赖标的物合约

## 新增
1. 新增OptionMaster模块使用合成期货作为定价标的合约的功能


# 2.1.9版本

## 修复
1. 修复BarGenerator的小时线合成时,出同一个小时的K线重复推送两次的问题
1. 修复BarGenerator的小时线合成时,出现同一个小时的K线重复推送两次的问题
2. 修复遗传算法优化时,因为lru_cache缓存导致的新一轮优化结果不变的问题
3. 修复RestClient发起请求时,由于requests库底层使用OpenSSL导致的WinError 10054 WSAECONNRESET的问题
4. 修复okexf、okexs、okexo三个接口收取TICK行情时,盘口数据解析错误的问题
5. 修复程序中频繁捕捉到异常时,异常捕捉对话框反复执行导致卡死的问题
6. 修复币安的现货和合约接口请求抛出SSLError异常时,未捕捉导致程序卡死的问题
7. 修复活动委托监控组件ActiveOrderMonitor,保存CSV时会将所有委托数据一起保存的问题
8. 修复XtpGateway重复发起登录操作时,出现的系统崩溃问题
9. 修复XtpGateway的股票市价委托类型映射错误问题
10. 修复DeribitGateway中对于Stop Market类型委托的支持问题,同时过滤掉Stop Limit类型委托
11. 修复BinancesGateway中,由于成交数量浮点数精度问题导致的上层应用模块(CtaStrategy)数据计算错误
12. 修复BinancesGateway中,由于合约持仓类型(应该是净仓,而非多空仓)错误,导致的上层应用模块(SpreadTrading)数据计算错误
13. 修复HuobisGateway中,初始化查询活动委托时,由于请求过快导致的限流错误

## 调整
1. 对XTP接口的行情价格数据基于合约最小价格跳动进行取整,资金保留2位小数
2. BaseMonitor保存CSV文件时,表头改为图形界面显示的中文(之前是数据的字段名英文)
3. 增加华鑫奇点接口对于FENS服务器连接和资金账户登录的支持,之前只支持前置机连接和用户代码登录
3. 初始化TWAP算法时,对每轮委托数量取整到合约最小交易数量
4. 将原vnpy.trader.database中的数据库客户端拆分到独立的vnpy.database模块下
5. 对SQLite/MySQL/PostgreSQL/MongoDB/InfluxDB客户端进行代码重构优化,增加K线数据整体情况BarOverview查询功能

## 新增
1. 新增BaseMonitor数据监控UI组件(以及其子类),自动保存列宽的功能
1. 新增BaseMonitor数据监控UI组件(以及其子类),自动保存列宽的功能
2. 增加华鑫奇点ToraGateway对于FENS服务器连接和资金账户登录的支持,之前只支持前置机连接和用户代码登录
3. 增加火币永续合约HuobisGateway对于USDT本位合约的支持
4. 增加InfluxDB数据库客户端vnpy.database.influx对于Tick数据储存和加载的支持
20 changes: 18 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
</p>

<p align="center">
<img src ="https://img.shields.io/badge/version-2.1.8-blueviolet.svg"/>
<img src ="https://img.shields.io/badge/version-2.2.0-blueviolet.svg"/>
<img src ="https://img.shields.io/badge/platform-windows|linux|macos-yellow.svg"/>
<img src ="https://img.shields.io/badge/python-3.7-blue.svg" />
<img src ="https://img.shields.io/github/workflow/status/vnpy/vnpy/Python%20application/master"/>
Expand Down Expand Up @@ -164,6 +164,22 @@ vn.py是一套基于Python的开源量化交易系统开发框架,于2015年1

5. 简洁易用的事件驱动引擎(vnpy.event),作为事件驱动型交易程序的核心。

6. 对接各类数据库的标准化管理客户端(vnpy.database):

* SQL类

* SQLite(sqlite):轻量级单文件数据库,无需安装和配置数据服务程序,vn.py的默认选项,适合入门新手用户

* MySQL(mysql):世界最流行的开源关系型数据库,文档资料极为丰富,且可替换其他高NewSQL兼容实现(如TiDB)

* PostgreSQL(postgresql):特性更为丰富的开源关系型数据库,支持通过扩展插件来新增功能,只推荐熟手使用

* NoSQL类

* MongoDB(mongodb):基于分布式文件储存(bson格式)的非关系型数据库,内置的热数据内存缓存提供更快读写速度

* InfluxDB(influxdb):针对时序数据专门设计的非关系型数据库,列式数据储存提供极高的读写效率和外围分析应用

6. 跨进程通讯标准组件(vnpy.rpc),用于实现分布式部署的复杂交易系统。

7. Python高性能K线图表(vnpy.chart),支持大数据量图表显示以及实时数据更新功能。
Expand All @@ -174,7 +190,7 @@ vn.py是一套基于Python的开源量化交易系统开发框架,于2015年1

## 环境准备

* 推荐使用vn.py团队为量化交易专门打造的Python发行版[VNStudio-2.1.8](https://download.vnpy.com/vnstudio-2.1.8.exe),内置了最新版的vn.py框架以及VN Station量化管理平台,无需手动安装
* 推荐使用vn.py团队为量化交易专门打造的Python发行版[VNStudio-2.2.0](https://download.vnpy.com/vnstudio-2.2.0.exe),内置了最新版的vn.py框架以及VN Station量化管理平台,无需手动安装
* 支持的系统版本:Windows 7以上/Windows Server 2008以上/Ubuntu 18.04 LTS
* 支持的Python版本:Python 3.7 64位(**注意必须是Python 3.7 64位版本**

Expand Down
File renamed without changes.
74 changes: 73 additions & 1 deletion docs/chart_wizard.md
Original file line number Diff line number Diff line change
@@ -1 +1,73 @@
# K线图表模块
# ChartWizard - 实时K线图表模块


## 功能简介

ChartWizard是用于**实时K线图表展示**的功能模块,用户可以通过其UI界面查看实时和历史K线行情,目前只支持显示1分钟级别的K线数据,实时K线(最新的一根K线)为Tick级刷新。


## 加载启动

### VN Station加载

启动登录VN Station后,点击【VN Trader Pro】按钮,在配置对话框中的【上层应用】栏勾选【ChartWizard】。

### 脚本加载

在启动脚本中添加如下代码:

```
# 写在顶部
from vnpy.app.chart_wizard import ChartWizardApp
# 写在创建main_engine对象后
main_engine.add_app(ChartWizardApp)
```


## 启动模块

在启动模块之前,请先连接交易接口(连接方法详见基本使用篇的连接接口部分)。看到VN Trader主界面【日志】栏输出“合约信息查询成功”之后再启动模块,如下图所示:

![](https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/cta_strategy/1.png)

请注意,IB接口因为登录时无法自动获取所有的合约信息,只有在用户手动订阅行情时才能获取。因此需要在主界面上先行手动订阅合约行情,再启动模块。

由于vn.py本身并不提供任何数据服务,对于K线图表绘制过程中用到的历史数据,国内期货历史数据由[RQData](https://www.ricequant.com/welcome/purchase?utm_source=vnpy)数据服务提供,用户需要准备和配置RQData账号(配置方法详见基本使用篇的全局配置部分)。数字货币历史数据则直接由交易所接口提供,用户无需进行额外配置。

成功连接交易接口后,在菜单栏中点击【功能】-> 【K线图表】,或者点击左侧按钮栏的图标:

![](https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/chart_wizard/1.png)

即可进入实时K线图表模块的UI界面,如下图所示:

![](https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/chart_wizard/2.png)


## 新建图表

打开图表窗口后,在【本地代码】编辑框中输入合约代码(注意本地代码由代码前缀和交易所后缀两部分组成,如rb2112.SHFE)。

点击【新建图表】的按钮,即可创建对应合约的K线图表,如下图所示:

![](https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/chart_wizard/3.png)

用户可以新建多个合约的K线图表,通过切换窗口来实现快速切换:

![](https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/chart_wizard/4.png)


## 查看图表

每个合约的图表分为上下两块子图区域:

- 上面的子图为行情K线;
- 下面的子图为成交量数据。

图表上的十字光标可用于定位和显示特定时间点的具体数据,在X轴和Y轴上均会对应数据点的标签,同时在左上角也会显示此根K线的OHLCV等信息。

其他快捷操作:

- 可以通过鼠标左键的拖拽,左右平移K线图显示的时间范围;
- 可以通过鼠标滚轮的滚动,放大和缩小K线图显示的时间范围。

Loading

0 comments on commit fc772ca

Please sign in to comment.