Jak mohu obchodovat s deriváty pomocí Jupyter Notebook?

Publikováno dne 28. 9. 2023Aktualizováno dne 8. 4. 2025Doba čtení: 10 min143

Zjistěte, jak můžete se stejnými nástroji provádět jednoduché obchodování s deriváty. Využijme komplexní funkce dostupné v 

na vyšší úrovni!

Typ derivátů

Na burze OKX lze obchodovat se třemi typy derivátů:

  • Vypršení platnosti

  • Perpetuální

  • Opce

Můžete přejít na stránku

a seznámit se s charakteristikou různých typů derivátů na OKX. V tomto výukovém kurzu použijeme jako příklad Perpetuální kontrakty.

Nejčastější dotazy

1. Jak mohu získat tržní data pomocí ?

Pro informaci můžete také nahradit instType za EXPIRY nebo OPCE.

Python
     import okx.MarketData as MarketData

   flag = "1"  # live trading: 0, demo trading: 1

   marketDataAPI = MarketData.MarketAPI(flag = flag)

   result = marketDataAPI.get_tickers(instType = "SWAP")
   print(result)

2 Jak mohu získat dostupné obchodovatelné páry pomocí ?

Stejným způsobem, vyberte instType, pro který chcete získat informace.

Python
import okx.PublicData as PublicData

if __name__ == '__main__':

    flag = "1"  # live trading: 0, demo trading: 1

    publicDataAPI = PublicData.PublicAPI(flag = flag)

    result = publicDataAPI.get_instruments(instType = "SWAP")
    print(result)

2.1 Vypočítejte nominální hodnotu derivátového kontraktu s parametrem instrumentu ctVal a ctMult

Pro výpočet pomyslné hodnoty derivátového kontraktu (tj. futures, perpetuálních swapů a opcí) potřebujete z parametrů instrumentu ctVal (hodnota kontraktu) a ctMult (multiplikátor kontraktu).

Pomyslnou hodnotu derivátového kontraktu lze vypočítat jako ctVal * ctMult (jednotka: ctValCcy);

Například z níže uvedených parametrů nástroje můžeme vypočítat pomyslnou hodnotu trvalého kontraktu LTC-USD takto: ctVal * ctMult (jednotka:ctValccy) = 10 * 1 USD = 10 USD.

JSON
        "instType":"SWAP",
        "instId":"LTC-USD-SWAP",
        "instFamily":"LTC-USD",
        "uly":"LTC-USD",
        "settleCcy":"LTC",
        "ctVal":"10",
        "ctMult":"1",
        "ctValCcy":"USD"

3. Jak mohu zkontrolovat zůstatek pomocí ?

Python
import okx.Account as Account
flag = "1"  # live trading:0, demo trading: 1

accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)

result = accountAPI.get_account_balance()
print(result)

4. Jaký je režim účtu a režim marže/obchodu, který je způsobilý pro obchodování s deriváty?

Jak jsme se zmínili v minulém tutoriálu, v jednotném účtu existují čtyři režimy účtu:

  • Spotový režim,

  • Režim spotů a futures,

  • Režim multiměnové marže,

  • Režim marže portfolia.

Pamatujte, že pouze poslední tři režimy marže, konkrétně: spot a futures, multiměnová maržemarže portfolia, jsou způsobilé k obchodování derivátů. Rozdíly mezi těmito čtyřmi režimy a způsob přepínání mezi nimi prostřednictvím webového uživatelského rozhraní naleznete v části

.

4.1 Získání aktuální konfigurace účtu z parametru acctLv v 

Ujistěte se, že jste v režimu správného účtu pro obchodování s deriváty.

Python
import okx.Account as Account

flag = "1"  # live trading: 0, demo trading: 1

accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)
result = accountAPI.get_account_config()
print(result)

if result['code'] == "0":
    acctLv = result["data"][0]["acctLv"]
    if acctLv == "1":
        print("Simple mode")
    elif acctLv == "2":
        print("Single-currency margin mode")
    elif acctLv == "3":
        print("Multi-currency margin mode")
    elif acctLv == "4":
        print("Portfolio margin mode")

