Jupyter模式

加载启动

Jupyter模式是基于脚本引擎(ScriptEngine)驱动的。首先打开Jupyter notebook后,然后加载组件、初始化脚本引擎。其中:

  1. from vnpy.app.script_trader import init_cli_trading
  2. from vnpy.gateway.ctp import CtpGateway
  3. engine = init_cli_trading([CtpGateway])

其中:

  • 脚本引擎可以支持同时连接多个接口,如CTP、BITMEX、OES等;

  • init_cli_trading(gateways: Sequence[BaseGateway])可以将多个接口类,以列表的形式传递给init_cli_trading;

  • init_cli_trading可视为vnpy封好的初始化启动函数,对主引擎、脚本引擎等各种对象进行了封装。

连接接口

不同接口需要不同的配置参数,SimNow的配置如下:

  1. setting = {
  2. "用户名": "xxxx",
  3. "密码": "xxxx",
  4. "经纪商代码": "9999",
  5. "交易服务器":"tcp://180.168.146.187:10101",
  6. "行情服务器":"tcp://180.168.146.187:10111",
  7. "产品名称":"simnow_xxx_test",
  8. "授权编码":"0000000000000000",
  9. "产品信息": ""
  10. }
  11. engine.connect_gateway(setting,"CTP")

setting配置如下图所示,其他接口配置可以参考vnpy/gateway目录下的接口类的default_setting来填写。

https://static.vnpy.com/upload/temp/82dd7cfd-6a98-4908-a770-582cfb7e69bc.jpg

查询数据

这里介绍一下连接上交易接口并成功订阅数据后的数据存储:

  • 底层接口不停向主引擎推送新的数据;

  • 主引擎里维护着一个ticks字典用于缓存不同标的的最新tick数据(仅能缓存最新的);

  • use_df的作用是转换成DataFrame格式,便于数据分析。

订阅行情

subscribe()函数用于订阅行情信息,若需要订阅一篮子合约的行情,可以使用列表格式。

  1. engine.subscribe(vt_symbols = ["rb1909.SHFE","rb1910.SHFE"])