コード例 #1
0
        public static List <Candle> GetCandleCollection(Client client, string security, string need_interval_for_query, int from)
        {
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("symbol", security);
            parameters.Add("interval", need_interval_for_query);
            parameters.Add("limit", "200");
            parameters.Add("from", from.ToString());

            object account_response = new object();

            if (client.FuturesMode == "Inverse")
            {
                account_response = BybitRestRequestBuilder.CreatePrivateGetQuery(client, "/v2/public/kline/list", parameters);
            }

            if (client.FuturesMode == "USDT")
            {
                account_response = BybitRestRequestBuilder.CreatePrivateGetQuery(client, "/public/linear/kline", parameters);
            }

            string isSuccessfull = ((JToken)account_response).SelectToken("ret_msg").Value <string>();

            if (isSuccessfull == "OK")
            {
                var candles = BybitCandlesCreator.Create(((JToken)account_response).SelectToken("result"));

                return(candles);
            }

            return(null);
        }
コード例 #2
0
        public static List <Trade> GetTradesCollection(Client client, string security, int limit, int from_id)
        {
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("symbol", security);
            parameters.Add("limit", limit.ToString());

            if (from_id != -1)
            {
                parameters.Add("from", from_id.ToString());
            }

            JToken account_response = BybitRestRequestBuilder.CreatePrivateGetQuery(client, "/v2/public/trading-records", parameters);

            string isSuccessfull = account_response.SelectToken("ret_msg").Value <string>();

            if (isSuccessfull == "OK")
            {
                var trades = BybitTradesCreator.Create(account_response.SelectToken("result"));

                return(trades);
            }

            return(null);
        }
コード例 #3
0
        public override void GetPortfolios()
        {
            List <Portfolio> portfolios = new List <Portfolio>();

            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("api_key", client.ApiKey);

            JToken account_response = BybitRestRequestBuilder.CreatePrivateGetQuery(client, "/v2/private/wallet/balance", parameters);

            string isSuccessfull = account_response.SelectToken("ret_msg").Value <string>();

            if (isSuccessfull == "OK")
            {
                portfolios.Add(BybitPortfolioCreator.Create(account_response.SelectToken("result"), "BybitPortfolio"));
            }
            else
            {
                SendLogMessage($"Can not get portfolios info.", LogMessageType.Error);
                portfolios.Add(BybitPortfolioCreator.Create("undefined"));
            }

            OnPortfolioEvent(portfolios);
        } // both futures
コード例 #4
0
        } // both

        public override void GetOrdersState(List <Order> orders)
        {
            foreach (Order order in orders)
            {
                Dictionary <string, string> parameters = new Dictionary <string, string>();

                parameters.Add("api_key", client.ApiKey);
                parameters.Add("symbol", order.SecurityNameCode);
                parameters.Add("order_id", order.NumberMarket);

                JToken account_response;
                if (futures_type == "Inverse Perpetual")
                {
                    account_response = BybitRestRequestBuilder.CreatePrivateGetQuery(client, "/v2/private/order", parameters); ///private/linear/order/search
                }
                else
                {
                    account_response = BybitRestRequestBuilder.CreatePrivateGetQuery(client, "/private/linear/order/search", parameters);
                }

                string isSuccessfull = account_response.SelectToken("ret_msg").Value <string>();

                if (isSuccessfull == "OK")
                {
                    string state = account_response.SelectToken("result").SelectToken("order_status").Value <string>();

                    switch (state)
                    {
                    case "Created":
                        order.State = OrderStateType.Activ;
                        break;

                    case "Rejected":
                        order.State = OrderStateType.Fail;
                        break;

                    case "New":
                        order.State = OrderStateType.Activ;
                        break;

                    case "PartiallyFilled":
                        order.State = OrderStateType.Patrial;
                        break;

                    case "Filled":
                        order.State = OrderStateType.Done;
                        break;

                    case "Cancelled":
                        order.State = OrderStateType.Cancel;
                        break;

                    case "PendingCancel":
                        order.State = OrderStateType.Cancel;
                        break;

                    default:
                        order.State = OrderStateType.None;
                        break;
                    }
                }
            }
        } // both