API OKX

OKX

 

Ondersteunde API's

 

Eigenschappen

WebSocket-kanalen zijn verdeeld in twee categorieën: openbare en privékanalen.

 

 

U kunt de volgende eigenschappen configureren in de eigenschap OKX.

 

 

Verbinding

Wanneer de client succesvol verbinding maakt met OKX-servers, wordt het evenement OnOKXConnect geactiveerd. Als er een fout optreedt bij het verbinden, wordt het evenement OnOKXError geactiveerd met de foutdetails.

Nadat de gebeurtenis OnOKXConnect wordt geactiveerd, kunt u beginnen met het verzenden en ontvangen van berichten van OKX-servers.

 


oClient := TsgcWebSocketClient.Create(nil);
oOKX := TsgcWSAPI_OKX.Create(nil);
oOKX.Client := oClient;
oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oOKX.OKX.Passphrase := 'secret_passphrase';
oClient.Active := True;
procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string);
begin
  DoLog('#OKX Connected');
end;
procedure OnOKXError(Sender: TObject; aCode, aMessage, aRawMessage: string);
begin
  DoLog('#error: ' + aMessage);
end;

Openbare kanalen

De websocket-feed biedt realtime updates van marktgegevens voor orders en trades. De websocket-feed heeft enkele openbare kanalen zoals ticker, trades...

 

U kunt zich abonneren op de volgende openbare kanalen:

 

Methode Beschrijving
SubscribeInstruments De volledige instrumentenlijst wordt voor het eerst gepusht na het abonnement. Vervolgens worden instrumenten gepusht als er een wijziging is in de toestand van het instrument (zoals levering van FUTURES, uitoefening van OPTION, notering van nieuwe contracten/handelsparen, handelsschorsing, enz.).
SubscribeTicker Haal de laatste handelsprijs, biedprijs, vraagprijs en 24-uurs handelsvolume op van instrumenten. Gegevens worden elke 100 ms gepushed.
SubscribeOpenInterest Haal de open interest op. Gegevens worden elke 3 seconden gepusht.
SubscribeCandlestick Haal de kandelaargegevens op van een instrument. De pushfrequentie is het snelste interval: 500 ms pushes de gegevens.
SubscribeTrades Haal de gegevens van de recente trades op. Gegevens worden gepusht zodra er een trade is.
SubscribeEstimatedPrices

Haal de geschatte leverings-/uitoefeningsprijs op van FUTURES-contracten en OPTION.

Alleen de geschatte leverings-/uitoefeningsprijs wordt een uur vóór levering/uitoefening gepushed, en wordt gepushed als er een prijswijziging is.

SubscribeMarkPrice Haal de mark price op. Gegevens worden elke 200 ms gepusht wanneer de mark price verandert, en worden elke 10 seconden gepusht wanneer de mark price niet verandert.
SubscribeMarkPriceCandlestick Haal de kandelaargegevens op van de marktprijs. Gegevens worden elke 500 ms gepusht.
SubscribePriceLimit De maximale koopprijs en minimale verkoopprijs van het instrument ophalen. Gegevens worden elke 5 seconden gepusht wanneer er wijzigingen zijn in de limieten; bij geen wijzigingen worden er geen gegevens gepusht.
SubscribeOrderBook

Orderboekgegevens ophalen.

Gebruik books voor 400 diepteniveaus, book5 voor 5 diepteniveaus, bbo-tbt tick-by-tick 1 diepteniveau, books50-l2-tbt tick-by-tick 50 diepteniveaus, en books-l2-tbt voor tick-by-tick 400 diepteniveaus.

  • books: 400 depth levels worden gepusht in de initiële volledige snapshot. Incrementele gegevens worden elke 100 ms gepusht wanneer er een wijziging in het order book is.
  • books5: 5 depth levels worden elke keer gepusht. Gegevens worden elke 100 ms gepusht wanneer er een wijziging in het order book is.
  • bbo-tbt: 1 depth level wordt elke keer gepusht. Gegevens worden elke 10 ms gepusht wanneer er een wijziging in het order book is.
  • books-l2-tbt: 400 depth levels worden gepusht in de initiële volledige snapshot. Incrementele gegevens worden elke 10 ms gepusht wanneer er een wijziging in het order book is.
  • books50-l2-tbt: 50 depth levels worden gepusht in de initiële volledige snapshot. Incrementele gegevens worden elke 10 ms gepusht wanneer er een wijziging in het order book is. Als asks of bids een lege array is, betekent dit dat er wijzigingen zijn in 400 depth in plaats van 50 depth. Als u de order-bookgegevens lokaal bijhoudt, negeer dan lege asks en bids.
