diff --git a/docs/install.md b/docs/install.md index 12dc328a..82b525c9 100644 --- a/docs/install.md +++ b/docs/install.md @@ -15,7 +15,7 @@ VNStudio是vn.py团队自行打包的一键安装版本,整合了: - 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默认安装路径为C:\vnstudio; +- VNStudio默认json配置文件和数据库路径为C:\Users\Administrator\.vntrader - VN Station量化工作站运行目录为C:\vnstudio\Scripts\vnstation.exe; - vnpy运行目录在C:\vnstudio\Lib\site-packages\vnpy(进入该目录后,用户可以修改vnpy的相关功能) +   #### 3.登陆VNStation @@ -44,7 +46,7 @@ VNStudio是vn.py团队自行打包的一键安装版本,整合了: 窗口下方有5个选项: - VN Trade Lite:直接运行VN Trader (只有CTP接口) -- VN Trader Pro:先选择保存相关临时文件的目录,再运行VN Trader (接口任选) +- VN Trader Pro:先选择保存相关临时文件的目录,再运行VN Trader (接口和上层应用模块任选) - Jupyter Notebook:先选择保存相关临时文件的目录,再运行Jupyter Notebook - 提问求助:提出相关问题,管理员会每天定时回复 - 后台更新:一键更新VN Station @@ -73,7 +75,9 @@ VNStudio是vn.py团队自行打包的一键安装版本,整合了: #### 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来下载压缩版本到本地电脑。   diff --git a/docs/quickstart.md b/docs/quickstart.md index 8d6def24..20c3b007 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -21,40 +21,18 @@ python run.py   ## 连接接口 -### simnow仿真 -### simnow +### SimNow仿真 + 以SinNow仿真交易账号登陆CTP接口为例:点击菜单栏的“系统”->“连接CTP”后,弹出如上图所示CTP接口的配置对话框,输入以下内容后即可登录: - 用户名username:111111 (6位纯数字账号) - 密码password:1111111 (需要修改一次密码用于盘后测试) - 经纪商编号brokerid:9999 (SimNow默认经纪商编号) -- 交易服务器地址td_address:180.168.146.187:10030 (盘后测试) -- 行情服务器地址md_address:180.168.146.187:10031 (盘后测试) -- auth_code和product_info主要用于19年中的CTP接入验证,目前留空即可 -注意:若使用期货实盘账户,需要问清楚其brokerid、auth_code和product_info; 并且仿真交易需要另外申请开通。 +- 交易服务器地址td_address:218.202.237.33 :10102 (盘中测试) +- 行情服务器地址md_address:218.202.237.33 :10112 (盘中测试) +- 授权码auth_code:0000000000000000(16个0) +- 名称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") @@ -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") +  + +## 全局配置 + +在菜单栏中点击“配置”,可以进行全局配置:如配置GUI界面字体的大小,类型,数据库种类,RQData的账户密码(用于初始化RQData客户端,下载历史数据,或者盘起载入数据来初始化策略),设置email来发送信息。 + +其email的设置如下: +email.server: SMTP邮件服务器地址 +email.port: SMTP邮件服务器端口号 +email.username: 邮箱用户名 +email.password: 邮箱密码 +email.sender: 发送者邮箱 +email.receiver: 接收者邮箱 + diff --git a/docs/rpc_service.md b/docs/rpc_service.md index 7365ebc6..da218ede 100644 --- a/docs/rpc_service.md +++ b/docs/rpc_service.md @@ -2,32 +2,49 @@ 由于全局锁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服务器 ### 加载模块 +在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客户端 ### 加载接口 - +在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目录下。 ### 服务器进程 - -GUI模式 - -无界面模式 +样例提供了run_server.py文件,里面定义了main_ui和main_terminal函数,分别用于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接口。