Come posso fare trading spot con Jupyter Notebook?
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?
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):
3. Come posso creare chiavi API?
Dopo aver effettuato l'accesso a OKX, vai su Trading> Trading demo per creare chiavi API a scopo di test
Vai su Conto > APIper creare le chiavi API
Crea chiavi API per i diversi conti principali e secondari che possiedi
Seleziona Trading nella sezione Permessi per effettuare il trading con la chiave API
Adesso puoi accedere alla chiave API, alla chiave segreta e alla passphrase. Conservale in un luogo sicuro!
Esemplifica le variabili python per salvare i dettagli dell'API nel blocco note per un uso successivo
Python1 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:
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.
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.
1 import okx.Account as Account
2
3 # API initialization
4 apikey = "YOUR_API_KEY"
5 secretkey = "YOUR_SECRET_KEY"
6 passphrase = "YOUR_PASSPHRASE"
7
8 flag = "1" # Production trading: 0, Demo trading: 1
9
10 accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
11
12 result = accountAPI.get_instruments(instType="SPOT")
13 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
.
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
.
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.
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.
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.
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.
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
1 result = tradeAPI.get_order(instId="BTC-USDT", ordId="497819823594909696")
2 print(result)
11.2 Utilizzare clOrdId
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
.
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
.
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.
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.
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.
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.