Как торговать на споте с помощью Jupyter Notebook?
Узнайте, как торговать на споте с помощью вызова функций в библиотеке python-okx в Jupyter Notebook.
1. Как запустить сниппеты Python в Jupyter Notebook?
Jupyter Notebook — это мощный и удобный инструмент для анализа данных и разработки на базе Python. Сервер Jupyter Notebook можно запустить на Windows, Mac OS и Linux. В этом руководстве представлены подробные инструкции по запуску Jupyter Notebook.
2. Как установить пакет python-okx?
Запустите Jupyter Notebook и установите пакет python-okx с помощью команды pip install python-okx
в блокноте или терминале (или командной строке Windows):
3. Как создать API-ключи?
1. Авторизуйтесь на OKX, перейдите на вкладку Торговать > Демо-торговля и создайте API-ключи для тестирования
2. Откройте Аккаунт > API, чтобы создать API-ключ
3. Создайте API-ключи для своих главных аккаунтов или субаккаунтов
4. Выберите Торговля в разделе Доступы, чтобы торговать с помощью API-ключа
5. Теперь у вас есть доступ к API-ключу, секретному ключу и парольной фразе. Храните их в безопасном месте!
6. Создайте переменные python, чтобы сохранить информацию об API в блокноте для дальнейшего использования
1 api_key = "xxxxx"
2 secret_key = "xxxxx"
3 passphrase = "xxxxxx"
```
api_key = "xxxxx"
secret_key = "xxxxx"
passphrase = "xxxxxx"
```
4. Как импортировать модули OKX?
В python-okx есть несколько модулей, основанных на наших модулях REST API. Ознакомьтесь с руководством о том, как импортировать модули OKX.
Trade
BlockTrading
Funding
Account
Convert
Earning
SubAccount
MarketData
PublicData
TradingData
Status
NDBroker
FDBroker
Чтобы импортировать модуль Trade, выполните команду:
1 import okx.Trade as Trade
```
import okx.Trade as Trade
```
Теперь вам доступны все возможности python-okx!
5. Как получить доступ к рыночным данным?
Узнайте о том, как получить доступ к рыночным данным OKX, и используйте код ниже.
1 import okx.MarketData as MarketData
2 flag = "1" # live trading: 0, demo trading: 1
3 marketDataAPI = MarketData.MarketAPI(flag=flag)
4 result = marketDataAPI.get_tickers(instType="SPOT")print(result)
```
import okx.MarketData as MarketData
flag = "1" # live trading: 0, demo trading: 1
marketDataAPI = MarketData.MarketAPI(flag=flag) result = marketDataAPI.get_tickers(instType="SPOT"
)
print(result)
```
6. Как прочитать доступные торговые пары?
Узнайте больше о том, как понять список доступных торговых пар, и используйте код ниже.
```
import okx.PublicData as PublicData
flag = "1" # live trading: 0, demo trading: 1
PublicDataAPI = PublicData.PublicAPI(flag=flag)
result = PublicDataAPI.get_instruments(
instType="SPOT"
)
print(result)
```
7. Как прочитать баланс аккаунта?
Ознакомьтесь с руководством о том, как прочитать баланс аккаунта.
Примечание: для спотовой торговли в режиме «cash» tdMode
следует проверить параметры cashBal
, frozenBal
для каждого ccy
в разделе details
, а также параметр totalEq
.
```
import okx.Account as Account
flag = "1" # live trading: 0, demo trading: 1
accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)
result = accountAPI.get_account_balance()
print(result)
```
8. Как получить доступ к четырем режимам маржи?
В едином аккаунте доступны четыре режима маржи:
Простой режим
Режим одновалютной маржи
Режим мультивалютной маржи
Режим маржи портфеля
Прочитайте руководство о том, как настроить режим маржи в браузере и в чем отличаются режимы. В режиме маржи или торговли параметр tdMode
определяет маржу позиции. Его необходимо устанавливать каждый раз при размещении нового ордера. Для спотовой торговли в простом режиме или режиме одновалютной маржи установите tdMode
='cash'. Для спотовой торговли в режиме мультивалютной маржи или маржи портфеля установите tdMode
='cross'. Ниже описаны способы узнать, какой режим маржи установлен на аккаунте.
9. Как узнать, какой режим маржи установлен на аккаунте?
Ознакомьтесь с руководством о том, как узнать режим маржи аккаунта, и используйте параметр acctLv
.
```
import okx.Account as Account
flag = "1" # live trading: 0, demo trading: 1
accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag) result = accountAPI.get_account_config()
print(result)
if result['code'] == "0":
acctLv = result["data"][0]["acctLv"]
if acctLv == "1":
print("Simple mode")
elif acctLv == "2":
print("Single-currency margin mode")
elif acctLv == "3":
print("Multi-currency margin mode")
elif acctLv == "4":
print("Portfolio margin mode")
```
10. Как размещать спотовые ордера в простом режиме и режиме одновалютной маржи?
10.1 Как разместить лимитный ордер?
Ознакомьтесь с руководством о том, как разместить лимитный ордер в простом режиме и режиме одновалютной маржи.
Приведем пример покупки 0,01 BTC при стоимости 1 BTC в 19 000 USDT.
```
# limit order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="limit",
px="19000",
sz="0.01"
)
print(result)
if result["code"] == "0":
print("Successful order request,order_id = ",result["data"][0]["ordId"])
else:
print("Unsuccessful order request,error_code = ",result["data"][0]["sCode"], ", Error_message = ", result["data"][0]["sMsg"])
```
10.2 Как разместить рыночный ордер?
Ознакомьтесь с руководством о том, как разместить рыночный ордер в простом режиме и режиме одновалютной маржи.
Приведем пример покупки BTC на сумму 100 USD по текущей рыночной цене.
```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
)
print(result)
```
10.3 Как использовать параметр целевой валюты tgtCcy в спотовой торговле?
В спотовой торговле параметр tgtCcy
определяет единицу измерения параметра sz
, в качестве которой может выступать либо базовая валюта, либо валюта котировки торговой пары. Например, в паре BTC-USDT базовой валютой является BTC, а валютой котировки — USDT.
По умолчанию для ордеров на покупку tgtCcy
= quote_ccy, то есть указанный параметр sz
выражен в валюте котировки. Для ордеров на продажу tgtCcy
= base_ccy, то есть указанное значение sz
выражено в базовой валюте.
В приведенном ниже примере размещается рыночный ордер на покупку BTC стоимостью 100 USD.
```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
tgtCcy="quote_ccy" # this determines the unit of the sz parameter.
)
print(result)
```
10.4 Как использовать параметр ID ордера клиента clOrdId?
При размещении ордера можно указать собственный ID ордера клиента, задав параметр clOrdId
, который в дальнейшем может быть использован в качестве идентификатора вместо ordId
при вызове конечной точки отмены, изменения или получения ордера.
```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
clOrdId="003" # you can define your own client defined order ID
)
print(result)
```
11. Как просмотреть детали конкретного ордера?
Ознакомьтесь с руководством о том, как получить детали конкретного ордера.
С помощью ordId
```
result = tradeAPI.get_order(instId="BTC-USDT", ordId="497819823594909696")
print(result)
```
С помощью clOrdId
```
result = tradeAPI.get_order(instId="BTC-USDT", clOrdId="002")
print(result)
```
12. Как отменить ордер?
Ознакомьтесь с руководством о том, как отменить ордер.
Вы также можете использовать clOrdId
вместо ordId
.
```
result = tradeAPI.cancel_order(instId="BTC-USDT", ordId = "489093931993509888")
print(result)
```
13. Как изменить ордер?
Ознакомьтесь с руководством о том, как изменить ордер.
Вы также можете использовать clOrdId
вместо ordId
.
```
result = tradeAPI.amend_order(
instId="BTC-USDT",
ordId="489103565508685824",
newSz="0.012"
)
print(result)
```
14. Как получить доступ к списку открытых ордеров?
Ознакомьтесь с руководством о том, как получить список открытых ордеров.
```
result = tradeAPI.get_order_list()
print(result)
```
15. Как получить доступ к истории ордеров?
15.1 За последние 7 дней
Ознакомьтесь с руководством о том, как получить историю ордеров за последние 7 дней.
```
result = tradeAPI.get_orders_history(
instType="SPOT"
)
print(result)
```
15.2 За последние 3 месяца
Ознакомьтесь с руководством о том, как получить историю ордеров за последние 3 месяца.
```
result = tradeAPI.get_orders_history_archive(
instType="SPOT"
)
print(result)
```
16. Где можно найти больше примеров работы с API OKX через Jupyter Notebook?
Чтобы найти больше примеров, загрузите Jupyter Notebook по этой ссылке. Если у вас остались какие-либо вопросы об API OKX, обратитесь в группу OKX в Telegram для поддержки API.