WebSocket-kanalen zijn verdeeld in twee categorieën: openbare en privékanalen.
U kunt de volgende eigenschappen configureren in de eigenschap OKX.
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;
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.
|
| 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;
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;
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 crossNiet-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 modusVereist in de long/short modus, en kan alleen long of short zijn.Alleen van toepassing op FUTURES/SWAP. |
| > ordType | String | Ja | Ordertypemarket: marktorderlimit: limietorderpost_only: Alleen-post-orderfok: Fill-or-kill-orderioc: Immediate-or-cancel-orderoptimal_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 modusAlleen van toepassing op Single-currency margin en Multi-currency margin |
| > tgtCcy | String | Nee | Hoeveelheidstypebase_ccy: Basisvaluta ,quote_ccy: NoteringsvalutaAlleen van toepassing op SPOT verhandeld met marktorderStandaard 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);
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. |