Come posso fare trading spot con Jupyter Notebook?

Data di pubblicazione: 29 set 2023Data di aggiornamento: 18 ago 20249 minuti di lettura241

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

1. Come posso eseguire snippet di codice Python su un Jupyter Notebook?

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 ottenere un Jupyter Notebook attivo e in esecuzione.

2. Come posso installare il pacchetto python-okx?

Una volta avviato un Jupyter Notebook, 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 posso creare chiavi API?

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

    CT-web-trade-demo trading

    Apertura della pagina Trading demo

  2. Vai su Conto > APIper creare le chiavi API

    CT-web-profile-API

    Apertura di 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

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

4. Come posso importare i moduli OKX?

In python-okx ci sono diversi moduli basati sui nostri moduli API REST. Consulta 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:

Python
1 import okx.Trade as Trade

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

5. Come posso accedere ai nostri dati di mercato?

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

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

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

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

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. Come posso accedere alle quattro diverse modalità di conto?

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

  • Modalità spot

  • Modalità spot e futures

  • Modalità di margine multivaluta

  • Modalità margine di portafoglio

Per capire la differenza tra diverse modalità di conto e come configurare la modalità di conto tramite l'interfaccia utente Web, consulta la nostra guida dedicata.

Nella modalità margine o modalità di trading, il parametro tdMode determina il modo in cui la tua posizione verrà margine, che devi impostare ogni volta che effettui un nuovo ordine.

Per fare trading di spot in modalità spot o spot e futures, 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 posso capire in che modalità è configurato il mio conto attuale?

Per maggiori informazioni su come capire in che modalità è configurato il conto corrente, consulta la nostra guida dedicata e inserisci il parametro 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. Come posso effettuare ordini spot in modalità Spot/Spot e futures?

10.1 Come faccio a inserire un ordine limite?

Per ulteriori informazioni su come effettuare un ordine limite in modalità spot o futures, consulta la nostra guida dedicata.

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

Per ulteriori informazioni su come effettuare un ordine di mercato in modalità spot o futures, consulta la nostra guida dedicata.

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

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

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

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. Come posso ottenere dettagli su un determinato ordine?

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

11.1 Utilizzare ordId

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

11.2 Utilizzare clOrdId

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

12. Come posso annullare un ordine?

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

Puoi anche usare clOrdId invece di ordId.

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

13. Come posso modificare un ordine?

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

Puoi anche usare clOrdId invece di ordId.

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

14. Come posso accedere all'elenco degli ordini aperti?

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

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

15. Come posso 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, consulta la nostra guida dedicata.

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

15.2 Negli ultimi 3 mesi

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

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

16 Come posso approfondire l'API di OKX con un Jupyter Notebook?

Per ulteriori esempi, scarica l'intero Jupyter Notebook da qui.

In caso di domande sulle nostre API, puoi iscriverti alla nostra community API e aumentarla nella community.