Wie kann ich den Spot-Handel mit dem Jupyter-Notebook durchführen?

Veröffentlicht am 29. Sept. 2023Aktualisiert am 18. Aug. 2024Lesezeit: 9 Min.276

Lernen Sie, wie Sie einfachen Spot-Handel betreiben können, indem Sie die Funktionen in der python-okx Bibliothek auf einem Jupyter Notebook aufrufen.

Wie kann ich Python-Code-Snippets auf einem Jupyter-Notebook ausführen?

CT-web-spottrading-howtoapi-1

Das Jupyter-Notebook ist ein äußerst leistungsstarkes und benutzerfreundliches Tool für die Pythonentwicklung und Datenanalyse. Sie können einen Jupyter-Notebook-Server unter Windows, Mac oder Linux ausführen. Dieses Tutorial bietet einen sehr ausführlichen Leitfaden, wie Sie Jupyter-Notebook starten und ausführen können.

2. Wie kann ich das python-okx Paket installieren?

Sobald Sie mit dem Betrieb eines Jupyter-Notebooks beginnen, können Sie das python-okx Paket installieren, indem Sie einfach pip install python-okx im Notebook oder in einem Terminal (oder per Befehlsaufforderung für Windows) ausführen:

CT-web-spottrading-howtoapi-2

3. Wie kann ich API-Schlüssel erstellen?

  1. Nach der Anmeldung bei OKX, gehen Sie zu Handeln> Demo-Handel, um API-Schlüssel für Testzwecke zu erstellen

    CT-web-trade-demo trading

    Demo-Handelsseite öffnen

  2. Gehen Sie zu Konto > API, um API-Schlüssel zu erstellen

    CT-web-profile-API

    Öffnen Sie die API zur Erstellung von API-Schlüsseln

  3. Erstellen Sie API-Schlüssel für die unterschiedlichen Master-/Unterkonten, die Sie möglicherweise bereits besitzen

    CT-web-API-create

    Wählen Sie „API-Schlüssel erstellen“

  4. Wählen Sie Handel in den Berechtigungen aus, um mit dem API-Schlüssel zu traden

    CT-web-API-trade

    Wählen Sie unter Berechtigungen Handel aus

  5. Sie haben jetzt Zugriff auf Ihren API-Schlüssel, Ihren geheimen Schlüssel und Ihre Passphrase. Bewahren Sie sie an einem sicheren Ort auf!

  6. Instanziieren Sie Python-Variablen, um Ihre API-Details zur späteren Verwendung im Notebook zu speichern

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

4. Wie kann ich OKX-Module importieren?

In python-okx gibt es mehrere Module, die auf unseren REST-API-Modulen basieren. Lesen Sie unseren Leitfaden So importieren Sie OKX-Module.

  • Handeln

  • BlockTrading

  • Funding

  • Konto

  • Konvertieren

  • Earning

  • SubAccount

  • MarketData

  • PublicData

  • TradingData

  • Status

  • NDBroker

  • FDBroker

Um das Handels-Modul zu importieren, können Sie Folgendes ausführen:

Python
1 import okx.Trade as Trade

Sie sind nun bereit, die umfangreichen Funktionen in python-okx zu nutzen!

5. Wie kann ich auf unsere Marktdaten zugreifen?

Erfahren Sie mehr unter So funktioniert der Zugriff auf unsere Marktdaten und schauen Sie sich den nachfolgenden Code an.

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. Wie kann ich die verfügbaren Handelspaare lesen?

Erfahren Sie mehr unter So lesen Sie unsere verfügbaren Handelspaare und schauen Sie sich den nachfolgenden Code an.

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. Wie kann ich meinen Kontostand lesen?

Für weitere Informationen darüber, wie Sie Ihren Kontostand lesen, lesen Sie bitte unseren Leitfaden.

Hinweis: für den Spot-Handel unter „cash“ tdMode müssen Sie hauptsächlich die Parameter cashBal, frozenBal für jede ccy unter details und den Parameter totalEq überprüfen.

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. Wie kann ich auf die vier unterschiedlichen Kontomodi zugreifen?

In unserem einheitlichen Kontosystem gibt es vier Kontomodi:

  • Spot-Modus

  • Spot- und Futures-Modus

  • Multi-Währungsmargin-Modus

  • Portfolio-Margin-Modus

Um den Unterschied zwischen den unterschiedlichen Kontomodi zu verstehen und zu erfahren wie Sie den Kontomodus über die Web-Benutzeroberfläche einrichten, lesen Sie bitte unseren zugehörigen Leitfaden.

Im Margin-Modus oder Handelsmodus bestimmt der Parameter tdMode , welche Margin Ihre Position haben soll, was Sie jedes Mal festlegen müssen, wenn Sie eine neue Order platzieren.

