コード例 #1
0
        /// <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();
        }
コード例 #2
0
        /// <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();
        }
コード例 #3
0
        /// <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();
        }
コード例 #4
0
        /// <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();
        }
コード例 #5
0
        /// <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();
        }
コード例 #6
0
        /// <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();
        }
コード例 #7
0
        /// <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();
        }
コード例 #8
0
        /// <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();
        }
コード例 #9
0
        /// <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();
        }
コード例 #10
0
        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);
            }
        }
コード例 #11
0
        /// <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);
            }
        }
コード例 #12
0
        /// <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);
            }
        }
コード例 #13
0
        /// <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);
            }
        }
コード例 #14
0
        /// <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);
            }
        }
コード例 #15
0
        /// <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();
        }