Jupyter模式
加载启动
Jupyter模式是基于脚本引擎(ScriptEngine)驱动的。首先打开Jupyter notebook后,然后加载组件、初始化脚本引擎。其中:
- from vnpy.app.script_trader import init_cli_trading
- from vnpy.gateway.ctp import CtpGateway
- engine = init_cli_trading([CtpGateway])
其中:
脚本引擎可以支持同时连接多个接口,如CTP、BITMEX、OES等;
init_cli_trading(gateways: Sequence[BaseGateway])可以将多个接口类,以列表的形式传递给init_cli_trading;
init_cli_trading可视为vnpy封好的初始化启动函数,对主引擎、脚本引擎等各种对象进行了封装。
连接接口
不同接口需要不同的配置参数,SimNow的配置如下:
- setting = {
- "用户名": "xxxx",
- "密码": "xxxx",
- "经纪商代码": "9999",
- "交易服务器":"tcp://180.168.146.187:10101",
- "行情服务器":"tcp://180.168.146.187:10111",
- "产品名称":"simnow_xxx_test",
- "授权编码":"0000000000000000",
- "产品信息": ""
- }
- engine.connect_gateway(setting,"CTP")
setting配置如下图所示,其他接口配置可以参考vnpy/gateway目录下的接口类的default_setting来填写。
查询数据
这里介绍一下连接上交易接口并成功订阅数据后的数据存储:
底层接口不停向主引擎推送新的数据;
主引擎里维护着一个ticks字典用于缓存不同标的的最新tick数据(仅能缓存最新的);
use_df的作用是转换成DataFrame格式,便于数据分析。
订阅行情
subscribe()函数用于订阅行情信息,若需要订阅一篮子合约的行情,可以使用列表格式。
- engine.subscribe(vt_symbols = ["rb1909.SHFE","rb1910.SHFE"])