Nie wszystkie wymienione produkty są dostępne we wszystkich jurysdykcjach.

Jak mogę przeprowadzać transakcje spot za pomocą Jupyter Notebook?

Opublikowano 29 wrz 2023Zaktualizowano 18 sie 20249 min czytania234

Dowiedz się, jak zawrzeć transakcje na rynku spot, wywołując funkcje w bibliotece python-okx w Jupyter Notebook.

1. Jak mogę uruchamiać fragmenty kodu Python w Jupyter Notebook?

CT-web-spottrading-howtoapi-1

Jupyter Notebook to niezwykle potężne i łatwe w użyciu narzędzie do programowania w języku Python i analizy danych. Serwer Jupyter Notebook możesz uruchomić w Windows, MacOS lub w Linuksie. Ten samouczek zawiera dość obszerny przewodnik na temat tego, jak uruchomić Jupyter Notebook.

2. Jak zainstalować pakiet python-okx?

Po uruchomieniu Jupyter Notebook można zainstalować pakiet python-okx, uruchamiając polecenie pip install python-okx w notatniku lub w terminalu (lub w wierszu polecenia w systemie Windows):

CT-web-spottrading-howtoapi-2

3. Jak utworzyć klucze API?

  1. Po zalogowaniu się do OKX przejdź do Handel> Handel demo, aby utworzyć klucze API do celów testowych

    CT-web-trade-demo trading

    Otwórz stronę handlu demo

  2. Przejdź do Konto -> API , aby utworzyć klucze API

    CT-web-profile-API

    Otwarty interfejs API do tworzenia kluczy API

  3. Utwórz klucze API dla kont głównych/podrzędnych

    CT-web-API-create

    Kliknij Utwórz klucz API

  4. Wybierz Handel w Uprawnienia, aby handlować za pomocą klucza API

    CT-web-API-trade

    Wybierz w uprawnieniach opcję Handel

  5. Teraz masz dostęp do klucza API, klucza tajnego i hasła. Przechowuj je w bezpiecznym miejscu!

  6. Zainicjuj zmienne Pythona, aby zapisać szczegóły API w notatniku do późniejszego wykorzystania

    Python
    1 api_key = "xxxxx"
    2 secret_key = "xxxxx"
    3 passphrase = "xxxxxx"

4. Jak mogę zaimportować moduły OKX?

W python-okx istnieje kilka modułów opartych na naszych modułach REST API. Przeczytaj nasz przewodnik, aby dowiedzieć się jak importować moduły OKX.

  • Handel

  • BlockTrading

  • Finansowanie

  • Konto

  • Convert

  • Zarabianie

  • Subkonto

  • MarketData

  • PublicData

  • TradingData

  • Status

  • NDBroker

  • FDBroker

Aby zaimportować moduł Handel, można uruchomić:

Python
1 import okx.Trade as Trade

Teraz możesz korzystać z wszechstronnych funkcji dostępnych w python-okx!

5. Jak mogę uzyskać dostęp do naszych danych rynkowych?

Dowiedz się więcej na stronie, jak uzyskać dostęp do naszych danych rynkowych i zapoznaj się z poniższym kodem.

Python
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. Jak mogę odczytać dostępne pary handlowe?

Dowiedz się jak czytać dostępne pary handlowe i zapoznaj się z poniższym kodem.

Python
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. Jak mogę odczytać saldo mojego konta?

Aby uzyskać więcej informacji jak odczytać saldo konta, przeczytaj nasz dedykowany przewodnik.

Uwaga: w przypadku transakcji spot w trybie „gotówkowym” tdMode należy głównie sprawdzić parametry cashBal, frozenBal dla każdego ccy w details oraz parametr totalEq.

Python
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. Jak mogę uzyskać dostęp do czterech różnych trybów konta?

W naszym systemie ujednoliconych kont dostępne są cztery tryby konta:

  • Tryb spot

  • Tryb spot i kontraktów futures

  • Tryb wielowalutowego depozytu zabezpieczającego

  • Tryb depozytu zabezpieczającego portfolio

Aby zrozumieć różnicę między różnymi trybami konta i, jak skonfigurować tryb konta za pośrednictwem interfejsu użytkownika, przeczytaj nasz dedykowany poradnik.

W trybie depozytu zabezpieczającego lub w trybie handlu parametr tdMode określa, w jaki sposób pozycja będzie zabezpieczana, co należy ustawić za każdym razem, gdy składane jest nowe zlecenie.

W przypadku handlu spot w trybie spot lub spot i kontraktów terminowych ustaw tdMode='cash'.

W przypadku handlu spot w trybie wielowalutowego depozytu zabezpieczającego lub portfela depozytu zabezpieczającego, należy ustawić tdMode = "cross".

Poniżej znajdziesz krótkie wyjaśnienie, jak dowiedzieć się, w jakim trybie skonfigurowane jest Twoje bieżące konto.

