python-okx/README.md

166 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[TOC]
### 如何使用?
`python版本>=3.9
`WebSocketAPIautobahn.twisted>=22.10.0`
#### 第一步下载SDK安装相关所需库
1.1 下载`python SDK`
* 将SDK目录`Clone`或者`Download`到本地,选择使用`okx-python-sdk-api-v5`即可
1.2 安装所需库
```python
pip install requests
pip install autobahn\[twisted\]
pip install pyOpenSSL
```
#### 第二步:配置个人信息
2.1 如果还未有API可[点击](https://www.okx.com/account/users/myApi)前往官网进行申请
```python
api_key = ""
secret_key = ""
passphrase = ""
```
#### 第三步:调用接口
* RestAPI
* 运行`example.py`
* 解开相应方法的注释传参调用各接口即可
* WebSocketAPI
* 参考Test文件夹下`WsPrivate`和`WsPublic`文件示例;
* 根据`公共频道`/`私有频道`选择对应`url`(如果是私有频道需要设置登陆信息),传入相应参数即可。
```python
# WebSocket公共频道
url = "wss://ws.okx.com:8443/ws/v5/public"
# WebSocket私有频道
url = "wss://ws.okx.com:8443/ws/v5/private"
```
```python
# 公共频道 不需要登录行情持仓总量K线标记价格深度资金费率等
参考 WsPublicTest.py
# 私有频道 需要登录(账户,持仓,订单等)
参考 WsPrivateTest.py
```
附言:
* 如果对API尚不了解建议参考`OKX`官方[API文档](https://www.okx.com/docs-v5/zh/)
* 使用RestAPI的用户可以通过参考Test文件夹下的示例设置正确的参数即可
* 使用WebSocketAPI的用户可以通过参考Test文件夹下的`WsPublicTest.py`和`WsPrivateTest.py`,设置正确的参数即可
* 若使用`WebSocketAPI`遇到问题建议参考相关链接
* `asyncio`、`websockets`文档/`github`
https://docs.python.org/3/library/asyncio-dev.html
https://websockets.readthedocs.io/en/stable/intro.html
https://github.com/aaugustin/websockets
* 关于`code=1006`
https://github.com/Rapptz/discord.py/issues/1996
https://github.com/aaugustin/websockets/issues/587
### How to use ?
`python version>=3.9`
`WebSocketAPI autobahn.twisted>=22.10.0`
#### Step 1: Download the SDK and install the necessary libraries
1.1 Download python SDK
- `Clone` or `Download` the SDK directory to your local directory,choose to use `okx-python-sdk-api-v5`
1.2 Install the necessary libraries
```python
pip install requests
pip install autobahn\[twisted\]
pip install pyOpenSSL
```
#### Step 2: Configure Personal Information
2.1 If you have no API[Click here](https://www.okx.com/account/users/myApi) to the official websit to apply for the API
2.2 Fill out all necessary informatiuon in `example.pyRestAPI` and `websocket_example.pyWebSocketAPI`
```python
api_key = ""
secret_key = ""
passphrase = ""
```
#### Step 3: Call API
- RestAPI
- Run `example.py`
- Uncomment the corresponding method and then pass the arguments and call the interfaces
- WebSocketAPI
* Open `WsPrivate`and`WsPublic`
* choose the right `url`(if private channel need login info).
```python
# WebSocket Public channel
url = "wss://ws.okx.com:8443/ws/v5/public"
# WebSocket Private channel
url = "wss://ws.okx.com:8443/ws/v5/private"
```
```python
# Public channel not need login(e.g. tickers,candle,mark-price,books,funding-rate)
refer to WsPublicTest.py
# Private channel nedd login(e.g. account,positions,orders)
refer to WsPrivateTest.py
```
P.S.
- If you know little about API, advise consulting the offical [API document](https://www.okx.com/docs-v5/en/)
- User with RestAPI can configure parameter `flag` in `example.py` in to choose to access to real trading or demo trading
- User with WebSocketAPI can ucomment the corresponding `url` to choose to access to real trading or demo trading
- Rest API support request by http2, you can refer to http2_example
- If you face any questions when using `WebSocketAPI`,you can consult related link
- `asyncio`、`websockets` document/`github`
```python
https://docs.python.org/3/library/asyncio-dev.html
https://websockets.readthedocs.io/en/stable/intro.html
https://github.com/aaugustin/websockets
```
- About `code=1006`
```python
https://github.com/Rapptz/discord.py/issues/1996
https://github.com/aaugustin/websockets/issues/587
```