5. Jak nastavit finanční páku pomocí ?

Jedním z důležitých parametrů, které musíme při obchodování s deriváty nastavit, je finanční páka.

Finanční páka umožňuje obchodníkům vstoupit do pozice, která má mnohem větší hodnotu, a to pouze s malou částkou peněz. Zisky nebo ztráty se tak výrazně zvětšují.

Obchodníci mohou při obchodování s deriváty na OKX využít až 125násobnou páku. Můžete si přečíst

pro různé úrovně finanční páky povolené v rámci různých úrovní pozic.

CT-web-spottrading-howtoapi-6

Níže naleznete informace o tom, co znamenají výše uvedené termíny:

  • Max. finanční páka: Maximální násobek vypůjčeného kapitálu, který zvyšuje potenciální výnos investice.

  • Počáteční pákový poměr (IMR): Marže potřebná pro držení současných pozic.

  • Udržovací pákový poměr (MMR): Minimální marže potřebná k udržení stávajících pozic. K likvidaci dojde, pokud vlastní kapitál účtu klesne pod udržovací marži.

Například když chcete obchodovat s 3000 perpetuálními kontrakty ETHUSDT, můžete využít finanční páku maximálně 75násobku kapitálu, který vlastníte. IMR = 1 / 75 = 1,3 %, a abyste se vyhnuli likvidaci, musíte udržovat MMR 0,8 % nebo vyšší.

Existuje 9 různých scénářů pro nastavení finanční páky prostřednictvím otevřeného rozhraní API OKX. Viz

pro různé případy.

U perpetuálních swapů existují 3 různé scénáře pro nastavení finanční páky:

  • Nastavení finanční páky pro instrumenty SWAP v rámci obchodování s křížovou marží na úrovni kontraktu.

  • Nastavení finanční páky pro instrumenty SWAPv režimu obchodování s izolovanou marží a v režimu pozice nákup/prodej na úrovni kontraktu.

  • Nastavení finanční páky pro instrumenty SWAPv režimu obchodování s izolovanou marží a v režimu pozice long/short na úrovni kontraktu a strany pozice.

Následující příklad ukazuje, jak nastavit finanční páku pro jeden kontrakt SWAP a stranu pozice ve srovnání se všemi kontrakty SWAP pro určitý podkladový nástroj.

Bash
# Set leverage to be 5x for all cross-margin BTC-USDT SWAP positions,
# by providing the SWAP instId
result = accountAPI.set_leverage(
    instId = "BTC-USDT-SWAP",
    lever = "5",
    mgnMode = "cross"
)
print(result)

# In buy/sell position mode, set leverage to be 5x 
# for all isolated-margin BTC-USDT SWAP positions
# by providing the SWAP instId
result = accountAPI.set_leverage(
    instId = "BTC-USDT-SWAP",
    lever = "5",
    mgnMode = "isolated"
)
print(result)

# In long/short position mode, set leverage to be 5x
# for an isolated-margin BTC-USDT-SWAP long position;
# This does NOT affect the leverage of the BTC-USDT-SWAP
# short positions
result = accountAPI.set_leverage(
    instId = "BTC-USDT-SWAP",
    lever = "5",
    posSide = "long",
    mgnMode = "isolated"
)
print(result)

Pamatujte, že parametr požadavku posSide je vyžadován pouze v případě, že je režim marže „s izolovanou marží“ v režimu pozice long/short (zadání objednávky) pro instrumenty EXPIRY / PERPETUÁLNÍ KONTRAKTY (viz scénáře 6 a 9 v 

).

6. Jak mohu zadávat objednávky v různých režimech pozice (zadání objednávky): long/short a nákup/prodej?

Při obchodování EXPIRY a PERPETUÁLNÍCH KONTRAKTŮ existují dva režimy pozice (zadání objednávky):long/shortnákup/prodej (net).