Für den Spot-Handel im Spot- oder Spot- und Futures-Modus legen Sie bitte tdMode='cash' fest.

Für den Spot-Handel im Multiwährungs- oder Portfolio-Margin-Kontomodus legen Sie bitte tdMode = 'cross' fest.

Nachfolgend finden Sie eine kurze Erklärung, wie Sie herausfinden könne, in welchem Modus ihr aktuelles Konto konfiguriert ist.

9. Wie kann ich herausfinden, als welcher Modus mein aktuelles Konto konfiguriert ist?

Weitere Informationen finden Sie unter So finden Sie heraus, unter welchem Modus Ihr aktuelles Konto konfiguriert ist und wenn Sie den Parameter acctLv eingeben.

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. Wie kann ich Spot-Orders im Spot / Spot- und Futures-Modus platzieren?

10.1 Wie kann ich eine Limit-Order platzieren?

Weitere Informationen finden Sie in unserem Leitfaden So platziert man eine Limit-Order im Spot- oder Spot- und Futures-Modus.

Hier ist ein Beispiel für den Kauf von 0,01 BTC zum Preis von 19000 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 Wie kann ich eine Market-Order platzieren?

Weitere Informationen finden Sie in unserem Leitfaden So platziert man eine Market-Order im Spot- oder Spot- und Futures-Modus.

Hier ist ein Beispiel für den Kauf von BTC im Wert von 100 USD zum aktuellen Marktpreis.

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 Wie kann ich während des Spot-Handels den Zielwährungsparameter tgtCcy verwenden?

Der Parameter tgtCcy im Spot-Handel bestimmt die Einheit des Größenparameters sz, d. h. entweder die Basiswährung oder die Notierungswährung des Handelspaars. Im Paar BTC-USDT ist beispielsweise die Basiswährung BTC und in der Notierungswährung USDT.

Standardmäßig ist tgtCcy = quote_ccy für Kauf-Order festgelegt, d.h. die von Ihnen angegebene sz bezieht sich auf die Notierungswährung. In der Zwischenzeit ist der Standardwert von tgtCcy für Verkaufs-Order als base_ccy festgelegt, was bedeutet, dass der von Ihnen angegebene sz sich auf die Basiswährung bezieht.

Im folgenden Beispiel wollen Sie eine Market-Order zum Kauf von BTC im Wert von 100 USD erteilen.

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 Wie kann ich den Client-Order-ID-Parameter clOrdId verwenden?

Wenn Sie eine Order platzieren, können Sie durch Angabe des Parameters clOrdId Ihre eigene Kunden-Order-ID spezifizieren, die später anstelle von ordId als Kennzeichnung genutzt wird, wenn Sie einen Orderstornierungs-, Änderungs- oder Rückgabe-Endpunkt aufrufen.

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. Wie erhalte ich Details zu einer bestimmten Order?

Für weitere Informationen darüber, wie Sie Informationen über eine bestimmte Order erhalten, lesen Sie bitte unseren Leitfaden.

11.1 Verwendung von ordId

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

11.2 Verwendung von clOrdId

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

12. Wie kann ich eine Order stornieren?

Für weitere Informationen darüber, wie Sie eine Order stornieren, lesen Sie bitte unseren Leitfaden.

Sie können auch clOrdId anstelle von ordId verwenden.

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

13. Wie kann ich eine Order ändern?

Für weitere Informationen darüber, wie Sie eine Order ändern, lesen Sie bitte unseren Leitfaden.

Sie können auch clOrdId anstelle von ordId verwenden.

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

14. Wie kann ich auf die Liste der offenen Orders zugreifen?

Weitere Informationen darüber, wie Sie auf die Liste der offenen Orders zugreifen können, finden Sie in unserem speziellen Leitfaden.

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

15. Wie kann ich auf den Order-Verlauf zugreifen?

15.1 Die letzten 7 Tage

Für weitere Informationen darüber, wie Sie Zugriff auf den Order-Verlauf der letzten 7 Tage erhalten, lesen Sie bitte unseren Leitfaden.

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

15.2 Die letzten 3 Monate

Für weitere Informationen darüber, wie Sie Zugriff auf den Order-Verlauf der letzten 3 Monate erhalten, lesen Sie bitte unseren Leitfaden.

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

16. Wie kann ich die OKX-API mit einem Jupyter Notebook weiter nutzen?

Für weitere Beispiele laden Sie das vollständige Jupyter-Notebook hier herunter.

Wenn Sie Fragen zu unseren APIs haben, können Sie unserer API-Community beitreten und sie in der Community stellen.