Hoe kan ik spothandelen met Jupyter Notebook?

Gepubliceerd op 29 sep 2023Geüpdatet op 18 aug 20249 min. leestijd276

Leer hoe je eenvoudig kunt spothandelen door de functies in de python-okx bibliotheek aan te roepen met een Jupyter Notebook.

1. Hoe kan ik Python-codefragmenten uitvoeren met een Jupyter Notebook?

CT-web-spottrading-howtoapi-1

Jupyter Notebook is een ongelooflijk krachtig en eenvoudig te gebruiken hulpmiddel voor Python-ontwikkeling en gegevensanalyse. Je kunt een Jupyter Notebook-server beheren op Windows, Mac OS of Linux. Deze tutorial geeft een uitgebreide handleiding over hoe je een Jupyter Notebook aan de praat krijgt.

2. Hoe kan ik het python-okx pakket installeren?

Zodra je een Jupyter Notebook start, kun je het python-okx pakket installeren door simpelweg het commando pip install python-okx uit te voeren in de notebook of in een terminal (of via de opdrachtprompt voor Windows):

CT-web-spottrading-howtoapi-2

3. Hoe kan ik API-sleutels maken?

  1. Ga na het aanmelden bij OKX naar Handelen> Demohandel om API-sleutels aan te maken voor testdoeleinden

    CT-web-trade-demo trading

    Open de pagina Demohandel

  2. Ga naar Account > API om API-sleutels aan te maken

    CT-web-profile-API

    Open API om API-sleutels te maken

  3. Maak API-sleutels voor de verschillende master/subaccounts die je hebt

    CT-web-API-create

    Selecteer API-sleutel maken

  4. Selecteer Handel in het scherm Rechten om te handelen met de API key

    CT-web-API-trade

    Selecteer Handel in Rechten

  5. Nu heb je toegang tot je API key, je Secret key en je wachtwoordzin. Bewaar ze op een veilige plek!

  6. Gebruik pythonvariabelen om je API-details op te slaan in de notebook voor later gebruik

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

4. Hoe kan ik OKX-modules importeren?

In python-okx zijn er verschillende modules gebaseerd op onze REST API modules. Lees onze handleiding op om te leren hoe je OKX-modules kunt importeren.

  • Handelen

  • BlockTrading

  • Financiering

  • Account

  • Omzetten

  • Earning

  • SubAccount

  • MarketData

  • PublicData

  • TradingData

  • Status

  • NDBroker

  • FDBroker

Om de module Trade te importeren, kun je het volgende uitvoeren:

Python
1 import okx.Trade as Trade

Nu ben je klaar om de uitgebreide mogelijkheden van python-okx te gebruiken!

5. Hoe krijg ik toegang tot marktgegevens?

Lees meer op hoe je toegang krijgt tot onze marktgegevens en raadpleeg de onderstaande code.

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. Hoe kan ik de beschikbare handelsparen lezen?

Lees meer op hoe je onze beschikbare handelsparen kunt lezen en raadpleeg de onderstaande code.

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. Hoe kan ik mijn accountsaldo lezen?

Lees voor meer informatie over hoe je je accountsaldo kunt lezen onze speciale handleiding.

Let op: voor spothandel moet je onder de "cash" tdMode vooral de parameters cashBal, frozenBal controleren voor elke ccy onder details, en de parameter 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. Hoe krijg ik toegang tot de vier verschillende accountmodi?

In ons uniforme accountsysteem zijn er vier accountmodi:

  • Spotmodus

  • Spot- en futuresmodus

  • Margemodus in meerdere valuta

  • Portfoliomargemodus.

Lees onze gids om het verschil te begrijpen tussen verschillende accountmodi en hoe je de accountmodus moet instellen via de web-UI.

In de margemodus of handelsmodus bepaalt de parameter tdMode de margevoorwaarden van je positie, wat je altijd moet instellen als je een nieuwe order plaatst.