Režim pozice (zadání objednávky) můžete změnit mezi long/shortbuy/sell (net) prostřednictvím rozhraní API

:

SQL
result = accountAPI.set_position_mode(
    posMode = "long_short_mode"
)
print(result)

Popřípadě to můžete provést prostřednictvím Nastavení na webu, jak je uvedeno níže:

CT-web-derivativestrading-howtoapi-9

V režimu nákup/prodej (net) je pozice určitého kontraktu čistým množstvím vašich nákupních a prodejních obchodů. Když zadáváte objednávky přes

Nákup 100 swapových kontraktů BTC-USDT za cenu 19 000 USDT.

SQL
# limit order
result = tradeAPI.place_order(
    instId = "BTC-USDT-SWAP",
    tdMode = "isolated",
    side = "buy",
    posSide = "net",
    ordType = "limit",
    px = "19000",
    sz = "100"
)
print(result)

if result["code"] == "0":
    print("Successful order request,order_id = ",result["data"][0]["ordId"])
else:
    print("Unsuccessful order request,error_code = ",result["data"][0]["sCode"], ", Error_message = ", result["data"][0]["sMsg"])

6.2 Zadejte market prostřednictvím

Nákup 100 swapových kontraktů BTC-USDT za tržní cenu.

SQL
# market order
result = tradeAPI.place_order(
    instId = "BTC-USDT-SWAP",
    tdMode = "isolated",
    side = "buy",
    posSide = "net",
    ordType = "market",
    sz = "100"
)
print(result)

if result["code"] == "0":
    print("Successful order request,order_id = ",result["data"][0]["ordId"])
else:
    print("Unsuccessful order request,error_code = ",result["data"][0]["sCode"], ", Error_message = ", result["data"][0]["sMsg"])

7. Jak mohu získat podrobnosti/stav určité objednávky (viz )?

Kromě ordId můžete zadat také clOrdId a získat tak podrobnosti o objednávce.

SQL
result = tradeAPI.get_order(instId="BTC-USDT-SWAP", ordId="505073046126960640")
print(result)

8. Jak mohu zrušit objednávku prostřednictvím ?

Perl
You also use __clOrdId__ in place of __ordId__
result = tradeAPI.cancel_order(instId="BTC-USDT-SWAP", ordId="505073046126960640")
print(result)

9. Jak upravit objednávku prostřednictvím

Místo ordId můžete také použít clOrdId. Tento příklad ukazuje revizi nové velikosti.

SQL
result = tradeAPI.amend_order(
    instId = "BTC-USDT-SWAP", 
    ordId = "505073046126960640",
    newSz = "80"
)
print(result)

10. Jak mohu získat seznam open orders prostřednictvím ?

SQL
result = tradeAPI.get_order_list()
print(result)

11. Jak mohu získat historii objednávek prostřednictvím ?

SQL
# Get order history (last 7 days)
result = tradeAPI.get_orders_history(
    instType = "SWAP"
)
print(result)

# Get order history (last 3 months)
result = tradeAPI.get_orders_history_archive(
    instType = "SWAP"
)
print(result)

12. Jak mohu získat podrobnosti o transakcích prostřednictvím ?

SQL
# Get transaction details (last 3 days)
result = tradeAPI.get_fills()
print(result)

# Get transaction details (last 3 months)
result = tradeAPI.get_fills_history(
    instType = "SWAP"
)
print(result)

13. Jak mohu získat pozice prostřednictvím ?

Pokud je váš účet v režimu net, zobrazí se net pozice každého kontraktu; pokud je váš účet v režimu long/short, zobrazí se long nebo short pozice každého kontraktu zvlášť.

SQL
result = accountAPI.get_positions()
print(result)

Například můžete sledovat nerealizovaný zisk a ztrátu prostřednictvím parametru odezvy upl.

Další příklady

Pro další příklady si prosím stáhněte kompletní Jupyter Notebook

.

Pokud máte jakékoli dotazy k našim rozhraním API, můžete se připojit k 

a zeptat se v naší komunitě.