private static void QueryEmptyBuyDetailAndUpdate(string userName, long orderId) { try { PlatformApi api = PlatformApi.GetInstance(userName); var orderDetail = api.QueryOrderDetail(orderId); Console.WriteLine($"orderDetail: {JsonConvert.SerializeObject(orderDetail)}"); if (orderDetail.Status == "ok" && orderDetail.Data.state == "filled") { var orderMatchResult = api.QueryOrderMatchResult(orderId); decimal maxPrice = 0; foreach (var item in orderMatchResult.Data) { if (maxPrice < item.price) { maxPrice = item.price; } } if (orderMatchResult.Status == "ok") { // 完成 new DogEmptyBuyDao().UpdateDogEmptyBuyWhenSuccess(orderId, orderDetail, orderMatchResult, maxPrice); } } } catch (Exception ex) { logger.Error(ex.Message, ex); } }
private static void QueryEmptySellDetailAndUpdate(string userName, long orderId) { try { PlatformApi api = PlatformApi.GetInstance(userName); var orderDetail = api.QueryOrderDetail(orderId); if (orderDetail.Status == "ok" && orderDetail.Data.state == "filled") { var orderMatchResult = api.QueryOrderMatchResult(orderId); decimal minPrice = 25000; foreach (var item in orderMatchResult.Data) { if (minPrice > item.price) { minPrice = item.price; } } if (orderMatchResult.Status == "ok") { // 完成 new DogEmptySellDao().UpdateDogEmptySellWhenSuccess(orderId, orderDetail, orderMatchResult, minPrice); } } } catch (Exception ex) { logger.Error(ex.Message, ex); } }
private static void QueryBuyDetailAndUpdate(string userName, long orderId) { try { PlatformApi api = PlatformApi.GetInstance(userName); var orderDetail = api.QueryOrderDetail(orderId); if (orderDetail.Status == "ok" && orderDetail.Data.state == "filled") { var orderMatchResult = api.QueryOrderMatchResult(orderId); if (orderMatchResult == null || orderMatchResult.Data == null) { return; } decimal maxPrice = 0; foreach (var item in orderMatchResult.Data) { if (maxPrice < item.price) { maxPrice = item.price; } } if (orderMatchResult.Status == "ok" && maxPrice > 0) { new DogMoreBuyDao().UpdateDogMoreBuySuccess(orderId, orderDetail, orderMatchResult, maxPrice); } } if (orderDetail.Status == "ok" && orderDetail.Data.state == StateConst.PartialCanceled) { var orderMatchResult = api.QueryOrderMatchResult(orderId); decimal maxPrice = 0; decimal buyQuantity = 0; foreach (var item in orderMatchResult.Data) { if (maxPrice < item.price) { maxPrice = item.price; } buyQuantity += item.FilledAmount; } if (orderMatchResult.Status == "ok") { new DogMoreBuyDao().UpdateDogMoreBuySuccess(orderId, buyQuantity, orderDetail, orderMatchResult, maxPrice); } } if (orderDetail.Status == "ok" && orderDetail.Data.state == StateConst.Canceled) { // 完成 new DogMoreBuyDao().UpdateDogMoreBuyWhenCancel(orderId); } } catch (Exception ex) { logger.Error(ex.Message, ex); logger.Error($"QueryBuyDetailAndUpdate, orderId:{orderId} 查询数据出错"); } }
public static void SearchOrder(long orderId) { var userName = "******"; AccountConfig account = AccountConfigUtils.GetAccountConfig(userName); PlatformApi api = PlatformApi.GetInstance(userName); var orderDetail = api.QueryOrderDetail(orderId); Console.WriteLine(orderDetail.Status); Console.WriteLine(orderDetail.Data.state); if (orderDetail.Status == "ok" && orderDetail.Data.state == "filled") { Console.WriteLine(orderDetail.Data.price); Console.WriteLine(orderDetail.Data.id); Console.WriteLine(orderDetail.Data.symbol.Replace("usdt", "")); Console.WriteLine(orderDetail.Data.amount); if (new PigMoreDao().GetByBOrderId(orderId) != null) { Console.WriteLine("订单存在"); return; } new PigMoreDao().CreatePigMore(new PigMore() { Name = orderDetail.Data.symbol.Replace("usdt", ""), AccountId = account.MainAccountId, UserName = account.UserName, FlexPercent = (decimal)1.04, BQuantity = orderDetail.Data.amount, BOrderP = orderDetail.Data.price, BDate = DateTime.Now, BOrderResult = "", BState = StateConst.Submitting, BTradeP = 0, BOrderId = orderId, BFlex = "", BMemo = "", BOrderDetail = "", BOrderMatchResults = "", SOrderId = 0, SOrderResult = "", SDate = DateTime.MinValue, SFlex = "", SMemo = "", SOrderDetail = "", SOrderMatchResults = "", SOrderP = 0, SQuantity = 0, SState = "", STradeP = 0, }); } }
public static void SearchBuyOrder(long orderId) { var userName = "******"; AccountConfig account = AccountConfigUtils.GetAccountConfig(userName); PlatformApi api = PlatformApi.GetInstance(userName); var orderDetail = api.QueryOrderDetail(orderId); Console.WriteLine(orderDetail.Status); Console.WriteLine(orderDetail.Data.state); if (orderDetail.Status == "ok" && orderDetail.Data.state == "filled") { Console.WriteLine(JsonConvert.SerializeObject(orderDetail)); Console.WriteLine(orderDetail.Data.id); Console.WriteLine(orderDetail.Data.symbol.Replace("usdt", "")); Console.WriteLine(orderDetail.Data.amount); if (orderDetail.Data.type != "buy-limit") { Console.WriteLine(orderDetail.Data.type); Thread.Sleep(1000 * 60 * 5); } if (new DogMoreBuyDao().GetByBuyOrderId(orderId) != null) { Console.WriteLine("订单存在"); return; } new DogMoreBuyDao().CreateDogMoreBuy(new DogMoreBuy() { SymbolName = orderDetail.Data.symbol.Replace("usdt", ""), //QuoteCurrency = AccountId = account.MainAccountId, UserName = account.UserName, BuyQuantity = orderDetail.Data.amount, BuyOrderPrice = orderDetail.Data.price, BuyDate = DateTime.Now, BuyOrderResult = "", BuyState = StateConst.Submitting, BuyTradePrice = 0, BuyOrderId = orderId, BuyMemo = "", BuyOrderDetail = "", BuyOrderMatchResults = "", IsFinished = false }); } }
private static void QuerySellDetailAndUpdate(string userName, long orderId) { PlatformApi api = PlatformApi.GetInstance(userName); var orderDetail = api.QueryOrderDetail(orderId); if (orderDetail.Status == "ok" && orderDetail.Data.state == "filled") { var orderMatchResult = api.QueryOrderMatchResult(orderId); decimal minPrice = 99999999; foreach (var item in orderMatchResult.Data) { if (minPrice > item.price) { minPrice = item.price; } } // 完成 new PigMoreDao().UpdateTradeRecordSellSuccess(orderId, orderDetail, orderMatchResult, minPrice); } }
private static void QueryBuyDetailAndUpdate(string userName, long orderId) { PlatformApi api = PlatformApi.GetInstance(userName); var orderDetail = api.QueryOrderDetail(orderId); if (orderDetail.Status == "ok" && orderDetail.Data.state == "filled") { var matchResult = api.QueryOrderMatchResult(orderId); decimal maxPrice = 0; foreach (var item in matchResult.Data) { if (maxPrice < item.price) { maxPrice = item.price; } } if (matchResult.Status == "ok") { new PigMoreDao().UpdatePigMoreBuySuccess(orderId, orderDetail, matchResult, maxPrice); } } }