Stel voor spothandel in de spotmodus of spot- en futuresmodus tdMode = 'cash'.

Stel tdMode = 'cross' in voor spothandel met de accountmodus marge in meerdere valuta of portfoliomarge.

Hieronder vind je een korte uitleg over hoe je erachter kunt komen in welke modus je huidige account is geconfigureerd.

9. Hoe kom ik erachter in welke modus mijn huidige account is geconfigureerd?

Lees onze gids voor meer informatie over hoe je erachter kunt komen op welke modus je huidige account is ingesteld en voer je de parameter acctLv in.

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. Hoe plaats ik spotorders in de spotmodus of spot- en futuresmodus?

10.1 Hoe kan ik een limietorder plaatsen?

Lees onze gids voor meer informatie over hoe je een limietorder plaatst in de spotmodus of spot- en futuresmodus.

Hier is een voorbeeld van het kopen van 0,01 BTC tegen de prijs van 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 Hoe kan ik een marktorder plaatsen?

Lees onze gids voor meer informatie over hoe je een marktorder plaatst in de spotmodus of spot- en futuresmodus.

Hier is een voorbeeld van het kopen van BTC die 100 USD waard is tegen de huidige marktprijs.

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 Hoe kan ik de doelvalutaparameter tgtCcy gebruiken tijdens spothandel?

Bij spothandel bepaalt de parameter tgtCcy de eenheid van de grootteparameter sz, die zowel de basisvaluta als de noteringsvaluta van het handelspaar kan zijn. In het paar BTC-USDT is de basisvaluta bijvoorbeeld BTC en de quotevaluta USDT.

Standaard is tgtCcy = quote_ccy voor kooporders, wat betekent dat de sz die je hebt opgegeven in termen van de noteringsvaluta is. Ondertussen is de standaardwaarde van tgtCcy voor verkooporders base_ccy, wat betekent dat de sz die je hebt opgegeven in termen van de basisvaluta is.

In het onderstaande voorbeeld ga je een marktorder plaatsen om BTC te kopen die 100 USD waard is.

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 Hoe kan ik de klantorder-ID parameter clOrdId gebruiken?

Wanneer je een order plaatst, kun je je eigen klantorder-ID opgeven door de parameter clOrdId te specificeren, die later kan worden gebruikt als identifier in plaats van ordId bij het aanroepen van een eindpunt voor het annuleren, wijzigen of ophalen van een order.

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. Hoe kan ik details over een bepaalde order ophalen?

Lees voor meer informatie over hoe je details over een bepaalde order kunt krijgen onze speciale handleiding.

11.1 Met ordId

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

11.2 Met clOrdId

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

12. Hoe kan ik een order annuleren?

Lees voor meer informatie over hoe je een order kunt annuleren onze speciale handleiding.

Je kunt ook clOrdId gebruiken in plaats van ordId.

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

13. Hoe kan ik een order wijzigen?

Lees voor meer informatie over hoe je een order kunt wijzigen onze speciale handleiding.

Je kunt ook clOrdId gebruiken in plaats van ordId.

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

14. Hoe krijg ik toegang tot de lijst met openstaande orders?

Lees voor meer informatie over hoe je toegang krijgt tot de lijst met openstaande orders onze speciale handleiding.

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

15. Hoe krijg ik toegang tot de ordergeschiedenis?

15.1 Voor de laatste 7 dagen

Lees voor meer informatie over hoe je toegang krijgt tot de ordergeschiedenis van de afgelopen 7 dagen onze speciale handleiding.

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

15.2 Voor de laatste 3 maanden

Lees voor meer informatie over hoe je toegang krijgt tot de ordergeschiedenis van de laatste 3 maanden onze speciale handleiding.

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

16. Hoe kan ik verder gaan met de OKX API met een Jupyter Notebook?

Download voor meer voorbeelden hier het volledige Jupyter Notebook.

Als je vragen hebt over onze API's, kun je lid worden van onze API-community en deze in de community stellen.