Як торгувати на споті за допомогою Jupyter Notebook?
Дізнайтеся, як спростити торгівлю на споті викликом функцій з бібліотеки
у Jupyter Notebook.1. Як запускати фрагменти коду Python у Jupyter Notebook?

Jupyter Notebook — це неймовірно потужний і простий у використанні інструмент для розробки й аналізу даних на базі Python. Ви можете запустити сервер Jupyter Notebook на Windows, Mac OSS або Linux.
наведено дуже детальну інструкцію про те, як створити й запустити Jupyter Notebook.2. Як установити пакет python-okx?
Після початку запуску Jupyter Notebook ви можете встановити пакет python-okx, просто запустивши команду pip install python-okx
у записнику або в терміналі (або через командний рядок для Windows):

3. Як створити API-ключі?
Щоб створити API-ключі для тестування, після входу в OKX перейдіть у пункт Торгівля> Демоторгівля
Відкрийте сторінку «Демоторгівля»
Перейдіть у розділ «Профіль» і виберіть
для створення API-ключівВідкрийте 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. Дізнайтесь у нашому посібнику,
.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.Account as Account
2
3 # API initialization
4 apikey = "YOUR_API_KEY"
5 secretkey = "YOUR_SECRET_KEY"
6 passphrase = "YOUR_PASSPHRASE"
7
8 flag = "1" # Production trading: 0, Demo trading: 1
9
10 accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
11
12 result = accountAPI.get_instruments(instType="SPOT")
13 print(result)
7. Як зчитати баланс свого акаунта?
Детальніше про те,
, ви можете дізнатись у нашому посібнику.Примітка: для спотової торгівлі у «готівковому» режимі 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 за ціною 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?
Розміщуючи ордер, ви можете вказати ідентифікатор клієнтського ордера, вказавши параметр 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. Як скасувати ордер?
Додаткову інформацію про те,
, шукайте в нашому окремому посібнику.А ще замість ordId
ви можете використати clOrdId
.
1 result = tradeAPI.cancel_order(instId="BTC-USDT", ordId = "489093931993509888")
2 print(result)
13. Як внести зміни в ордер?
Додаткову інформацію про те,
, шукайте в нашому окремому посібнику.А ще замість ordId
ви можете використати clOrdId
.
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 днів
Додаткову інформацію про те,
, шукайте в нашому окремому посібнику.1 result = tradeAPI.get_orders_history(
2 instType="SPOT"
3 )
4 print(result)
15.2. За останні 3 місяці
Додаткову інформацію про те,
, шукайте в нашому окремому посібнику.1 result = tradeAPI.get_orders_history_archive(
2 instType="SPOT"
3 )
4 print(result)
16. Як додаткові можливості має API від OKX з Jupyter Notebook?
Щоб отримати інші приклади, завантажте повний Jupyter Notebook
.Якщо у вас виникли запитання про наші API, ви можете приєднатися до
й поставити їх учасникам.