1548 lines
31 KiB
Markdown
1548 lines
31 KiB
Markdown
# 交易接口
|
||
|
||
## 如何连接
|
||
|
||
从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"]
|
||
- 授权码:
|
||
|
||
|
||
|
||
|
||
#### 获取账号
|
||
|
||
测试账号请联系中泰证券申请。
|
||
|
||
#### 其他特点
|
||
|
||
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后,客户端多个进程会自动订阅来自服务端分发的订阅数据# 交易接口
|
||
|
||
## 如何连接
|
||
|
||
从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"]
|
||
- 授权码:
|
||
|
||
|
||
|
||
|
||
#### 获取账号
|
||
|
||
测试账号请联系中泰证券申请。
|
||
|
||
#### 其他特点
|
||
|
||
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后,客户端多个进程会自动订阅来自服务端分发的订阅数据
|