SubscribeOptionSummary Gedetailleerde prijsinformatie ophalen van alle OPTION-contracten. Gegevens worden in één keer verzonden.
SubscribeFundingRate Financieringspercentage ophalen. Gegevens worden elke 30 tot 90 seconden gepusht.
SubscribeIndexCandlestick Haal de candlestick-gegevens van de index op. Gegevens worden elke 500 ms gepusht.
SubscribeIndexTicker Indexticker-gegevens ophalen
SubscribeStatus Haal de status op van systeemonderhoud en push wanneer de systeemonderhoudsstatus verandert. Eerste abonnement: "Duw de meest recente gewijzigde gegevens"; elke keer dat er een statuswijziging is, duw de gewijzigde inhoud
SubscribePublicStructureBlockTrades Gegevens worden gepusht wanneer er een bloktransactie plaatsvindt.
SubscribeBlockTickers Haal het meest recente block trading-volume van de afgelopen 24 uur op. De gegevens worden gepusht wanneer ze worden getriggerd door een transactie-uitvoeringsevent. Daarnaast worden ze ook gepusht met een interval van 5 minuten, afhankelijk van de granulariteit van het abonnement.
SubscribeAllTrades Alle handelsgegevens ophalen. Gegevens worden gepusht wanneer er een handel plaatsvindt.
SubscribeLiquidationOrders Liquidatieorders ophalen. Gegevens worden gepusht wanneer er een liquidatieorder is.
SubscribeADLWarning ADL-waarschuwingsgegevens ophalen. Gegevens worden gepusht wanneer het auto-deleveraging-risico toeneemt.
SubscribeEconomicCalendar De economische kalendergebeurtenissen ophalen. Gegevens worden gepusht wanneer er updates zijn van economische gebeurtenissen.
SubscribePublicBlockTrades Openbare bloktransacties ophalen. Gegevens worden gepusht telkens wanneer er een bloktransactie plaatsvindt.
SubscribeOptionTrades Haal optiehandelsgegevens op. Gegevens worden gepusht telkens wanneer er een optietransactie plaatsvindt.
SubscribeCallAuctionDetails Haal de details van de call-veiling op. Gegevens worden gepusht wanneer er updates zijn van call-veilinginformatie.

 


oClient := TsgcWebSocketClient.Create(nil);
oOKX := TsgcWSAPI_OKX.Create(nil);
oOKX.Client := oClient;
oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oOKX.OKX.Passphrase := 'secret_passphrase';
oClient.Active := True;
procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string);
begin
  oOKX.SubscribeInstruments(okxitFutures);
end;

Privékanalen

Inclusief accountkanaal, orderkanaal en positiekanaal, enz. -- vereisen inloggen.

 

U kunt zich abonneren op de volgende Privékanalen:

 

