//Получить имеющиеся валюты на бирже public static async Task <IList <string> > GetCurrencyAsync(ExmoApi api) { api = api ?? (new ExmoApi("", "")); var jsonCurrency = await api.ApiQueryAsync("currency", new Dictionary <string, string>()); var parserStrings = jsonCurrency.ToString() .Replace("[", "") .Replace("]", "") .Replace("\"", "") .Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); return(CurrencyList = parserStrings.Cast <string>().ToList()); }
private async void MainPage_Loaded(object sender, RoutedEventArgs e) { var api = new ExmoApi(); // var cur = await api.GetCurrencies(); // var paits = await api.GetPairSettings(); // var ticker = await api.GetTicker(); // var ordersBook = await api.OrderBook(null, "BTC_USD"); // var trades = await api.Trades("BTC_USD"); // await api.ChartData("BTC_USD"); // LoadChartContents(); }
public async Task RefreshTrades(CancellationToken token, params string[] pairs) { var api = new ExmoApi(); var result = await api.UserTrades(100, 0, token, pairs).ConfigureAwait(false); await RunOn.ApplicationViewAsync( () => { foreach (var resultTrade in result) { if (!this.UserTrades.ContainsKey(resultTrade.Key)) { this.UserTrades.Add( resultTrade.Key, new UserTradesViewModel { Updated = DateTime.Now, CurrencyPair = resultTrade.Key, Trades = new ObservableCollection <UserTradeItem>(resultTrade.Value) }); } else { for (var i = resultTrade.Value.Length - 1; i <= 0; i--) { if (this.UserTrades[resultTrade.Key] .Trades.Any(p => p.TradeId != resultTrade.Value[i].TradeId)) { continue; } this.UserTrades[resultTrade.Key].Trades.Insert(0, resultTrade.Value[i]); } this.UserTrades[resultTrade.Key].Updated = DateTime.Now; } } }, CoreDispatcherPriority.Normal); }
//Получить имеющиеся валютные пары public static async Task <IList <string> > GetCurrencyPairListAsync(ExmoApi api) { api = api ?? (new ExmoApi("", "")); var jsonPairSettings = await api.ApiQueryAsync("pair_settings", new Dictionary <string, string>()); var objPairSettings = JObject.Parse(jsonPairSettings.ToString()); var tempReplace = objPairSettings.ToString() .Replace("{", "") .Replace("}", "") .Replace("\"", "") .Replace(":", "") .Replace("min_quantity", "") .Replace("max_quantity", "") .Replace("min_price", "") .Replace("max_price", "") .Replace("max_amount", "") .Replace("min_amount", "") .Replace(".", " ").Replace(",", " "); var tempArray = tempReplace.ToCharArray().Where(n => !char.IsDigit(n)).ToArray(); var resultString = (new string(tempArray)).Replace(System.Environment.NewLine, "") .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); return(CurrencyPairList = resultString.ToList()); }
static async Task Main(string[] args) { /***********************/ /********Example********/ /***********************/ /*Public API*/ var apiKey = new ExmoApi("K", "S"); string tradeCouples = "LTC_RUB"; int? limit = 10; ///<summary>trades /// <remarks>Список сделок по валютной паре</remarks> /// </summary> IHelperPublicAPI <CTrades> testTradesApi = new CHelperPublicAPI <CTrades>(); await testTradesApi.GetResultAsync("trades", null, tradeCouples, limit); //testTradesApiResult.Wait(); Console.WriteLine($"Список сделок по валютной паре {tradeCouples}:"); foreach (var tmp in testTradesApi.ResultList) { Console.WriteLine($"{tmp.TradeId} {tmp.Type} {tmp.Price} {tmp.Quantity} {tmp.Amount} {(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(tmp.Date)}"); } ///<summary>order_book /// <remarks>Книга ордеров по валютной паре</remarks>> /// </summary> IHelperPublicAPI <COrderBook> testOrderBookApi = new CHelperPublicAPI <COrderBook>(); await testOrderBookApi.GetResultAsync("order_book", null, tradeCouples, limit); //testOrderBookApiTask.Wait(); Console.WriteLine("\nКнига ордеров по валютной паре:"); Console.WriteLine($"{testOrderBookApi.ResultMetod.AskQuantity} {testOrderBookApi.ResultMetod.AskAmount} {testOrderBookApi.ResultMetod.AskTop}, {testOrderBookApi.ResultMetod.BidQuantity}, " + $"{testOrderBookApi.ResultMetod.BidAmount}, {testOrderBookApi.ResultMetod.BidTop}"); Console.WriteLine("\nСписок ордеров на покупку:"); foreach (var i in testOrderBookApi.ResultMetod.Ask) { Console.WriteLine($"{i[0]}, {i[1]}, {i[2]}"); } Console.WriteLine("\nСписок ордеров на продажу:"); foreach (var i in testOrderBookApi.ResultMetod.Bid) { Console.WriteLine($"{i[0]}, {i[1]}, {i[2]}"); } ///<summary>ticker /// <remarks>Cтатистика цен и объемов торгов по валютным парам</remarks> /// </summary> IHelperPublicAPI <CTicker> testTickerApi = new CHelperPublicAPI <CTicker>(); await testTickerApi.GetResultAsync("ticker", null, tradeCouples); //testTickerApiTask.Wait(); Console.WriteLine($"\nCтатистика цен и объемов торгов по валютной паре {tradeCouples}:"); Console.WriteLine($"{testTickerApi.ResultMetod.High}, {testTickerApi.ResultMetod.Low}, {testTickerApi.ResultMetod.Avg}, " + $"{testTickerApi.ResultMetod.Vol}, {testTickerApi.ResultMetod.VolCurr}, {testTickerApi.ResultMetod.LastTrade}, " + $"{testTickerApi.ResultMetod.BuyPrice}, {testTickerApi.ResultMetod.SellPrice}, " + $"{(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(testTickerApi.ResultMetod.Updated)}"); ///<summary>pair_settings /// <remarks>Настройки валютных пар</remarks> /// </summary> IHelperPublicAPI <CPairSettings> testPairSettingApi = new CHelperPublicAPI <CPairSettings>(); await testPairSettingApi.GetResultAsync("pair_settings", null, tradeCouples); //testPairSettingApiTask.Wait(); Console.WriteLine($"\nНастройки валютной пары {tradeCouples}:"); Console.WriteLine($"{testPairSettingApi.ResultMetod.MinQuantity}, {testPairSettingApi.ResultMetod.MaxQuantity} " + $"{testPairSettingApi.ResultMetod.MinPrice}, {testPairSettingApi.ResultMetod.MaxPrice}, " + $"{testPairSettingApi.ResultMetod.MinAmount}, {testPairSettingApi.ResultMetod.MaxAmount}"); ///<summary>currency /// <remarks>Cписок валют биржи</remarks> /// </summary> await CCurrency.GetCurrencyAsync(null); //currencyTask.Wait(); Console.WriteLine("\nCписок валют биржи:"); foreach (var i in CCurrency.CurrencyList) { Console.WriteLine(i); } //<summary>currencyPair /// <remarks>Cписок валютных пар (не входит в ExmoApi)</remarks> /// </summary> await CCurrency.GetCurrencyPairListAsync(null); //currencyPairTaskTask.Wait(); Console.WriteLine("\nCписок валютных пар биржи:"); foreach (var i in CCurrency.CurrencyPairList) { Console.WriteLine(i); } /*Authenticated API*/ tradeCouples = "BTC_USD"; limit = 10; decimal quantity = 0.001M; //BTC decimal price = 20000M; //Для продажи BTC string type = "sell"; ///<summary>user_info /// <remarks>Получение информации об аккаунте пользователя</remarks> /// </summary> IHelperAuthAPI <CUserInfo> testUserInfoApi = new CHelperAuthAPI <CUserInfo>(); await testUserInfoApi.GetResultAsync("user_info", apiKey); Console.WriteLine("\nИнформация об аккаунте пользователя"); Console.WriteLine($"{testUserInfoApi.ResultMetod.Uid} {testUserInfoApi.ResultMetod.ServerDate}"); //Проход по свойствам класса Balances Console.WriteLine("\nБаланс:"); foreach (var propInfo in testUserInfoApi.ResultMetod.Balances.GetType().GetProperties()) { Console.WriteLine($"{propInfo.Name}: {propInfo.GetValue(testUserInfoApi.ResultMetod.Balances, null)}"); } //Проход по свойствам класса Reserved Console.WriteLine($"\nВ ордерах:"); foreach (var propInfo in testUserInfoApi.ResultMetod.Reserved.GetType().GetProperties()) { Console.WriteLine($"{propInfo.Name}: {propInfo.GetValue(testUserInfoApi.ResultMetod.Reserved, null)}"); } ///<summary>order_create /// <remarks>Создание ордера</remarks> /// </summary> IHelperAuthAPI <COrderCreate> testOrderCreateApi = new CHelperAuthAPI <COrderCreate>(); await testOrderCreateApi.GetResultAsync("order_create", apiKey, new Dictionary <string, string>() { { "pair", tradeCouples.ToString(CultureInfo.InvariantCulture) }, { "quantity", quantity.ToString(CultureInfo.InvariantCulture) }, { "price", price.ToString(CultureInfo.InvariantCulture) }, { "type", type } }, tradeCouples); Console.WriteLine("\nСоздание ордера:"); if (testOrderCreateApi.ResultMetod.Result) { Console.WriteLine($"\nОрдер создан:" + $"\nПара: {tradeCouples}" + $"\norder_id: {testOrderCreateApi.ResultMetod.OrderId}" + $"\nОперация: {type}" + $"\nЦена: {price}" + $"\nКоличество: {quantity}" + $"\nСумма: {price*quantity}"); } else { Console.WriteLine($"\nОрдер не создан!!!" + $"\nОшибка: {testOrderCreateApi.ResultMetod.Error}"); } var orderId = testOrderCreateApi.ResultMetod.OrderId; //<summary>user_open_orders /// <remarks>Получение списока открытых ордеров пользователя</remarks> /// </summary> IHelperAuthAPI <CUserOpenOrders> testUserOpenOrdersApi = new CHelperAuthAPI <CUserOpenOrders>(); await testUserOpenOrdersApi.GetResultAsync("user_open_orders", apiKey); foreach (var res in testUserOpenOrdersApi.ResultList) { Console.WriteLine($"\nСписок открытых ордеров пользователя:" + $"\nВалютная пара: {res.TradeCouples}" + $"\nOrder_id: {res.OrderId}" + $"\nСоздан: {(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(res.CreatedTime)}" + $"\nТип: {res.Type}" + $"\nЦена: {res.Price}" + $"\nКоличество: {res.Quantity}" + $"\nСумма: {res.Amount}"); } /* ///<summary>order_cancel * /// <remarks>Отмена ордера</remarks> * /// </summary> * IHelperAuthAPI<COrderCancel> testOrderCancelApi = new CHelperAuthAPI<COrderCancel>(); * await testOrderCancelApi.GetResultAsync("order_cancel", apiKey, * new Dictionary<string, string>() * { * {"order_id", orderId.ToString(CultureInfo.InvariantCulture)} * }); * Console.WriteLine($"\nОтмена ордера {orderId}:"); * if (testOrderCancelApi.ResultMetod.Result) * Console.WriteLine($"\nОрдер c номером {orderId} - отменен."); * else * { * Console.WriteLine($"\nОрдер не отменен!!!" + * $"\nОшибка: {testOrderCancelApi.ResultMetod.Error}"); * } */ //<summary>user_trades /// <remarks>Получение сделок пользователя</remarks> /// </summary> IHelperAuthAPI <CUserTrades> testUserTradesApi = new CHelperAuthAPI <CUserTrades>(); await testUserTradesApi.GetResultAsync("user_trades", apiKey, new Dictionary <string, string>() { { "pair", "ETC_USD, BTC_USD" }, { "limit", "1000" }, { "offset", "100" } }); Console.WriteLine("\nСделки пользователя:"); foreach (var uT in testUserTradesApi.ResultList) { Console.WriteLine($"\nВалютная пара: {uT.TradeCouples}" + $"\ntrade_id: {uT.TradeId}" + $"\ndate : {uT.Date}" + $"\ntype : {uT.Type}" + $"\norder_id: {uT.OrderId}" + $"\nquantity : {uT.Quantity}" + $"\nprice : {uT.Price}" + $"\namount : {uT.Amount}"); } ///<summary>user_cancelled_orders /// <remarks>Получение отмененных ордеров пользователя</remarks> ///</summary> IHelperAuthAPI <CUserCancelledOrders> testUserCansOrdersApi = new CHelperAuthAPI <CUserCancelledOrders>(); await testUserCansOrdersApi.GetResultAsync("user_cancelled_orders", apiKey, new Dictionary <string, string>() { { "limit", "100" }, { "offset", "0" } }); Console.WriteLine("\nОтмененные сделки пользователя:"); foreach (var canceledOrder in testUserTradesApi.ResultList) { Console.WriteLine($"\nВалютная пара: {canceledOrder.TradeCouples}" + $"\ndate : {canceledOrder.Date}" + $"\ntype : {canceledOrder.Type}" + $"\norder_id: {canceledOrder.OrderId}" + $"\nquantity : {canceledOrder.Quantity}" + $"\nprice : {canceledOrder.Price}" + $"\namount : {canceledOrder.Amount}"); } ///<summary>order_trades /// <remarks>Получение истории сделок ордера</remarks> /// </summary> IHelperAuthAPI <COrderTrades> testCOrderTradesApi = new CHelperAuthAPI <COrderTrades>(); await testCOrderTradesApi.GetResultAsync("order_trades", apiKey, new Dictionary <string, string>() { { "ordr_id", orderId.ToString(CultureInfo.InvariantCulture) } }); Console.WriteLine($"История сделок ордера"); Console.ReadLine(); }
/// <summary> /// The run. /// </summary> /// <param name="taskInstance"> /// The task instance. /// </param> public async void Run(IBackgroundTaskInstance taskInstance) { var deferral = taskInstance.GetDeferral(); taskInstance.Canceled += this.OnCanceled; try { do { try { var api = new ExmoApi(); var ticker = await api.GetTicker().ConfigureAwait(false); //ticker.SaveTickerResults(); await MainViewModel.Instance.UpdateTicker(ticker); Debug.WriteLine(ticker["BTC_USD"], "Info"); } catch (OperationCanceledException) { throw; } catch (Exception ex) { Debug.WriteLine(ex.Message); } //var content = new ToastContent() //{ // Visual = new ToastVisual() // { // BindingGeneric = new ToastBindingGeneric() // { // Children = // { // new AdaptiveText() // { // Text = "Adaptive Tiles Meeting", // HintMaxLines = 1 // }, // new AdaptiveText() { Text = DateTime.Now.ToString(CultureInfo.InvariantCulture) } // } // } // } //}; //var toast = new ToastNotification(content.GetXml()); //ToastNotificationManager.CreateToastNotifier().Show(toast); await Task.Delay(5000, this.cancelTokenSource.Token); }while (true); } catch (OperationCanceledException ex) { } catch (Exception ex) { } finally { deferral.Complete(); } }
static async Task Main(string[] args) { /***********************/ /********Example********/ /***********************/ /*Public API*/ string apiName; var apiKey = new ExmoApi("K", "S"); string tradeCouples = "LTC_RUB"; int? limit = 10; ///<summary>trades /// <remarks>Список сделок по валютной паре</remarks> /// <param name="tradeCouples">одна или несколько валютных пар разделенных запятой (пример BTC_USD,BTC_EUR)</param> /// <param name="limit">кол-во отображаемых позиций (по умолчанию 100, максимум 1000)</param> ///<returns>ResultList type=CTrade ></returns> /// </summary> IHelperPublicAPI <CTrades> testTradesApi = new CHelperPublicAPI <CTrades>(); await testTradesApi.GetResultAsync("trades", null, tradeCouples, limit); //testTradesApiResult.Wait(); Console.WriteLine($"Список сделок по валютной паре {tradeCouples}:"); foreach (var tmp in testTradesApi.ResultList) { Console.WriteLine($"{tmp.TradeId} {tmp.Type} {tmp.Price} {tmp.Quantity} {tmp.Amount} {(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(tmp.Date)}"); } ///<summary>order_book /// <remarks>Книга ордеров по валютной паре</remarks> /// <param name="tradeCouples">одна или несколько валютных пар разделенных запятой (пример BTC_USD,BTC_EUR)</param> /// <param name="limit">кол-во отображаемых позиций (по умолчанию 100, максимум 1000)</param> ///<returns>ResultMethod type=COrderBook></returns> /// </summary> IHelperPublicAPI <COrderBook> testOrderBookApi = new CHelperPublicAPI <COrderBook>(); await testOrderBookApi.GetResultAsync("order_book", null, tradeCouples, limit); //testOrderBookApiTask.Wait(); Console.WriteLine("\nКнига ордеров по валютной паре:"); Console.WriteLine($"{testOrderBookApi.ResultMetod.AskQuantity} {testOrderBookApi.ResultMetod.AskAmount} {testOrderBookApi.ResultMetod.AskTop}, {testOrderBookApi.ResultMetod.BidQuantity}, " + $"{testOrderBookApi.ResultMetod.BidAmount}, {testOrderBookApi.ResultMetod.BidTop}"); Console.WriteLine("\nСписок ордеров на покупку:"); foreach (var i in testOrderBookApi.ResultMetod.Ask) { Console.WriteLine($"{i[0]}, {i[1]}, {i[2]}"); } Console.WriteLine("\nСписок ордеров на продажу:"); foreach (var i in testOrderBookApi.ResultMetod.Bid) { Console.WriteLine($"{i[0]}, {i[1]}, {i[2]}"); } ///<summary>ticker /// <remarks>Cтатистика цен и объемов торгов по валютным парам</remarks> ///<returns>ResultMethod type=CTicker</returns> /// </summary> IHelperPublicAPI <CTicker> testTickerApi = new CHelperPublicAPI <CTicker>(); await testTickerApi.GetResultAsync("ticker", null, tradeCouples); //testTickerApiTask.Wait(); Console.WriteLine($"\nCтатистика цен и объемов торгов по валютной паре {tradeCouples}:"); Console.WriteLine($"{testTickerApi.ResultMetod.High}, {testTickerApi.ResultMetod.Low}, {testTickerApi.ResultMetod.Avg}, " + $"{testTickerApi.ResultMetod.Vol}, {testTickerApi.ResultMetod.VolCurr}, {testTickerApi.ResultMetod.LastTrade}, " + $"{testTickerApi.ResultMetod.BuyPrice}, {testTickerApi.ResultMetod.SellPrice}, " + $"{(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(testTickerApi.ResultMetod.Updated)}"); ///<summary>pair_settings /// <remarks>Настройки валютных пар</remarks> /// <param name="tradeCouples">одна или несколько валютных пар разделенных запятой (пример BTC_USD,BTC_EUR)</param> ///<returns>ResultMethod type=CPairSettings></returns> /// </summary> IHelperPublicAPI <CPairSettings> testPairSettingApi = new CHelperPublicAPI <CPairSettings>(); await testPairSettingApi.GetResultAsync("pair_settings", null, tradeCouples); //testPairSettingApiTask.Wait(); Console.WriteLine($"\nНастройки валютной пары {tradeCouples}:"); Console.WriteLine($"{testPairSettingApi.ResultMetod.MinQuantity}, {testPairSettingApi.ResultMetod.MaxQuantity} " + $"{testPairSettingApi.ResultMetod.MinPrice}, {testPairSettingApi.ResultMetod.MaxPrice}, " + $"{testPairSettingApi.ResultMetod.MinAmount}, {testPairSettingApi.ResultMetod.MaxAmount}"); ///<summary>currency /// <remarks>Cписок валют биржи</remarks> ///<returns>CurrencyList type=IList<string>></returns> /// </summary> await CCurrency.GetCurrencyAsync(null); //currencyTask.Wait(); Console.WriteLine("\nCписок валют биржи:"); foreach (var i in CCurrency.CurrencyList) { Console.WriteLine(i); } //<summary>currencyPair /// <remarks>Cписок валютных пар (не входит в ExmoApi)</remarks> ///<returns>CurrencyPairList type=IList<string>></returns> /// </summary> await CCurrency.GetCurrencyPairListAsync(null); //currencyPairTaskTask.Wait(); Console.WriteLine("\nCписок валютных пар биржи:"); foreach (var i in CCurrency.CurrencyPairList) { Console.WriteLine(i); } /*Authenticated API*/ apiKey = new ExmoApi("K", "S-"); tradeCouples = "BTC_USD"; limit = 10; decimal quantity = 0.001M; //BTC decimal price = 20000M; //Для продажи BTC string type = "sell"; ///<summary>user_info /// <remarks>Получение информации об аккаунте пользователя</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> ///<returns>ResultMethod type=CUserInfo ></returns> /// </summary> IHelperAuthAPI <CUserInfo> testUserInfoApi = new CHelperAuthAPI <CUserInfo>(); await testUserInfoApi.GetResultAsync("user_info", apiKey); Console.WriteLine("\nИнформация об аккаунте пользователя"); Console.WriteLine($"{testUserInfoApi.ResultMetod.Uid} {testUserInfoApi.ResultMetod.ServerDate}"); //Проход по свойствам класса Balances Console.WriteLine("\nБаланс:"); foreach (var propInfo in testUserInfoApi.ResultMetod.Balances.GetType().GetProperties()) { Console.WriteLine($"{propInfo.Name}: {propInfo.GetValue(testUserInfoApi.ResultMetod.Balances, null)}"); } //Проход по свойствам класса Reserved Console.WriteLine($"\nВ ордерах:"); foreach (var propInfo in testUserInfoApi.ResultMetod.Reserved.GetType().GetProperties()) { Console.WriteLine($"{propInfo.Name}: {propInfo.GetValue(testUserInfoApi.ResultMetod.Reserved, null)}"); } ///<summary>order_create /// <remarks>Создание ордера</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> /// <param name="Dictionary">Словарь, содержащий следующие параметры: /// tradeCouples - валютная пара /// quantity - кол-во по ордеру /// price - цена по ордеру /// type - тип ордера, может принимать следующие значения: /// buy - ордер на покупку /// sell - ордер на продажу /// market_buy - ордера на покупку по рынку /// market_sell - ордер на продажу по рынку /// market_buy_total - ордер на покупку по рынку на определенную сумму /// market_sell_total - ордер на продажу по рынку на определенную сумму</param> /// <param name="tradeCouples">Валютная пара</param> ///<returns>ResultMethod type=COrderCreate ></returns> /// </summary> IHelperAuthAPI <COrderCreate> testOrderCreateApi = new CHelperAuthAPI <COrderCreate>(); await testOrderCreateApi.GetResultAsync("order_create", apiKey, new Dictionary <string, string>() { { "pair", tradeCouples.ToString(CultureInfo.InvariantCulture) }, { "quantity", quantity.ToString(CultureInfo.InvariantCulture) }, { "price", price.ToString(CultureInfo.InvariantCulture) }, { "type", type } }, tradeCouples); Console.WriteLine("\nСоздание ордера:"); if (testOrderCreateApi.ResultMetod.Result) { Console.WriteLine($"\nОрдер создан:" + $"\nПара: {tradeCouples}" + $"\norder_id: {testOrderCreateApi.ResultMetod.OrderId}" + $"\nОперация: {type}" + $"\nЦена: {price}" + $"\nКоличество: {quantity}" + $"\nСумма: {price*quantity}"); } else { Console.WriteLine($"\nОрдер не создан!!!" + $"\nОшибка: {testOrderCreateApi.ResultMetod.Error}"); } var orderId = testOrderCreateApi.ResultMetod.OrderId; //<summary>order_cancel /// <remarks>Отмена ордера</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> /// <param name="Dictionary">Словарь, содержащий следующие параметры: /// order_id - идентификатор ордера </param> ///<returns>ResultMethod type=COrderCancel ></returns> /// </summary> IHelperAuthAPI <COrderCancel> testOrderCancelApi = new CHelperAuthAPI <COrderCancel>(); await testOrderCancelApi.GetResultAsync("order_cancel", apiKey, new Dictionary <string, string>() { { "order_id", orderId.ToString(CultureInfo.InvariantCulture) } }); Console.WriteLine($"\nОтмена ордера {orderId}:"); if (testOrderCancelApi.ResultMetod.Result) { Console.WriteLine($"\nОрдер c номером {orderId} - отменен."); } else { Console.WriteLine($"\nОрдер не отменен!!!" + $"\nОшибка: {testOrderCancelApi.ResultMetod.Error}"); } //<summary>user_open_orders /// <remarks>Отмена ордера</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> ///<returns>ResultMethod type=CUserOpenOrders ></returns> /// </summary> IHelperAuthAPI <CUserOpenOrders> testUserOpenOrdersApi = new CHelperAuthAPI <CUserOpenOrders>(); await testUserOpenOrdersApi.GetResultAsync("user_open_orders", apiKey); foreach (var res in testUserOpenOrdersApi.ResultList) { Console.WriteLine($"\nСписок открытых ордеров пользователя:" + $"\nВалютная пара: {res.TradeCouples}" + $"\nOrder_id: {res.OrderId}" + $"\nСоздан: {(new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(res.CreatedTime)}" + $"\nТип: {res.Type}" + $"\nЦена: {res.Price}" + $"\nКоличество: {res.Quantity}" + $"\nСумма: {res.Amount}"); } //<summary>user_trades /// <remarks>Получение сделок пользователя</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> /// <param name="Dictionary">Словарь, содержащий следующие параметры: /// tradeCouples - одна или несколько валютных пар разделенных запятой (пример BTC_USD,BTC_EUR) /// limit - кол-во возвращаемых сделок (по умолчанию 100, максимум 10 000) /// offset - смещение от последней сделки (по умолчанию 0)</param> ///<returns>ResultMethod type=CUserTrades ></returns> /// </summary> IHelperAuthAPI <CUserTrades> testUserTradesApi = new CHelperAuthAPI <CUserTrades>(); await testUserTradesApi.GetResultAsync("user_trades", apiKey, new Dictionary <string, string>() { { "pair", "ETC_USD, BTC_USD" }, { "limit", "100" }, { "offset", "0" } }); Console.WriteLine("\nСделки пользователя:"); foreach (var uT in testUserTradesApi.ResultList) { Console.WriteLine($"\nВалютная пара: {uT.TradeCouples}" + $"\ntrade_id: {uT.TradeId}" + $"\ndate : {uT.Date}" + $"\ntype : {uT.Type}" + $"\norder_id: {uT.OrderId}" + $"\nquantity : {uT.Quantity}" + $"\nprice : {uT.Price}" + $"\namount : {uT.Amount}"); } //<summary>user_cancelled_orders /// <remarks>Получение отмененных ордеров пользователя</remarks> /// <param name="apiKey">Идентификатор пользователя на бирже</param> /// <param name="Dictionary">Словарь, содержащий следующие параметры: /// limit - кол-во возвращаемых сделок (по умолчанию 100, максимум 10 000) /// offset - смещение от последней сделки (по умолчанию 0)</param> ///<returns>ResultMethod type=CUserTrades ></returns> /// </summary> IHelperAuthAPI <CUserCancelledOrders> testUserCansOrdersApi = new CHelperAuthAPI <CUserCancelledOrders>(); await testUserCansOrdersApi.GetResultAsync("user_cancelled_orders", apiKey, new Dictionary <string, string>() { { "limit", "10" }, { "offset", "0" } }); Console.WriteLine("\nОтмененные сделки пользователя:"); foreach (var canceledOrder in testUserTradesApi.ResultList) { Console.WriteLine($"\nВалютная пара: {canceledOrder.TradeCouples}" + $"\ndate : {canceledOrder.Date}" + $"\ntype : {canceledOrder.Type}" + $"\norder_id: {canceledOrder.OrderId}" + $"\nquantity : {canceledOrder.Quantity}" + $"\nprice : {canceledOrder.Price}" + $"\namount : {canceledOrder.Amount}"); } Console.ReadLine(); }