9. Jak sprawdzić, w jakim trybie skonfigurowane jest moje bieżące konto?

Aby uzyskać więcej informacji na temat tego, jak dowiedzieć się, w jakim trybie skonfigurowane jest konto, przeczytaj nasz dedykowany przewodnik i wprowadź parametr acctLv.

Python
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. Jak składać zlecenia spot w trybie handlu spot / handlu spot i kontraktów futures?

10.1 Jak mogę złożyć zlecenie z limitem?

Aby uzyskać więcej informacji na temat jak złożyć zlecenie z limitem w trybie spot lub spot i kontraktów terminowych, przeczytaj nasz dedykowany przewodnik.

Oto przykład zakupu 0,01 BTC po cenie 19 000 USDT.

Python
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 Jak mogę złożyć zlecenie rynkowe?

Aby uzyskać więcej informacji na temat Jak złożyć zlecenie rynkowe w trybie spot lub spot i kontrakty futures, przeczytaj nasz dedykowany przewodnik.

Oto przykład zakupu BTC o wartości 100 USD po bieżącej cenie rynkowej.

Python
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 Jak mogę użyć parametru waluty docelowej tgtCcy podczas handlu spot?

W handlu spot parametr tgtCcy określa jednostkę parametru rozmiaru sz, która może być walutą bazową lub walutą kwotowaną pary handlowej. Na przykład w parze BTC-USDT walutą bazową jest BTC, a walutą kwotowaną jest USDT.

Domyślnie, tgtCcy = quote_ccy dla zleceń kupna, co oznacza, że podana wartość sz jest wyrażona w walucie bazowej. Domyślną wartością tgtCcy dla zleceń sprzedaży jest base_ccy, co oznacza, że podana wartość sz jest wyrażona w walucie bazowej.

W poniższym przykładzie masz zamiar złożyć zlecenie rynkowe na zakup BTC o wartości 100 USD.

Python
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 Jak korzystać z parametru identyfikatora zlecenia klienta clOrdId?

Podczas składania zlecenia można określić własny identyfikator zlecenia klienta, określając parametr clOrdId, który może być później użyty jako identyfikator zamiast ordId podczas wywoływania punktu końcowego anulowania, zmiany lub pobierania zlecenia.

Python
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. Jak uzyskać szczegółowe informacje o danym zleceniu?

Aby uzyskać więcej informacji o tym, jak uzyskać szczegółowe informacje o danym zleceniu, przeczytaj nasz dedykowany poradnik.

11.1 Korzystanie z ordId

Python
1 result = tradeAPI.get_order(instId="BTC-USDT", ordId="497819823594909696")
2 print(result)

11.2 Korzystanie z clOrdId

Python
1 result = tradeAPI.get_order(instId="BTC-USDT", clOrdId="002")
2 print(result)

12. Jak mogę anulować zlecenie?

Aby uzyskać więcej informacji o tym, jak anulować zlecenia, przeczytaj nasz dedykowany poradnik.

Można również użyć clOrdId zamiast ordId.

Python
1 result = tradeAPI.cancel_order(instId="BTC-USDT", ordId = "489093931993509888")
2 print(result)

13. Jak mogę zmodyfikować zlecenie?

Aby uzyskać więcej informacji o tym, jak zmodyfikować zlecenie, przeczytaj nasz dedykowany przewodnik.

Można również użyć clOrdId zamiast ordId.

Python
1 result = tradeAPI.amend_order(
2     instId="BTC-USDT",
3     ordId="489103565508685824",
4     newSz="0.012"
5 )
6 print(result)

14. Jak mogę uzyskać dostęp do listy otwartych zleceń?

Aby uzyskać więcej informacji na temat dostępu do listy otwartych zleceń, przeczytaj nasz dedykowany przewodnik.

Python
1 result = tradeAPI.get_order_list()
2 print(result)

15. Jak mogę uzyskać dostęp do historii zleceń?

15.1 Dla ostatnich 7 dni

Aby uzyskać więcej informacji na temat dostępu do historii zleceń z ostatnich 7 dni, przeczytaj nasz dedykowany poradnik.

Python
1 result = tradeAPI.get_orders_history(
2     instType="SPOT"
3 )
4 print(result)

15.2 Dla ostatnich 3 miesięcy

Aby uzyskać więcej informacji na temat dostępu do historii zleceń z ostatnich 3 miesięcy, przeczytaj nasz dedykowany przewodnik.

Python
1 result = tradeAPI.get_orders_history_archive(
2     instType="SPOT"
3 )
4 print(result)

16. Jak mogę rozwinąć API OKX za pomocą Jupyter Notebook?

Aby uzyskać więcej przykładów, pobierz pełną wersję Jupyter Notebook tutaj.

Jeśli masz jakiekolwiek pytania dotyczące naszych interfejsów API, możesz zadać je w nasze społeczności API.