Methode Beschrijving
SubscribeAccount Accountinformatie ophalen. Gegevens worden gepusht wanneer er gebeurtenissen zijn zoals het plaatsen van een order, het annuleren van een order, uitvoering van een transactie, enz. Het wordt ook periodiek gepusht op basis van de abonnementsgranulariteit.
SubscribePositions Positie-informatie ophalen. Een eerste momentopname wordt gepusht op basis van de abonnementsdetailgraad. Gegevens worden gepusht wanneer ze worden geactiveerd door gebeurtenissen zoals het plaatsen/annuleren van orders, en worden ook regelmatig gepusht op basis van de abonnementsdetailgraad.
SubscribeBalanceAndPosition Retrieve account balance and position information. Data will be pushed when triggered by events dergelijke as filled order, funding transfer.
SubscribeOrders Orderinformatie ophalen. Gegevens worden niet gepusht wanneer voor het eerst geabonneerd. Gegevens worden alleen gepusht wanneer geactiveerd door gebeurtenissen zoals het plaatsen/annuleren van een order.
SubscribeOrdersAlgo Haal algo-orders op (inclusief triggerorder, oco-order, voorwaardelijke order). Gegevens worden niet gepusht bij het eerste abonnement. Gegevens worden alleen gepusht wanneer ze worden geactiveerd door gebeurtenissen zoals het plaatsen/annuleren van een order.
SubscribeAdvanceAlgo

Haal geavanceerde algo-orders op (inclusief Iceberg-order, TWAP-order, Trailing-order). Gegevens worden gepusht bij het eerste abonnement. Gegevens worden gepusht wanneer deze worden geactiveerd door evenementen zoals het plaatsen/annuleren van een order.

SubscribePositionRisk Dit pushkanaal wordt alleen gebruikt als risicomelding en wordt niet aanbevolen als risicobeoordeling voor strategische handel.
In het geval dat de markt niet heftig beweegt, bestaat de mogelijkheid dat de positie gelijktijdig is geliquideerd op het moment dat dit bericht wordt gepusht.
SubscribeAccountGreeks Haal de griekse accountinformatie op. Gegevens worden gepusht wanneer geactiveerd door gebeurtenissen zoals het verhogen/verlagen van posities of het kassaldo in het account, en worden ook regelmatig gepusht op basis van de abonnementsgranulariteit.
SubscribeRfqs Haal de RFQ's op.
SubscribeQuotes

Haal de offertes op.

SubscribePrivateStructureBlockTrades Haal Structure Block Trades op.
SubscribeSpotGridAlgoOrders Spot-grid-algo-orders ophalen. Gegevens worden gepushed bij eerste abonnement. Gegevens worden gepushed wanneer geactiveerd door evenementen zoals het plaatsen/annuleren van een order.
SubscribeContactGridAlgoOrders Haal contractgrid-algoorders op. Gegevens worden gepusht bij eerste abonnement. Gegevens worden gepusht wanneer geactiveerd door gebeurtenissen zoals het plaatsen/annuleren van een order.
SubscribeGridPositions Haal grid-posities op. Gegevens worden gepusht bij het eerste abonnement. Gegevens worden gepusht wanneer ze worden geactiveerd door gebeurtenissen zoals het plaatsen/annuleren van een order.
SubscribeGridSubOrders Haal grid-suborders op. Gegevens worden gepusht bij het eerste abonnement. Gegevens worden gepusht wanneer ze worden geactiveerd door gebeurtenissen zoals het plaatsen van een order.
SubscribeFills Haal gevulde ordergegevens op. Gegevens worden gepusht wanneer een order is gevuld.
SubscribeDepositInfo Stortingsinformatie ophalen. Gegevens worden gepusht wanneer er een statusupdate van een storting is.
SubscribeWithdrawalInfo Opnaamgegevens ophalen. Gegevens worden gepusht wanneer er een statusupdate voor een opname is.

oClient := TsgcWebSocketClient.Create(nil);
oOKX := TsgcWSAPI_OKX.Create(nil);
oOKX.Client := oClient;
oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oOKX.OKX.Passphrase := 'secret_passphrase';
oClient.Active := True;
procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string);
begin
  oOKX.SubscribeOrders(okxitFutures, 'BTC-USD', 'BTC-USD-200329');
end;

 

Handel

De WebSocket-handel vereist Authenticatie.

 

U kunt alleen een order plaatsen als u voldoende saldo hebt. Hieronder vindt u een tabel met de verzoekparameters:

 

