Jak mohu obchodovat s deriváty pomocí Jupyter Notebook?
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.
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.
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.
"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í ?
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že a marž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.
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.
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.
# 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/short a nákup/prodej (net).
Režim pozice (zadání objednávky) můžete změnit mezi long/short a buy/sell (net) prostřednictvím rozhraní API
: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:

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.
# 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.
# 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.
result = tradeAPI.get_order(instId="BTC-USDT-SWAP", ordId="505073046126960640")
print(result)
8. Jak mohu zrušit objednávku prostřednictvím ?
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.
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 ?
result = tradeAPI.get_order_list()
print(result)
11. Jak mohu získat historii objednávek prostřednictvím a ?
# 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 a ?
# 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ášť.
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ě.