/// <summary> /// req kline /// </summary> /// <param name="contractCode"></param> /// <param name="period"></param> /// <param name="callbackFun"></param> /// <param name="from"></param> /// <param name="to"></param> /// <param name="id"></param> public void ReqKLine(string contractCode, string period, _OnReqKLineResponse callbackFun, long from, long to, string id = WebSocketOp.DEFAULT_ID) { string ch = $"market.{contractCode}.kline.{period}"; WSReqData reqData = new WSReqData() { req = ch, id = id, from = from, to = to }; string sub_str = JsonConvert.SerializeObject(reqData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(ReqKLineResponse), true, this.host); wsop.Connect(); }
/// <summary> /// sub incrementa depth /// </summary> /// <param name="contractCode"></param> /// <param name="size"></param> /// <param name="callbackFun"></param> /// <param name="id"></param> public void SubIncrementalDepth(string contractCode, string size, _OnSubDepthResponse callbackFun, string id = WebSocketOp.DEFAULT_ID) { string ch = $"market.{contractCode}.depth.size_{size}.high_freq"; WSSubData subData = new WSSubData() { sub = ch, id = id, dataType = "incremental" }; string sub_str = JsonConvert.SerializeObject(subData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubDepthResponse), true, this.host); wsop.Connect(); }
/// <summary> /// req trade detail /// </summary> /// <param name="contractCode"></param> /// <param name="callbackFun"></param> /// <param name="size"></param> /// <param name="id"></param> public void ReqTradeDetail(string contractCode, _OnReqTradeDetailResponse callbackFun, int size = 50, string id = WebSocketOp.DEFAULT_ID) { string ch = $"market.{contractCode}.trade.detail"; WSReqData reqData = new WSReqData() { req = ch, size = size, id = id }; string sub_str = JsonConvert.SerializeObject(reqData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(ReqTradeDetailResponse), true, this.host); wsop.Connect(); }
/// <summary> /// sub kline /// </summary> /// <param name="contractCode"></param> /// <param name="period"></param> /// <param name="callbackFun"></param> /// <param name="id"></param> public void SubKLine(string contractCode, string period, _OnSubKLineResponse callbackFun, string id = WebSocketOp.DEFAULT_ID) { string ch = $"market.{contractCode}.kline.{period}"; WSSubData subData = new WSSubData() { sub = ch, id = id }; string sub_str = JsonConvert.SerializeObject(subData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubKLineResponse), true, this.host); wsop.Connect(); }
/// <summary> /// sub match orders /// </summary> /// <param name="mode"></param> /// <param name="callbackFun"></param> public void SubMatchOrders(string mode, _OnSubAccountResponse callbackFun) { string ch = $"accounts.update#{mode}"; WSActionData actionData = new WSActionData { action = "sub", ch = ch }; string sub_str = JsonConvert.SerializeObject(actionData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubAccountResponse), true, this.host, this.accessKey, this.secretKey, true); wsop.Connect(); }
/// <summary> /// sub heart beat /// </summary> /// <param name="callbackFun"></param> /// <param name="cid"></param> public void SubHeartBeat(_OnSubHeartBeatResponse callbackFun, string cid = WebSocketOp.DEFAULT_ID) { string ch = $"public.linear-swap.heartbeat"; WSOpData subData = new WSOpData() { op = "sub", topic = ch, cid = cid }; string sub_str = JsonConvert.SerializeObject(subData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubHeartBeatResponse), true, this.host); wsop.Connect(); }
/// <summary> /// sub trade clearing /// </summary> /// <param name="symbol"></param> /// <param name="mode"></param> /// <param name="callbackFun"></param> public void SubTradeClearing(string symbol, int mode, _OnSubTradeClearingResponse callbackFun) { string ch = $"trade.clearing#{symbol}#{mode}"; WSActionData actionData = new WSActionData { action = "sub", ch = ch }; string sub_str = JsonConvert.SerializeObject(actionData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubTradeClearingResponse), true, this.host, this.accessKey, this.secretKey, true); wsop.Connect(); }
/// <summary> /// sub orders /// </summary> /// <param name="symbol"></param> /// <param name="callbackFun"></param> public void SubOrders(string symbol, _OnSubOrdersResponse callbackFun) { string ch = $"orders#{symbol}"; WSActionData actionData = new WSActionData { action = "sub", ch = ch }; string sub_str = JsonConvert.SerializeObject(actionData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubOrdersResponse), true, this.host, this.accessKey, this.secretKey, true); wsop.Connect(); }
/// <summary> /// sub depth /// </summary> /// <param name="symbol"></param> /// <param name="type"></param> /// <param name="callbackFun"></param> public void SubDepth(string symbol, string type, _OnSubDepthResponse callbackFun) { string ch = $"market.{symbol}.depth.{type}"; WSSubData subData = new WSSubData() { sub = ch }; string sub_str = JsonConvert.SerializeObject(subData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubDepthResponse), true, this.host); wsop.Connect(); }
public void SubTest() { string sub_str = "{\"sub\": \"market.BTC-USDT.kline.1min\"}"; string path = "/linear-swap-ws"; string host = "api.hbdm.vn"; WebSocketOp wsop = new WebSocketOp(path, sub_str, null, null, true, host); wsop.Connect(); while (true) { Thread.Sleep(1); } }
/// <summary> /// cross margin sub orders /// </summary> /// <param name="contractCode"></param> /// <param name="callbackFun"></param> /// <param name="cid"></param> public void CrossSubOrders(string contractCode, _OnSubOrdersResponse callbackFun, string cid = WebSocketOp.DEFAULT_ID) { string ch = $"orders_cross.{contractCode}"; WSOpData opData = new WSOpData { op = "sub", topic = ch }; string sub_str = JsonConvert.SerializeObject(opData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubOrdersResponse), true, this.host, this.accessKey, this.secretKey); wsop.Connect(); if (!allWsop.ContainsKey(ch)) { allWsop.Add(ch, wsop); } }
/// <summary> /// cross margin sub accounts /// </summary> /// <param name="marginAccount"></param> /// <param name="callbackFun"></param> /// <param name="cid"></param> public void CrossSubAcounts(string marginAccount, _OnCrossSubAccountsResponse callbackFun, string cid = WebSocketOp.DEFAULT_ID) { string ch = $"accounts_cross.{marginAccount}"; WSOpData opData = new WSOpData { op = "sub", cid = cid, topic = ch }; string sub_str = JsonConvert.SerializeObject(opData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(CrossSubAccountsResponse), true, this.host, this.accessKey, this.secretKey); wsop.Connect(); if (!allWsop.ContainsKey(ch)) { allWsop.Add(ch, wsop); } }
/// <summary> /// sub contract info /// </summary> /// <param name="contractCode"></param> /// <param name="callbackFun"></param> /// <param name="cid"></param> /// <param name="businessType"></param> public void SubContractInfo(string contractCode, _OnSubContractInfoResponse callbackFun, string cid = WebSocketOp.DEFAULT_ID, string businessType = null) { string ch = $"public.{contractCode}.contract_info"; WSOpData opData = new WSOpData { op = "sub", cid = cid, topic = ch, businessType = businessType }; string sub_str = JsonConvert.SerializeObject(opData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubContractInfoResponse), true, this.host, this.accessKey, this.secretKey); wsop.Connect(); if (!allWsop.ContainsKey(ch)) { allWsop.Add(ch, wsop); } }
/// <summary> /// sub funding rate /// </summary> /// <param name="contractCode"></param> /// <param name="callbackFun"></param> /// <param name="cid"></param> /// <param name="tradePartition"></param> public void SubFundingRate(string contractCode, _OnSubFundingRateResponse callbackFun, string cid = WebSocketOp.DEFAULT_ID, string tradePartition = null) { string ch = $"public.{contractCode}.funding_rate"; WSOpData opData = new WSOpData { op = "sub", cid = cid, topic = ch, tradePartition = tradePartition }; string sub_str = JsonConvert.SerializeObject(opData); WebSocketOp wsop = new WebSocketOp(this.path, sub_str, callbackFun, typeof(SubFundingRateResponse), true, this.host, this.accessKey, this.secretKey); wsop.Connect(); if (!allWsop.ContainsKey(ch)) { allWsop.Add(ch, wsop); } }
/// <summary> /// sub depth /// </summary> /// <param name="symbol"></param> /// <param name="levels"></param> /// <param name="beRefresh"></param> /// <param name="callbackFun"></param> public void SubMBP(string symbol, int levels, bool beRefresh, _OnSubMBPResponse callbackFun) { string path = this.mbp; string ch = $"market.{symbol}.mbp.{levels}"; if (beRefresh) { path = this.path; ch = $"market.{symbol}.mbp.refresh.{levels}"; } WSSubData subData = new WSSubData() { sub = ch }; string sub_str = JsonConvert.SerializeObject(subData); WebSocketOp wsop = new WebSocketOp(path, sub_str, callbackFun, typeof(SubMBPResponse), true, this.host); wsop.Connect(); }