Parameter Type Vereist Beschrijving
id String Ja Unieke identificatie van het bericht
Verstrekt door de client. Dit wordt in het antwoordbericht geretourneerd om het bijbehorende verzoek te identificeren.
Een combinatie van hoofdlettergevoelige alfanumerieke tekens, alle cijfers, of alle letters van maximaal 32 tekens.
> instId String Ja Instrument ID,e.g. BTC-USD-190927-5000-C
> tdMode String Ja Handelsmodus
Margemodus isolated cross
Niet-margemodus cash
> ccy String Nee Marginvaluta
Alleen van toepassing op cross MARGIN orders in Single-currency margin.
> clOrdId String Nee Door de client opgegeven order-ID
Een combinatie van hoofdlettergevoelige alfanumerieke tekens, alleen cijfers of alleen letters van maximaal 32 tekens.
> tag String Nee Ordertag
Een combinatie van hoofdlettergevoelige alfanumerieke tekens, alleen cijfers of alleen letters van maximaal 16 tekens.
> side String Ja Orderkant, buy sell
> posSide String Optioneel Positiezijde
Standaard is net in de net modus
Vereist in de long/short modus, en kan alleen long of short zijn.
Alleen van toepassing op FUTURES/SWAP.
> ordType String Ja Ordertype
market: marktorder
limit: limietorder
post_only: Alleen-post-order
fok: Fill-or-kill-order
ioc: Immediate-or-cancel-order
optimal_limit_ioc :Marktorder met immediate-or-cancel-order
> sz String Ja Te kopen of verkopen hoeveelheid.
> px String Optioneel Prijs
Alleen van toepassing op limit,post_only,fok,ioc orders.
> reduceOnly Boolean Nee Of de positie alleen moet worden verkleind of niet, true false, de standaard is false.
Alleen van toepassing op MARGIN orders en FUTURES/SWAP orders in net modus
Alleen van toepassing op Single-currency margin en Multi-currency margin
> tgtCcy String Nee Hoeveelheidstype
base_ccy: Basisvaluta ,quote_ccy: Noteringsvaluta
Alleen van toepassing op SPOT verhandeld met marktorder
Standaard is quote_ccy voor kopen, base_ccy voor verkopen
> banAmend Boolean Nee Of het wijzigen van een spot-order al dan niet wordt verboden, true of false, de standaard is false.
Het zal niet lukken om orders te plaatsen als het saldo onvoldoende is wanneer banAmend true is. Alleen van toepassing op SPOT market order

 

 

Voorbeeld van orderplaatsing

 

U kunt een order alleen plaatsen als u voldoende saldo heeft.


// Place Martket Order
TsgcWSAPI_OKX1.PlaceMarketOrder(okxosBuy, 'ETH-BTC', 1);
// Place Limit Order
TsgcWSAPI_OKX1.PlaceLimitOrder(okxosBuy, 'ETH-BTC', 1, 0.25);

 

Voorbeeld order annuleren

 

Annuleer een onvolledige order


TsgcWSAPI_OKX1.CancelOrder('ETH-BTC', '457589362405027840');

 

Order wijzigen

 

Een onvolledige order wijzigen.


TsgcWSAPI_OKX1.AmendOrder('ETH-BTC', '457589362405027840', '', 2);

Batch handelsbewerkingen

De WebSocket Trade API ondersteunt ook batchbewerkingen voor het tegelijkertijd plaatsen, annuleren en wijzigen van meerdere orders. Deze bewerkingen vereisen Authentication.

Methode Beschrijving
BatchPlaceOrders Plaats meerdere orders in één verzoek. Maximaal 20 orders kunnen tegelijkertijd worden geplaatst.
BatchCancelOrders Annuleer meerdere orders in één verzoek. Er kunnen maximaal 20 orders tegelijk worden geannuleerd.
BatchAmendOrders Wijzig meerdere onvolledige orders in één aanvraag. Er kunnen maximaal 20 orders tegelijk worden gewijzigd.
MassCancelOrders Annuleer alle openstaande orders massaal voor een specifiek instrumenttype.