diff --git a/README.md b/README.md new file mode 100644 index 0000000..b0ec7b7 --- /dev/null +++ b/README.md @@ -0,0 +1,179 @@ +[TOC] + +### 如何使用? + +`python版本:3.6 - 3.8` + +`WebSocketAPI:建议websockets库版本为6.0` + +#### 第一步:下载SDK,安装相关所需库 + +1.1 下载`python SDK` + +* 将SDK目录`Clone`或者`Download`到本地,选择使用`okx-python-sdk-api-v5`即可 + +1.2 安装所需库 + +```python +pip install requests +pip install websockets==6.0 +``` + +#### 第二步:配置个人信息 + +2.1 如果还未有API,可[点击](https://www.okx.com/account/users/myApi)前往官网进行申请 + +2.2 将各项信息在`example.py(RestAPI)`和`websocket_example.py(WebSocketAPI)`中填写 + +```python +api_key = "" +secret_key = "" +passphrase = "" +``` + +#### 第三步:调用接口 + +* RestAPI + + * 运行`example.py` + + * 解开相应方法的注释传参调用各接口即可 + +* WebSocketAPI + + * 运行`websocket_example.py` + + * 根据`公共频道`/`私有频道`/`交易`选择对应`url`、对应启动方法,传入相应参数即可 + + ```python + # WebSocket公共频道 + url = "wss://ws.okx.com:8443/ws/v5/public?brokerId=9999" + + # WebSocket私有频道 + url = "wss://ws.okx.com:8443/ws/v5/private?brokerId=9999" + ``` + + ```python + # 公共频道 不需要登录(行情,持仓总量,K线,标记价格,深度,资金费率等) + loop.run_until_complete(subscribe_without_login(url, channels)) + + # 私有频道 需要登录(账户,持仓,订单等) + loop.run_until_complete(subscribe(url, api_key, passphrase, seceret_key, channels)) + + # 交易(下单,撤单,改单等) + loop.run_until_complete(trade(url, api_key, passphrase, seceret_key, trade_param)) + ``` + +附言: + +* 如果对API尚不了解,建议参考`OKx`官方[API文档](https://www.okx.com/docs-v5/zh/) + +* 使用RestAPI的用户可以通过设置`example.py`文件下的flag参数来选择接入实盘或者模拟盘 + +* 使用WebSocketAPI的用户可以通过解开`websocket_example.py`文件下对应的url注释来选择接入实盘或者模拟盘 + +* RestAPI 提供了http2的请求方式,可参考http2_example.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.6 - 3.8` + +`WebSocketAPI: websockets package advise version 6.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 websockets==6.0 +``` + +#### 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.py(RestAPI)` and `websocket_example.py(WebSocketAPI)` + +```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 + - Run `websocket_example.py` + - According to the `public channel`/`private channel`/`trade`, select the corresponding `url`, the corresponding start method, and pass in the corresponding parameters + +```python +# WebSocket public channel +url = "wss://ws.okx.com:8443/ws/v5/public?brokerId=9999" + +# WebSocket private channel +url = "wss://ws.okx.com:8443/ws/v5/private?brokerId=9999" +``` + +```Python +# Not necessary for public channel to login (Instrument, Tickers, Index, Mark price, Order Book, Funding rate, etc) +loop.run_until_complete(subscribe_without_login(url, channels)) + +# necessary for private channel to login(Account,Positions, Order, etc) +loop.run_until_complete(subscribe(url, api_key, passphrase, seceret_key, channels)) + +# trade(Place Order, Cancel Order, Amend Order, etc) +loop.run_until_complete(trade(url, api_key, passphrase, seceret_key, trade_param)) +``` + +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 + ``` + + +