diff --git a/docs/gateway.md b/docs/gateway.md index 4b184b12..90a53e22 100644 --- a/docs/gateway.md +++ b/docs/gateway.md @@ -74,6 +74,7 @@ def main(): | 接口 | 类型 | | -------- | :----------------------------------------: | | CTP | 期货 | +| MINI | 期货 | | FEMAS | 期货 | | XTP | 国内股票、指数、基金、债券、期权、融资融券 | | OES | 国内股票 | @@ -85,12 +86,13 @@ def main(): | ALPACA | 美股 | | BITFINEX | 数字货币 | | BITMEX | 数字货币 | +| BINANCE | 数字货币 | | OKEX | 数字货币 | | OKEXF | 数字货币 | | HUOBI | 数字货币 | | HBDM | 数字货币 | | ONETOKEN | 数字货币 | -| RPC | RPC服务 | +| RPC | RPC服务 | @@ -130,6 +132,37 @@ main_engine.add_gateway(CtpGateway) - 实盘账号:在期货公司开户,通过联系客户经理可以开通。用户名为纯数字,经纪商编号也是4位纯数字。(每个期货公司的经纪商编号都不同)另外,实盘账号也可以开通仿真交易功能,同样需要联系客户经理。 +  + +### MINI + +#### 如何加载 + +先从gateway上调用MiniGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.mini import MiniGateway +main_engine.add_gateway(MiniGateway) +``` + +  + +#### 相关字段 + +- 用户名:username +- 密码:password: +- 经纪商编号:brokerid +- 交易服务器地址:td_address +- 行情服务器地址:md_address +- 产品名称:product_info +- 授权编码:auth_code + +  + +#### 获取账号 + +在期货公司开户,通过联系客户经理可以开通。用户名为纯数字,经纪商编号也是4位纯数字。(每个期货公司的经纪商编号都不同)另外,实盘账号也可以开通仿真交易功能,同样需要联系客户经理。 + +   ### 飞马(FEMAS) @@ -248,11 +281,27 @@ main_engine.add_gateway(OesGateway) #### 如何加载 +先从gateway上调用ToraGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.tota import ToraGateway +main_engine.add_gateway(OesGateway) +``` + +  + #### 相关字段 +- 账号: username +- 密码: password +- 交易服务器: td_address +- 行情服务器: md_address + +  + #### 获取账号 -#### 其他特点 +测试账号请联系华鑫证券申请 +   @@ -400,11 +449,21 @@ main_engine.add_gateway(TigerGateway) ### ALPACA #### 如何加载 +先从gateway上调用AlpacaGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.alpaca import AlpacaGateway +main_engine.add_gateway(AlpacaGateway) +``` + +  #### 相关字段 - +- KEY ID: key +- Secret Key: secret +- 会话数: 10 +- 服务器:["REAL", "PAPER"] #### 获取账号 - +在OKEX官网开户并且入金后可以获得API接入权限。 #### 其他特点   @@ -655,6 +714,38 @@ main_engine.add_gateway(OnetokenGateway) +  + +  + +### BINANCE + +#### 如何加载 + +先从gateway上调用BinanceGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.binance import BinanceGateway +main_engine.add_gateway(BinanceGateway) +``` + +  + + +#### 相关字段 + +- Key秘钥 +- secret +- session_number(会话数):3 +- proxy_host +- proxy_port + +  + + +#### 获取账号 + +在BINANCE官网开户并且入金后可以获得API接入权限。 +   @@ -662,10 +753,795 @@ main_engine.add_gateway(OnetokenGateway) #### 如何加载 +RPC的加载涉及到服务端和客户端 +- 服务端:运行vntrader时加载rpc_service模块 + ``` + from vnpy.app.rpc_service import RpcService + ``` + 启动vntrader后,首先连接外部交易交易如CTP,然后点击菜单栏"功能"->"RPC服务",点击"启动" +- 客户端:运行vntrader时加载RpcGateway + ``` + from vnpy.gateway.rpc import RpcGateway + ``` + 启动vntrader后,连接rpc接口即可。 #### 相关字段 +在服务端和客户端,使用默认填好的参数即可 + +#### 获取账号 +使用rpc无须额外申请账号,只需要一个外部接口账号 + +#### 其他特点 +rpc服务支持同一外部接口数据在本地多进程分发,比如在服务端连接了ctp接口,订阅了rb1910后,客户端多个进程会自动订阅来自服务端分发的订阅数据# 交易接口 + +## 如何连接 + +从gateway文件夹上引入接口程序,通过add_gateway()函数调动,最终展示到图形化操作界面VN Trader中。 + +在菜单栏中点击"系统"->"连接CTP”按钮会弹出如图账号配置窗口,输入账号、密码等相关信息即连接接口,并立刻进行查询工作: 如查询账号信息、查询持仓、查询委托信息、查询成交信息等。 + +![](https://vnpy-community.oss-cn-shanghai.aliyuncs.com/forum_experience/yazhang/gateway/login.png) + +  + +### 加载需要用的接口 + +加载接口示例在根目录"tests\trader"文件夹的run.py文件中。 +- 从gateway文件夹引入接口类文件,如from vnpy.gateway.ctp import CtpGateway; +- 创建事件引擎对象并且通过add_gateway()函数添加接口程序; +- 创建图形化对象main_window,以VN Trader操作界面展示出来。 + + +``` +from vnpy.gateway.ctp import CtpGateway + +def main(): + """""" + qapp = create_qapp() + main_engine = MainEngine(event_engine) + main_engine.add_gateway(CtpGateway) + main_window = MainWindow(main_engine, event_engine) + main_window.showMaximized() + qapp.exec() +``` + +  + + +### 配置和连接 + +打开cmd窗口,使用命令“Python run.py"即可进入VN Trader操作界面。在左上方的菜单栏中点击"系统"->"连接CTP”按钮会弹出账号配置窗口,输入账号、密码等相关信息即连接接口。 + +连接接口的流程首先是初始化账户信息,然后调用connet()函数来连接交易端口和行情端口。 +- 交易端口:查询用户相关信息(如账户资金、持仓、委托记录、成交记录)、查询可交易合约信息、挂撤单操作; +- 行情端口:接收订阅的行情信息推送、接收用户相关信息(如账户资金更新、持仓更新、委托推送、成交推送)更新的回调推送。 + + +  + + +### 修改json配置文件 + +接口配置相关保存在json文件中,放在如图C盘用户目录下的.vntrader文件夹内。 + +![](https://vnpy-community.oss-cn-shanghai.aliyuncs.com/forum_experience/yazhang/gateway/.vntrader.png) + +所以要修改接口配置文件,用户即可以在图形化界面VN Trader内修改,也可以直接在.vntrader修改json文件。 +另外将json配置文件分离于vnpy的好处在于:避免每次升级都要重新配置json文件。 + + +  + + +### 查看可交易的合约 + +先登录接口,然后在菜单栏中点击"帮助"->"查询合约”按钮会空白的“查询合约”窗口。点击“查询”按钮后才会显示查询结果,如图。 + +![](https://vnpy-community.oss-cn-shanghai.aliyuncs.com/forum_experience/yazhang/gateway/query_contract.png) + + + +  + +## 接口分类 + +| 接口 | 类型 | +| -------- | :----------------------------------------: | +| CTP | 期货 | +| MINI | 期货 | +| FEMAS | 期货 | +| XTP | 国内股票、指数、基金、债券、期权、融资融券 | +| OES | 国内股票 | +| TORA | 国内股票 | +| IB | 外盘股票、期货、期权 | +| TAP | 外盘期货、期权 | +| FUTU | 国内股票、港股、美股 | +| TIGER | 国内股票、港股、美股 | +| ALPACA | 美股 | +| BITFINEX | 数字货币 | +| BITMEX | 数字货币 | +| BINANCE | 数字货币 | +| OKEX | 数字货币 | +| OKEXF | 数字货币 | +| HUOBI | 数字货币 | +| HBDM | 数字货币 | +| ONETOKEN | 数字货币 | +| RPC | RPC服务 | + + + +  + + +## 接口详解 + +### CTP + +#### 如何加载 + +run.py文件提供了接口加载示例:先从gateway上调用ctpGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.ctp import CtpGateway +main_engine.add_gateway(CtpGateway) +``` + +  + +#### 相关字段 + +- 用户名:username +- 密码:password: +- 经纪商编号:brokerid +- 交易服务器地址:td_address +- 行情服务器地址:md_address +- 产品名称:product_info +- 授权编码:auth_code + +  #### 获取账号 +- 仿真账号:从SimNow网站上获取。只需输入手机号码和短信验证即可。(短信验证有时只能在工作日正常工作时段收到)SimNow的用户名为6位纯数字,经纪商编号为9999,并且提供2套环境用于盘中仿真交易以及盘后的测试。 + +- 实盘账号:在期货公司开户,通过联系客户经理可以开通。用户名为纯数字,经纪商编号也是4位纯数字。(每个期货公司的经纪商编号都不同)另外,实盘账号也可以开通仿真交易功能,同样需要联系客户经理。 + + +  + +### MINI + +#### 如何加载 + +先从gateway上调用MiniGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.mini import MiniGateway +main_engine.add_gateway(MiniGateway) +``` + +  + +#### 相关字段 + +- 用户名:username +- 密码:password: +- 经纪商编号:brokerid +- 交易服务器地址:td_address +- 行情服务器地址:md_address +- 产品名称:product_info +- 授权编码:auth_code + +  + +#### 获取账号 + +在期货公司开户,通过联系客户经理可以开通。用户名为纯数字,经纪商编号也是4位纯数字。(每个期货公司的经纪商编号都不同)另外,实盘账号也可以开通仿真交易功能,同样需要联系客户经理。 + + +  + +### 飞马(FEMAS) + +#### 如何加载 + +先从gateway上调用FemasGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.femas import FemasGateway +main_engine.add_gateway(FemasGateway) +``` + +  + +#### 相关字段 + +- 用户名:username +- 密码:password: +- 经纪商编号:brokerid +- 交易服务器地址:td_address +- 行情服务器地址:md_address +- 产品名称:product_info +- 授权编码:auth_code + +  + +#### 获取账号 + +在期货公司开户,通过联系客户经理可以开通。用户名为纯数字,经纪商编号也是4位纯数字。(每个期货公司的经纪商编号都不同)另外,实盘账号也可以开通仿真交易功能,同样需要联系客户经理。 + + +  + + + +### 中泰柜台(XTP) + +#### 如何加载 + +先从gateway上调用XtpGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.xtp import XtpGateway +main_engine.add_gateway(XtpGateway) +``` + +  + + +#### 相关字段 + +- 账号: +- 密码: +- 客户号": 1 +- 行情地址: +- 行情端口": 0 +- 交易地址: +- 交易端口": 0 +- 行情协议: ["TCP", "UDP"] +- 授权码: + +  + + +#### 获取账号 + +测试账号请联系中泰证券申请。 + #### 其他特点 -  \ No newline at end of file +XTP是首家提供融资融券的极速柜台。 + +  + + +### 宽睿柜台(OES) + +#### 如何加载 + +先从gateway上调用OesGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.oes import OesGateway +main_engine.add_gateway(OesGateway) +``` + +  + + +#### 相关字段 + +- 用户名:username +- 密码:password +- 硬盘序列号:hdd_serial +- 交易委托服务器:td_ord_server +- 交易回报服务器:td_rpt_server +- 交易查询服务器:td_qry_server +- 行情推送服务器:md_tcp_server +- 行情查询服务器:md_qry_server + +  + + +#### 获取账号 + +测试账号请联系宽睿科技申请 + +  + +#### 其他特点 + +宽睿柜台提供内网UDP低延时组播行情以及实时成交信息推送。 + +  + + +### 华鑫奇点(TORA) + +#### 如何加载 + +先从gateway上调用ToraGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.tota import ToraGateway +main_engine.add_gateway(OesGateway) +``` + +  + +#### 相关字段 + +- 账号: username +- 密码: password +- 交易服务器: td_address +- 行情服务器: md_address + +  + +#### 获取账号 + +测试账号请联系华鑫证券申请 + + +  + +### 盈透证券(IB) + +#### 如何加载 + +先从gateway上调用IbGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.ib import IbGateway +main_engine.add_gateway(IbGateway) +``` + +  + + +#### 相关字段 + +- TWS地址:127.0.0.1 +- TWS端口:7497 +- 客户号:1 + + +  + + +#### 获取账号 + +在盈透证券开户并且入金后可以获得API接入权限。拥有实盘账号后才可以申请开通仿真交易账号。 + +  + +#### 其他特点 + +可交易品种几乎覆盖全球的股票、期权、期权;手续费相对较低。 + +注意IB接口的合约代码较为特殊,请前往官网的产品查询板块查询,VN Trader中使用的是盈透证券对于每个合约在某一交易所的唯一标识符ConId来作为合约代码,而非Symbol或者LocalName。 + +  + + +### 易盛外盘(TAP) + +#### 如何加载 + +先从gateway上调用TapGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.tap import TapGateway +main_engine.add_gateway(TapGateway) +``` + +  + + +#### 相关字段 + +- 授权码:auth code +- 行情账号:quote username +- 行情密码:quote password +- 行情地址:123.15.58.21 +- 行情端口:7171 + + + +  + + +#### 获取账号 + +在TAP开户并且入金后可以获得API接入权限。 + +  + + +### 富途证券(FUTU) + +#### 如何加载 + +先从gateway上调用FutuGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.futu import FutuGateway +main_engine.add_gateway(FutuGateway) +``` + +  + + +#### 相关字段 + +- 地址:127.0.0.1 +- 密码: +- 端口:11111 +- 市场:HK 或 US +- 环境:TrdEnv.REAL 或 TrdEnv.SIMULATE + + +  + + +#### 获取账号 + +在富途证券开户并且入金后可以获得API接入权限。拥有实盘账号后才可以申请开通仿真交易账号。 + + + + + + +  + +### 老虎证券(TIGER) + + +#### 如何加载 + +先从gateway上调用TigerGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.tiger import TigerGateway +main_engine.add_gateway(TigerGateway) +``` + +  + + +#### 相关字段 + +- 用户ID:tiger_id +- 环球账户:account +- 标准账户:standard_account +- 秘钥:private_key + + + +  + + +#### 获取账号 + +在老虎证券开户并且入金后可以获得API接入权限。拥有实盘账号后才可以申请开通仿真交易账号。 + + +  + + +### ALPACA + +#### 如何加载 +先从gateway上调用AlpacaGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.alpaca import AlpacaGateway +main_engine.add_gateway(AlpacaGateway) +``` + +  + +#### 相关字段 +- KEY ID: key +- Secret Key: secret +- 会话数: 10 +- 服务器:["REAL", "PAPER"] +#### 获取账号 +在OKEX官网开户并且入金后可以获得API接入权限。 +#### 其他特点 + +  + + +### BITMEX + +#### 如何加载 + +先从gateway上调用BitmexGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.bitmex import BitmexGateway +main_engine.add_gateway(BitmexGateway) +``` + +  + + +#### 相关字段 + +- 用户ID:ID +- 密码:Secret +- 会话数:3 +- 服务器:REAL 或 TESTNET +- 代理地址: +- 代理端口: + + + +  + + +#### 获取账号 + +在BITMEX官网开户并且入金后可以获得API接入权限。 + + + +  + +### OKEX现货(OKEX) + + +#### 如何加载 + +先从gateway上调用OkexGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.okex import OkexGateway +main_engine.add_gateway(OkexGateway) +``` + +  + + +#### 相关字段 + +- API秘钥:API Key +- 密码秘钥:Secret Key +- 会话数:3 +- 密码:passphrase +- 代理地址: +- 代理端口: + + + +  + + +#### 获取账号 + +在OKEX官网开户并且入金后可以获得API接入权限。 + + + +  + + +### OKEX期货(OKEXF) + + +#### 如何加载 + +先从gateway上调用OkexfGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.okexf import OkexfGateway +main_engine.add_gateway(OkexfGateway) +``` + +  + + +#### 相关字段 + +- API秘钥:API Key +- 密码秘钥:Secret Key +- 会话数:3 +- 密码:passphrase +- 杠杆:Leverage +- 代理地址: +- 代理端口: + + + +  + + +#### 获取账号 + +在OKEX官网开户并且入金后可以获得API接入权限。 + + +  + +### 火币(HUOBI) + +#### 如何加载 + +先从gateway上调用HuobiGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.huobi import HuobiGateway +main_engine.add_gateway(HuobiGateway) +``` + +  + + +#### 相关字段 + +- API秘钥:API Key +- 密码秘钥:Secret Key +- 会话数:3 +- 代理地址: +- 代理端口: + + + +  + + +#### 获取账号 + +在火币官网开户并且入金后可以获得API接入权限。 + + +  + + + +### 火币合约(HBDM) + +#### 如何加载 + +先从gateway上调用HbdmGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.hbdm import HbdmGateway +main_engine.add_gateway(HbdmGateway) +``` + +  + + +#### 相关字段 + +- API秘钥:API Key +- 密码秘钥:Secret Key +- 会话数:3 +- 代理地址: +- 代理端口: + + + +  + + +#### 获取账号 + +在火币官网开户并且入金后可以获得API接入权限。 + + +  + +### BITFINEX + +#### 如何加载 + +先从gateway上调用BitFinexGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.bitfinex import BitfinexGateway +main_engine.add_gateway(BitfinexGateway) +``` + +  + + +#### 相关字段 + +- 用户ID:ID +- 密码:Secret +- 会话数:3 +- 代理地址: +- 代理端口: + + + +  + + +#### 获取账号 + +在BITFINEX官网开户并且入金后可以获得API接入权限。 + + + +  + + +### ONETOKEN + +#### 如何加载 + +先从gateway上调用OnetokenGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.onetoken import OnetokenGateway +main_engine.add_gateway(OnetokenGateway) +``` + +  + + +#### 相关字段 + +- Key秘钥:OT Key +- 密码秘钥:OT Secret +- 会话数:3 +- 交易所:["BINANCE", "BITMEX", "OKEX", "OKEF", "HUOBIP", "HUOBIF"] +- 账号: +- 代理地址: +- 代理端口: + + + +  + + +#### 获取账号 + +在Onetoken官网开户并且入金后可以获得API接入权限。 + + + +  + +  + +### BINANCE + +#### 如何加载 + +先从gateway上调用BinanceGateway类;然后通过add_gateway()函数添加到main_engine上。 +``` +from vnpy.gateway.binance import BinanceGateway +main_engine.add_gateway(BinanceGateway) +``` + +  + + +#### 相关字段 + +- Key秘钥 +- secret +- session_number(会话数):3 +- proxy_host +- proxy_port + +  + + +#### 获取账号 + +在BINANCE官网开户并且入金后可以获得API接入权限。 + +  + + +### RPC + +#### 如何加载 + +RPC的加载涉及到服务端和客户端 +- 服务端:运行vntrader时加载rpc_service模块 + ``` + from vnpy.app.rpc_service import RpcService + ``` + 启动vntrader后,首先连接外部交易交易如CTP,然后点击菜单栏"功能"->"RPC服务",点击"启动" +- 客户端:运行vntrader时加载RpcGateway + ``` + from vnpy.gateway.rpc import RpcGateway + ``` + 启动vntrader后,连接rpc接口即可。 +#### 相关字段 +在服务端和客户端,使用默认填好的参数即可 + +#### 获取账号 +使用rpc无须额外申请账号,只需要一个外部接口账号 + +#### 其他特点 +rpc服务支持同一外部接口数据在本地多进程分发,比如在服务端连接了ctp接口,订阅了rb1910后,客户端多个进程会自动订阅来自服务端分发的订阅数据