Come posso fare trading spot con Jupyter Notebook?

Data di pubblicazione: 29 set 2023Data di aggiornamento: 24 apr 20248 minuti di lettura132

Impara a fare del semplice trading Spot chiamando le funzioni della libreria python-okx su un Jupyter Notebook.

1. Come faccio a eseguire snippet di codice Python su un Quaderno Jupyter?

CT-web-spottrading-howtoapi-1

Jupyter Notebook è uno strumento incredibilmente potente e facile da usare per lo sviluppo e l'analisi dei dati in Python. Puoi eseguire un server Jupyter Notebook su Windows, Mac OS o Linux. Questo tutorial fornisce una guida abbastanza completa su come far funzionare un Jupyter Notebook.

2. Come facco a installare il pacchetto python-okx?

Una volta avviato un Quaderno Jupyter, puoi installare il pacchetto python-okx semplicemente eseguendo il comando pip install python-okx nel notebook o in un terminale (o tramite prompt dei comandi per Windows):

CT-web-spottrading-howtoapi-2

3. Come faccio a creare chiavi API?

1. Dopo aver effettuato l'accesso a OKX, vai su Trading > Demo Trading per creare chiavi API a scopo di test

CT-web-trade-demo trading

Apri la pagina Demo Trading

2. Vai su Conto > API per creare le chiavi API

CT-web-profile-API

Apri API per creare chiavi API

3. Crea chiavi API per i diversi conti principali e secondari che possiedi

CT-web-API-create

Seleziona Crea chiave API

4. Seleziona Trading nella sezione Permessi per effettuare il trading con la chiave API

CT-web-API-trade

Seleziona Autorizzazioni per il trading

5. Adesso puoi accedere alla chiave API, alla chiave segreta e alla passphrase. Conservale in un luogo sicuro!

6. Esemplifica le variabili python per salvare i dettagli dell'API nel blocco note per un uso successivo

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

```
api_key = "xxxxx"
secret_key = "xxxxx"
passphrase = "xxxxxx"
```

4. Come faccio a importare i moduli OKX?

In python-okx ci sono diversi moduli basati sui nostri moduli API REST. Leggi la nostra guida per scoprire come importare i moduli OKX.

  • Trading

  • BlockTrading

  • Finanziamento

  • Conto

  • Converti

  • Guadagno

  • Conto secondario

  • Dati di mercato

  • Dati pubblici

  • Dati di trading

  • Stato

  • NDBroker

  • FDBroker

Per importare il modulo Trading, puoi eseguire:

1 import okx.Trade as Trade

```
import okx.Trade as Trade
```

Adesso sei pronto a utilizzare le funzioni complete disponibili in python-okx!

5. Come faccio ad accedere ai nostri dati di mercato?

Scopri come accedere ai nostri dati di mercato e consulta il codice sottostante.

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. Come faccio a leggere le coppie di trading disponibili?

Scopri come leggere le coppie di trading disponibili e consulta il codice sottostante.

```
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. Come faccio a leggere il saldo del mio conto?

Per maggiori informazioni su come leggere il saldo del conto, consulta la nostra guida dedicata.

Nota: Per il trading spot in "cash" tdMode, devi controllare principalmente i parametri cashBal, frozenBal per ogni ccy sotto details, e il parametro 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. Come faccio ad accedere alle quattro diverse modalità di conto?

Nel nostro sistema di conti unificati, esistono quattro modalità di conto:

  • Conto semplice

  • Conto a margine univaluta

  • Conto a margine multivaluta

  • Conto a margine di portafoglio

Per comprendere la differenza tra le diverse modalità di conto e scoprire come impostare la modalità di conto tramite l'interfaccia Web, leggi la nostra guida dedicata. In modalità margine o modalità di trading, il parametro tdMode determina la modalità di marginazione della posizione, che deve essere impostata ogni volta che si effettua un nuovo ordine. Per il trading spot in modalità conto margine semplice o univaluta, imposta tdMode='cash'. Per il trading spot in modalità margine multivaluta o conto a margine di portafoglio, imposta tdMode = 'cross'. Di seguito troverai una rapida spiegazione su come capire quale modalità è configurata per il tuo conto attuale.

9. Come faccio a capire in che modalità è configurato il mio conto attuale?

Per maggiori informazioni su come capire in che modalità è configurato il conto corrente, leggi la nostra guida dedicata e inserisci il parametro 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. Come faccio piazzare ordini spot in modalità margine semplice/univaluta?

10.1 Come faccio a inserire un ordine limite?

Per maggiori informazioni su come piazzare un ordine limite in modalità conto margine semplice o univaluta, leggi la nostra guida dedicata.

Ecco un esempio di acquisto di 0,01 BTC al prezzo di 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.1 Come faccio a inserire un ordine di mercato?

Per maggiori informazioni su come piazzare un ordine di mercato in modalità di conto a margine semplice o univaluta, leggi la nostra guida dedicata.

Ecco un esempio di acquisto di BTC per un valore di 100 USD al prezzo di mercato attuale.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="mercato",
sz="100",
)
print(result) ```

