Merge branch 'dev' of https://github.com/vnpy/vnpy into dev

This commit is contained in:
vn.py 2019-07-31 16:52:51 +08:00
commit 1ab37fd858
3 changed files with 56 additions and 43 deletions

View File

@ -15,7 +15,7 @@ VNStudio是vn.py团队自行打包的一键安装版本整合了
- vn.py框架和其他相关库 - vn.py框架和其他相关库
- VN Station量化工作站vn.py框架的图形化管理工具 - VN Station量化工作站vn.py框架的图形化管理工具
下载地址:[vnstudio-2.0.3.exe](https://download.vnpy.com/vnstudio-2.0.3.exe) 下载地址:[vnstudio-2.0.6.exe](https://download.vnpy.com/vnstudio-2.0.6.exe)
   
@ -25,9 +25,11 @@ VNStudio是vn.py团队自行打包的一键安装版本整合了
一路点击“下一步”即可完成VNStudio安装安装完成后可以查看相关运行目录 一路点击“下一步”即可完成VNStudio安装安装完成后可以查看相关运行目录
- VNStudio默认安装路径为C:\vnstudio - VNStudio默认安装路径为C:\vnstudio
- VNStudio默认json配置文件和数据库路径为C:\Users\Administrator\.vntrader
- VN Station量化工作站运行目录为C:\vnstudio\Scripts\vnstation.exe - VN Station量化工作站运行目录为C:\vnstudio\Scripts\vnstation.exe
- vnpy运行目录在C:\vnstudio\Lib\site-packages\vnpy进入该目录后用户可以修改vnpy的相关功能 - vnpy运行目录在C:\vnstudio\Lib\site-packages\vnpy进入该目录后用户可以修改vnpy的相关功能
   
#### 3.登陆VNStation #### 3.登陆VNStation
@ -44,7 +46,7 @@ VNStudio是vn.py团队自行打包的一键安装版本整合了
窗口下方有5个选项 窗口下方有5个选项
- VN Trade Lite直接运行VN Trader (只有CTP接口) - VN Trade Lite直接运行VN Trader (只有CTP接口)
- VN Trader Pro先选择保存相关临时文件的目录再运行VN Trader (接口任选) - VN Trader Pro先选择保存相关临时文件的目录再运行VN Trader (接口和上层应用模块任选)
- Jupyter Notebook先选择保存相关临时文件的目录再运行Jupyter Notebook - Jupyter Notebook先选择保存相关临时文件的目录再运行Jupyter Notebook
- 提问求助:提出相关问题,管理员会每天定时回复 - 提问求助:提出相关问题,管理员会每天定时回复
- 后台更新一键更新VN Station - 后台更新一键更新VN Station
@ -73,7 +75,9 @@ VNStudio是vn.py团队自行打包的一键安装版本整合了
#### 2.下载并解压vnpy #### 2.下载并解压vnpy
Windows用户选择zip压缩版本。下载地址如下[vnpy releases](https://github.com/vnpy/vnpy/releases) 进入vnpy的github主页[vnpy](https://github.com/vnpy/vnpy)。
在左方的Branch选项master对应是最新的稳定版本dev对应的是最新测试版本
然后在主页右方绿色的clone or download选项选择Download ZIP来下载压缩版本到本地电脑。
   

View File

@ -21,40 +21,18 @@ python run.py
   
## 连接接口 ## 连接接口
### simnow仿真 ### SimNow仿真
### simnow
以SinNow仿真交易账号登陆CTP接口为例点击菜单栏的“系统”->“连接CTP”后弹出如上图所示CTP接口的配置对话框输入以下内容后即可登录 以SinNow仿真交易账号登陆CTP接口为例点击菜单栏的“系统”->“连接CTP”后弹出如上图所示CTP接口的配置对话框输入以下内容后即可登录
- 用户名username111111 6位纯数字账号 - 用户名username111111 6位纯数字账号
- 密码password1111111 (需要修改一次密码用于盘后测试) - 密码password1111111 (需要修改一次密码用于盘后测试)
- 经纪商编号brokerid9999 SimNow默认经纪商编号 - 经纪商编号brokerid9999 SimNow默认经纪商编号
- 交易服务器地址td_address180.168.146.187:10030 (盘后测试) - 交易服务器地址td_address218.202.237.33 :10102 (盘中测试)
- 行情服务器地址md_address180.168.146.187:10031 (盘后测试) - 行情服务器地址md_address218.202.237.33 :10112 (盘中测试)
- auth_code和product_info主要用于19年中的CTP接入验证目前留空即可 - 授权码auth_code000000000000000016个0
注意若使用期货实盘账户需要问清楚其brokerid、auth_code和product_info; 并且仿真交易需要另外申请开通。 - 名称app_idsimnow_client_test
连接成功以后,日志组件会立刻输出陆成功相关信息,同时用户也可以看到账号信息,持仓信息,合约查询等相关信息。 连接成功以后,日志组件会立刻输出陆成功相关信息,同时用户也可以看到账号信息,持仓信息,合约查询等相关信息。
### 穿透式接口连接(新版)
#### 仿真用户
以中信期货为例如果最后不上实盘以在生产环境下仿真为目的则不用提交任何表格在官网申请注册仿真账号打开官网公告找到相应接入参数。打开vnstation后点击菜单栏的“系统”->“连接CTP”后弹出如上图所示CTP接口的配置对话框输入以下内容后即可登录appid和authcode在仿真环境下是全统一的
- 用户名username[申请的仿真账号]
- 密码password[仿真密码] #最好修改一次
- 经纪商编号brokerid66666 #中信期货的
- 交易服务器地址td_addresstcp://ctpfz1-front1.citicsf.com:51305
- 行情服务器地址md_addresstcp://ctpfz1-front1.citicsf.com:51313
- appid(产品名称):client_xxx_1.0.1 #xxx部分非自定义必须写xxx
- authcode授权码0D6V7N1CIBWUT1CT
#### 实盘用户
### 中信期货(穿透式最新教程)
####仿真
以中信为例如果完全是以仿真为目的则不用向期货公司提交任何穿透式申请表直接在期货公司官网注册一个仿真账号使用期货公司提供的仿真环境即可在连接时必须import的是ctp6.3.15版本不可以是ctptest6.3.13版本)
- 用户名username[你的账户]
- 密码password[你的密码] (最好修改一下密码)
- 经纪商编号brokerid66666 (中信的)
- 交易服务器地址td_addresstcp://ctpfz1-front1.citicsf.com:51305
- 行情服务器地址md_addresstcp://ctpfz1-front1.citicsf.com:51313
- auth_code(授权码): 0D6V7N1CIBWUT1CT
- appid: client_xxx_1.0.1(注意必须写xxx仿真不允许自定义)
   
@ -63,7 +41,7 @@ python run.py
此时行情组件会显示最新行情信息;交易组件会显示合约名称,并且在下方显示深度行情报价:如最新价、买一价、卖一价。(数字货币品种可以显示十档行情) 此时行情组件会显示最新行情信息;交易组件会显示合约名称,并且在下方显示深度行情报价:如最新价、买一价、卖一价。(数字货币品种可以显示十档行情)
注:订阅行情填写的代码格式可以由菜单栏的”帮助“->“查询合约”里查到(需先连接) :订阅行情填写的代码格式可以由菜单栏的”帮助“->“查询合约”里查到
![](https://vnpy-community.oss-cn-shanghai.aliyuncs.com/forum_experience/yazhang/quick_start/subcribe_contract.png "enter image title here") ![](https://vnpy-community.oss-cn-shanghai.aliyuncs.com/forum_experience/yazhang/quick_start/subcribe_contract.png "enter image title here")
@ -162,3 +140,17 @@ vn.py官方提供了开箱即用的量化交易应用模块在菜单栏中点
![](https://vnpy-community.oss-cn-shanghai.aliyuncs.com/forum_experience/yazhang/quick_start/application.png "enter image title here") ![](https://vnpy-community.oss-cn-shanghai.aliyuncs.com/forum_experience/yazhang/quick_start/application.png "enter image title here")
 
## 全局配置
在菜单栏中点击“配置”可以进行全局配置如配置GUI界面字体的大小类型数据库种类RQData的账户密码用于初始化RQData客户端下载历史数据或者盘起载入数据来初始化策略设置email来发送信息。
其email的设置如下
email.server: SMTP邮件服务器地址
email.port: SMTP邮件服务器端口号
email.username: 邮箱用户名
email.password: 邮箱密码
email.sender: 发送者邮箱
email.receiver: 接收者邮箱

View File

@ -2,32 +2,49 @@
由于全局锁GIL的存在单进程的Python程序只能利用CPU单核的算力为了突破这一限制解决方案就是多进程分布式的程序架构。但每个进程之间的数据在操作系统内默认是独立隔离的无法直接访问。RPC全称Remote-Procedure-Call中文“远程过程调用”是最常用的跨进程通讯方式之一。 由于全局锁GIL的存在单进程的Python程序只能利用CPU单核的算力为了突破这一限制解决方案就是多进程分布式的程序架构。但每个进程之间的数据在操作系统内默认是独立隔离的无法直接访问。RPC全称Remote-Procedure-Call中文“远程过程调用”是最常用的跨进程通讯方式之一。
以下是单进程架构的一些不足:
![](http://r.photo.store.qq.com/psb?/V12TMAOq2xN6BZ/xpl9dps5n5fwCaKN6VpQGUDdX16hW3JOsGZl9oYXoKs!/r/dFQBAAAAAAAA)
以下是RPC服务框架图示
![](http://r.photo.store.qq.com/psb?/V12TMAOq2xN6BZ/8Evno*yE7G81DGPzdx.ba1E.El0JhWpMjL3i*G.oxPI!/r/dMMAAAAAAAAA)
由一个特定的vnpy进程与外部交易接口例如CTP等建立连接然后充当Server的角色在本地物理机或者局域网内部进行事件的推送推送给其他独立的vnpy客户端进程。
## RPC服务器 ## RPC服务器
### 加载模块 ### 加载模块
在vnpy/app/目录下有rpc_service文件夹里面定义了Rpc引擎对象用于将一个特定的vnpy进程包装成RPC服务器从而进行推送服务端所有事件和处理客户端请求。在加载这个模块时有两种操作方式
- 使用vnstation登录vnpy的用户在勾选加载模块时将RpcService选中即可。**注**:不要忘记加载所需的外部交易接口。
![](http://r.photo.store.qq.com/psb?/V12TMAOq2xN6BZ/6tHOoBNChOpLxiHylZpHCzVnAyFhZWcdXXHgECBCoJs!/r/dIMAAAAAAAAA)
- 使用run.py启动Vn Trader的用户在导入模块时额外写```from vnpy.app.rpc_service import RpcServiceApp```以及在main函数里加载该模块即可```main_engine.add_app(RpcServiceApp)```。**注**:不要忘记加载所需的外部交易接口如```from vnpy.gateway.ctp import CtpGateway```以及在main函数里写```main_engine.add_gateway(CtpGateway)```。
### 启动运行 ### 启动运行
按上述步骤成功启动Vn Trader后首先对用户所需的外部交易接口如CTP等进行连接然后点击菜单栏“功能”->“Rpc服务”在如下跳出的窗口中点击“启动”即可运行RPC服务。
**注**RPC服务不仅支持同一物理机多进程通讯还支持局域网内部通讯若在同一台机器上运行无需修改任何参数。
![](http://r.photo.store.qq.com/psb?/V12TMAOq2xN6BZ/wWD3UMN*Zhixv.*WL.SvvbCMq6x9mOVlSpMnDeOw0yY!/r/dL8AAAAAAAAA)
## RPC客户端 ## RPC客户端
### 加载接口 ### 加载接口
在vnpy/gateway文件夹下定义了rpc的gateway模块有两种不同的加载方式
- 使用vnstation登录vnpy的用户在勾选底层接口时将RPC服务选中即可。
![](http://r.photo.store.qq.com/psb?/V12TMAOq2xN6BZ/kkJd*IxySpeDuBdoKc1e2Zu0VEjonvRa9g0n.Do8sOE!/r/dFIBAAAAAAAA)
- 使用run.py启动Vn Trader的用户在导入模块时额外写```from vnpy.gateway.rpc import RpcGateway```以及在main函数加载一下即可```main_engine.add_gateway(RpcGateway)```。
### 连接使用 ### 连接使用
从客户端的视角看RpcGateway就是一个和CtpGateway等一样的Gateway只是不需要再额外输入账户等信息因为统一在服务端已经完成只需要和服务器端进行连接即可。
在vntrader打开后点击菜单栏”系统“->”连接RPC“在弹出的窗口中点击”连接“即可。
![](http://r.photo.store.qq.com/psb?/V12TMAOq2xN6BZ/AGWOzBaVs9yGL2ATHB1Ij0w4oSRs*BQtMAJHd1byJHQ!/r/dL8AAAAAAAAA)
## 参考样例 ## 参考样例
位于examples/server_client目录下 位于examples/server_client目录下
### 服务器进程 ### 服务器进程
样例提供了run_server.py文件里面定义了main_ui和main_terminal函数分别用于GUI模式和无界面模式启动可以根据需要修改这两个函数然后选择运行某一个函数即可。
GUI模式 GUI模式GUI模式启动和上面提到的run.py启动完全一致只是run_server.py已经默认加载了RPC模块用户只需修改加载的外部交易接口即可。
 
无界面模式 无界面模式需要提前配置好连接CTP等交易接口所需的个人信息如图
![](http://r.photo.store.qq.com/psb?/V12TMAOq2xN6BZ/jkXINE1M9mI6XQUk2JSNwXF1FAA6crfvMLhSkmjUdGs!/r/dFYBAAAAAAAA)
### 客户端进程 ### 客户端进程
样例提供了run_client.py和上述提到的run.py启动Vn Trader方式完全一致只是这里已经默认加载了Rpc接口。