Merge branch 'dev' of https://github.com/vnpy/vnpy into dev
This commit is contained in:
commit
1ab37fd858
@ -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来下载压缩版本到本地电脑。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,40 +21,18 @@ python run.py
|
|||||||
|
|
||||||
|
|
||||||
## 连接接口
|
## 连接接口
|
||||||
### simnow仿真
|
### SimNow仿真
|
||||||
### simnow
|
|
||||||
以SinNow仿真交易账号登陆CTP接口为例:点击菜单栏的“系统”->“连接CTP”后,弹出如上图所示CTP接口的配置对话框,输入以下内容后即可登录:
|
以SinNow仿真交易账号登陆CTP接口为例:点击菜单栏的“系统”->“连接CTP”后,弹出如上图所示CTP接口的配置对话框,输入以下内容后即可登录:
|
||||||
- 用户名username:111111 (6位纯数字账号)
|
- 用户名username:111111 (6位纯数字账号)
|
||||||
- 密码password:1111111 (需要修改一次密码用于盘后测试)
|
- 密码password:1111111 (需要修改一次密码用于盘后测试)
|
||||||
- 经纪商编号brokerid:9999 (SimNow默认经纪商编号)
|
- 经纪商编号brokerid:9999 (SimNow默认经纪商编号)
|
||||||
- 交易服务器地址td_address:180.168.146.187:10030 (盘后测试)
|
- 交易服务器地址td_address:218.202.237.33 :10102 (盘中测试)
|
||||||
- 行情服务器地址md_address:180.168.146.187:10031 (盘后测试)
|
- 行情服务器地址md_address:218.202.237.33 :10112 (盘中测试)
|
||||||
- auth_code和product_info主要用于19年中的CTP接入验证,目前留空即可
|
- 授权码auth_code:0000000000000000(16个0)
|
||||||
注意:若使用期货实盘账户,需要问清楚其brokerid、auth_code和product_info; 并且仿真交易需要另外申请开通。
|
- 名称app_id:simnow_client_test
|
||||||
|
|
||||||
连接成功以后,日志组件会立刻输出陆成功相关信息,同时用户也可以看到账号信息,持仓信息,合约查询等相关信息。
|
连接成功以后,日志组件会立刻输出陆成功相关信息,同时用户也可以看到账号信息,持仓信息,合约查询等相关信息。
|
||||||
### 穿透式接口连接(新版)
|
|
||||||
#### 仿真用户
|
|
||||||
以中信期货为例:如果最后不上实盘,以在生产环境下仿真为目的,则不用提交任何表格,在官网申请注册仿真账号,打开官网公告找到相应接入参数。打开vnstation后,点击菜单栏的“系统”->“连接CTP”后,弹出如上图所示CTP接口的配置对话框,输入以下内容后即可登录(appid和authcode在仿真环境下是全统一的):
|
|
||||||
- 用户名username:[申请的仿真账号]
|
|
||||||
- 密码password:[仿真密码] #最好修改一次
|
|
||||||
- 经纪商编号brokerid:66666 #中信期货的
|
|
||||||
- 交易服务器地址td_address:tcp://ctpfz1-front1.citicsf.com:51305
|
|
||||||
- 行情服务器地址md_address:tcp://ctpfz1-front1.citicsf.com:51313
|
|
||||||
- appid(产品名称):client_xxx_1.0.1 #xxx部分非自定义,必须写xxx
|
|
||||||
- authcode(授权码):0D6V7N1CIBWUT1CT
|
|
||||||
#### 实盘用户
|
|
||||||
|
|
||||||
### 中信期货(穿透式最新教程)
|
|
||||||
####仿真
|
|
||||||
以中信为例,如果完全是以仿真为目的,则不用向期货公司提交任何穿透式申请表,直接在期货公司官网注册一个仿真账号,使用期货公司提供的仿真环境即可,在连接时,必须import的是ctp(6.3.15版本),不可以是ctptest(6.3.13版本)
|
|
||||||
- 用户名username:[你的账户]
|
|
||||||
- 密码password:[你的密码] (最好修改一下密码)
|
|
||||||
- 经纪商编号brokerid:66666 (中信的)
|
|
||||||
- 交易服务器地址td_address:tcp://ctpfz1-front1.citicsf.com:51305
|
|
||||||
- 行情服务器地址md_address:tcp://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: 接收者邮箱
|
||||||
|
|
||||||
|
@ -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接口。
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user