10.3 Come posso utilizzare il parametro della valuta target tgtCcy durante il trading spot?

Nel trading spot, il parametro tgtCcy determina l'unità del parametro di dimensione sz, che può essere la valuta di base o la valuta quotata della coppia di trading. Ad esempio, nella coppia BTC-USDT, la valuta di base è BTC e la valuta quotata è USDT.

Per impostazione predefinita, tgtCcy = quote_ccy per gli ordini di acquisto, il che significa che il sz specificato è in termini di valuta di quotazione. Allo stesso tempo, il valore predefinito di tgtCcy per gli ordini di vendita è base_ccy, il che significa che il sz specificato è in termini della valuta base.

Nell'esempio seguente, stai per piazzare un ordine di mercato per acquistare BTC del valore di 100 USD.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="mercato",
sz="100",
tgtCcy="quote_ccy" # this determines the unit of the sz parameter.
)
print(result)
```

10.4 Come faccio a utilizzare il parametro ID ordine cliente clOrdId?

Quando effettui un ordine, puoi specificare l'ID dell'ordine del cliente specificando il parametro clOrdId, che può essere successivamente utilizzato come identificatore al posto di ordId quando si chiama un endpoint di cancellazione, modifica o recupero dell'ordine.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="mercato",
sz="100",
clOrdId="003" # you can define your own client defined order ID
)
print(result)
```

11. Come faccio a ottenere dettagli su un determinato ordine?

Per ulteriori informazioni su come ottenere dettagli su un determinato ordine, leggi la nostra guida dedicata.

Utilizzare ordId

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

Utilizzare clOrdId

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

12. Come faccio ad annullare un ordine?

Per maggiori informazioni su come annullare un ordine, consulta la nostra guida dedicata.

Puoi anche usare clOrdId invece di ordId.

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

13. Come faccio a modificare un ordine?

Per maggiori informazioni su come modificare un ordine, consulta la nostra guida dedicata.

Puoi anche usare clOrdId invece di ordId.

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

14. Come faccio ad accedere all'elenco degli ordini aperti?

Per ulteriori informazioni su come accedere all'elenco degli ordini aperti, leggi la nostra guida dedicata.

```
result = tradeAPI.get_order_list()
print(result)
```

15. Come faccio ad accedere allo storico degli ordini?

15.1 Negli ultimi 7 giorni

Per maggiori informazioni su come accedere alla cronologia degli ordini degli ultimi 7 giorni, leggi la nostra guida dedicata.

```
result = tradeAPI.get_orders_history(
instType="SPOT"
)
print(result)
```

15.2 Negli ultimi 3 mesi

Per maggiori informazioni su come accedere alla cronologia degli ordini degli ultimi 3 mesi, leggi la nostra guida dedicata.

```
result = tradeAPI.get_orders_history_archive(
instType="SPOT"
)
print(result)
```

16. Come si può approfondire l'API OKX con un Jupyter Notebook?

Per ulteriori esempi, scarica l'intero Jupyter Notebook da qui.Qualsiasi domanda sulle nostre API può essere posta nel canale Telegram OKX di supporto per le API.