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