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); }
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); }
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
} // 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