Cum pot tranzacționa spot cu Jupyter Notebook?

Publicat la 29 sept. 2023Actualizat la 24 apr. 20248 min citire131

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 privind modul de punere în funcțiune a unui 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 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ă

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

```
api_key = "xxxxx"
secret_key = "xxxxx"
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ționați

  • BlockTrading

  • Finanțare

  • Cont

  • Convertiți

  • Câștig

  • SubAccount

  • MarketData

  • PublicData

  • TradingData

  • Stare

  • NDBroker

  • FDBroker

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

1 import okx.Trade as Trade

```
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.

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. 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.

```
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. 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 sub detalii, precum și parametrul 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. Cum pot accesa cele patru moduri de cont diferite?

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

  • Cont simplu

  • Cont de marjă în monedă unică

  • Cont de marjă multimonedă

  • Cont de marjă de portofoliu

Pentru a înțelege diferența dintre diferitele moduri de cont și cum să configurați modul de cont prin intermediul interfeței web, citiți ghidul nostru dedicat. În modul de marjă sau în modul de tranzacționare, parametrul tdMode determină modul în care poziția va fi tranzacționată în marjă și trebuie setat de fiecare dată când plasați un ordin nou. Pentru tranzacționarea spot în modul de cont de marjă simplu sau în monedă unică, 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.

```
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. Cum pot plasa ordine spot în modul de marjă simplă/în monedă unică?

10.1 Cum pot plasa un ordin limită?

Pentru mai multe informații despre cum se plasează un ordin limită în modul de cont de marjă simplă sau în monedă unică, citiți ghidul nostru dedicat.

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

Pentru mai multe informații despre cum se plasează un ordin la prețul pieței în modul de cont de marjă simplă sau în monedă unică, 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.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
)
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 mărime 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.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
tgtCcy="quote_ccy" # aceasta determină unitatea parametrului sz.
)
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 ID 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.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
clOrdId="003" # vă puteți defini propriul ID de ordin definit de client
)
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.

Folosind ordId

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

Folosind clOrdId

```
result = tradeAPI.get_order(instId="BTC-USDT", clOrdId="002")
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.

```
result = tradeAPI.cancel_order(instId="BTC-USDT", ordId = "489093931993509888")
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.

```
result = tradeAPI.amend_order(
instId="BTC-USDT",
ordId="489103565508685824",
newSz="0.012"
)
print(result)
```

14. Cum pot accesa lista de ordine active?

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

```
result = tradeAPI.get_order_list()
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.

```
result = tradeAPI.get_orders_history(
instType="SPOT"
)
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.

```
result = tradeAPI.get_orders_history_archive(
instType="SPOT"
)
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, le puteți adresa în Canalul Telegram de asistență pentru API OKX.