Cum pot tranzacționa spot cu Jupyter Notebook?

Publicat la 29 sept. 2023Actualizat la 18 aug. 202410 min citire241

Aflați cum puteți realiza tranzacționarea spot simplă prin invocarea funcțiilor în biblioteca python-okx pe Jupyter Notebook.

1. Cum pot rula fragmente de cod Python pe Jupyter Notebook?

CT-web-spottrading-howtoapi-1

Jupyter Notebook este un instrument incredibil de puternic și ușor de folosit pentru analiză de date și dezvoltare Python. Puteți rula un server Jupyter Notebook pe Windows, Mac OS sau Linux. Acest tutorial oferă un ghid cuprinzător despre cum să puneți în funcțiune un Jupyter Notebook.

2. Cum pot instala pachetul python-okx?

Odată ce ați început să rulați un Jupyter Notebook, puteți instala pachetul python-okx prin simpla rulare a pip install python-okx în blocnotes sau într-un terminal (sau prin linia de comandă pentru Windows):

CT-web-spottrading-howtoapi-2

3. Cum pot crea chei API?

  1. După ce vă autentificați în OKX, accesați Tranzacționare > Tranzacționare în modul demo pentru a crea chei API în scopuri de testare

    CT-web-trade-demo trading

    Deschideți pagina Tranzacționare în modul demo

  2. Accesați Cont > API pentru a crea chei API

    CT-web-profile-API

    Accesați API pentru a crea chei API

  3. Creați chei API pentru diferitele conturi principale/conturi secundare pe care s-ar putea să le aveți

    CT-web-API-create

    Selectați Creare cheie API

  4. Selectați Tranzacționare în Permisiuni pentru a tranzacționa cu cheia API

    CT-web-API-trade

    Selectați Tranzacționare in Permisiuni

  5. Acum aveți acces la cheia API, la cheia secretă și la fraza de acces. Păstrați-le într-un loc sigur!

  6. Instanțiați variabile python pentru a salva detaliile API în blocnotes pentru utilizare ulterioară

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

4. Cum pot importa module OKX?

În python-okx, există mai multe module bazate pe modulele noastre REST API. Citiți ghidul nostru pentru a învăța cum se importă module OKX.

  • Tranzacționare

  • BlockTrading

  • Finanțare

  • Cont

  • Convertire

  • Câștig

  • SubAccount

  • MarketData

  • PublicData

  • TradingData

  • Stare

  • NDBroker

  • FDBroker

Pentru a importa modulul Tranzacționare, puteți rula:

Python
1 import okx.Trade as Trade

Acum sunteți gata să utilizați funcțiile cuprinzătoare disponibile în python-okx!

5. Cum pot accesa datele noastre de piață?

Aflați mai multe despre cum să accesați datele noastre de piață și consultați codul de mai jos.

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. Cum pot citi perechile de tranzacționare disponibile?

Aflați mai multe cu privire la cum să citiți perechile noastre de tranzacționare disponibile și consultați codul de mai jos.

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. Cum îmi pot citi soldul contului?

Pentru mai multe informații despre cum să citiți soldul contului, citiți ghidul nostru dedicat.

Observație: pentru tranzacționarea spot sub „cash” tdMode, trebuie să verificați în principal parametrii cashBal, frozenBal pentru fiecare ccy subdetalii, precum și parametrul 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. Cum pot accesa cele patru moduri de cont diferite?

În sistemul nostru de cont unificat, există patru moduri de cont:

  • mod spot

  • mod spot și contracte la termen

  • mod marjă multimonedă

  • mod de marjă de portofoliu

Pentru a înțelege diferența dintre diferitele moduri de cont și cum se configurează modul de cont prin intermediul interfeței web, citiți ghidul nostru dedicat.

În modul marjă sau modul de tranzacționare, parametrul tdMode determină modul în care poziția va avea marjă, care trebuie setat de fiecare dată când plasați un nou ordin.

Pentru tranzacționarea spot în modul spot sau spot și contracte la termen, setați tdMode='cash'.

