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

Veröffentlicht am 29. Sept. 2023Aktualisiert am 22. Mai 2024Lesezeit: 9 Min.149

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

1. 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 OS oder Linux ausführen. Dieses Tutorial bietet einen 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 zum 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 handeln

    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.

  • Trade

  • BlockTrading

  • Funding

  • Account

  • Convert

  • 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 jeden 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:

  • Einfaches Konto

  • Einzelwährungs-Margin-Konto

  • Multiwährungs-Margin-Konto

  • Portfolio-Margin-Konto

Um den Unterschied zwischen den verschiedenen Kontomodi zu verstehen und zu erfahren, wie Sie den Kontomodus über die Web-UI einrichten, lesen Sie bitte unseren speziellen Leitfaden.

Der Parameter tdMode bestimmt im Margin- oder Handelsmodus, wie Ihre Position gedeckt werden soll, und muss jedes Mal, wenn Sie eine neue Order platzieren, eingestellt werden.

Beim Spot-Handel im einfachen oder Einzelwährungs-Margin-Konto-Modus legen Sie folgenden Parameter fest: tdMode='cash'.

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 einfachen / Einzelwährungs-Margin-Modus platzieren?

10.1 Wie kann ich eine Limit-Order platzieren?

Für weitere Informationen wie Sie eine Limit-Order im einfachen oder Einzelwährungs-Margin-Modus platzieren, lesen Sie bitte unseren Leitfaden.

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?

Für weitere Informationen wie Sie eine Market-Order im einfachen oder Einzelwährungs-Margin-Modus platzieren, lesen Sie bitte unseren Leitfaden.

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

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

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 diese im OKX API-Support Telegram-Kanal stellen.