Pentru tranzacționarea spot în modul cont de marjă multimonedă sau modul cont de marjă de portofoliu, setați tdMode = 'cross'.

Veți găsi mai jos o scurtă explicație despre cum să vă dați seama cum vă este configurat contul actual.

9. Cum îmi pot da seama cum este configurat contul meu actual?

Pentru mai multe informații despre cum să vă dați seama cum este configurat modul în care contul curent vă este configurat, citiți ghidul nostru dedicat și introduceți parametrul 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. Cum pot plasa ordine spot în modul spot/spot și contracte la termen?

10.1 Cum pot plasa un ordin limită?

Pentru mai multe informații despre cum să plasați un ordin limită într-un mod spot sau spot și contracte la termen, citiți ghidul nostru dedicat.

Iată un exemplu pentru cumpărarea a 0,01 BTC la prețul de 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 Cum plasa un ordin la prețul pieței?

Pentru mai multe informații despre cum să plasați un ordin de piață într-un mod spot sau spot și contracte la termen, citiți ghidul nostru dedicat.

Iată un exemplu pentru cumpărare de BTC în valoare de 100 USD la prețul curent al pieței.

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 Cum pot utiliza parametrul de monedă țintă tgtCcy în timpul tranzacționării spot?

În tranzacționarea spot, parametrul tgtCcy determină unitatea parametrului de dimensiune sz, care poate fi fie moneda de bază, fie moneda de cotație a perechii de tranzacționare. De exemplu, în perechea BTC-USDT, moneda de bază este BTC, iar moneda de cotație este USDT.

În mod implicit, tgtCcy = quote_ccy pentru ordine de cumpărare, ceea ce înseamnă că parametrul sz pe care l-ați specificat este exprimat în termenii monedei de cotație. Între timp, valoarea implicită a tgtCcy pentru ordinele de vânzare este base_ccy, ceea ce înseamnă că parametrul sz pe care l-ați specificat este exprimat în moneda de bază.

În exemplul de mai jos, sunteți pe cale să plasați un ordin de piață pentru a cumpăra BTC în valoare de 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 Cum pot utiliza parametrul de identificare a ordinului clientului clOrdId?

Atunci când plasați un ordin, puteți specifica propriul cod de identificare de ordin de client specificând parametrul clOrdId, care poate fi utilizat ulterior ca identificator în locul parametrului ordId atunci când invocați un punct final de anulare, modificare sau recuperare a ordinului.

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. Cum pot obține detalii despre un anumit ordin?

Pentru mai multe informații despre cum să obțineți detalii despre un anumit ordin, citiți ghidul nostru dedicat.

11.1 Folosind ordId

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

11.2 Folosind clOrdId

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

12. Cum pot anula un ordin?

Pentru mai multe informații despre cum să anulați un ordin, citiți ghidul nostru dedicat.

De asemenea, puteți utiliza clOrdId în loc de ordId.

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

13. Cum pot modifica un ordin?

Pentru mai multe informații despre cum să modificați un ordin, citiți ghidul nostru dedicat.

De asemenea, puteți utiliza clOrdId în loc de ordId.

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

14. Cum pot accesa lista de ordine deschise?

Pentru mai multe informații despre cum să accesați lista de ordine deschise, citiți ghidul nostru dedicat.

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

15. Cum pot accesa istoricul ordinelor?

15.1 Pentru ultimele 7 zile

Pentru mai multe informații despre cum să accesați istoricul ordinelor pentru ultimele 7 zile, citiți ghidul nostru dedicat.

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

15.2 Să fie emise în ultimele 3 luni

Pentru mai multe informații despre cum să accesați istoricul ordinelor pentru ultimele 3 luni, citiți ghidul nostru dedicat.

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

16. Cum pot continua cu API-ul OKX cu un Jupyter Notebook?

Pentru mai multe exemple, descărcați întregul Jupyter Notebook de aici.

Dacă aveți întrebări despre API-urile noastre, vă puteți alătura comunității noastre API și să le adresați în comunitate.