diff --git a/Binance.TradeRobot.API/Binance.TradeRobot.API.csproj b/Binance.TradeRobot.API/Binance.TradeRobot.API.csproj index 4bb766b..211ce85 100644 --- a/Binance.TradeRobot.API/Binance.TradeRobot.API.csproj +++ b/Binance.TradeRobot.API/Binance.TradeRobot.API.csproj @@ -12,9 +12,8 @@ - - - + + diff --git a/Binance.TradeRobot.Business/Binance.TradeRobot.Business.csproj b/Binance.TradeRobot.Business/Binance.TradeRobot.Business.csproj index 366c9da..0ae4405 100644 --- a/Binance.TradeRobot.Business/Binance.TradeRobot.Business.csproj +++ b/Binance.TradeRobot.Business/Binance.TradeRobot.Business.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml b/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml index 88ec281..9939f17 100644 --- a/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml +++ b/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml @@ -96,6 +96,12 @@ 是否加载机器人绑定的APIKey,默认false + + + 补救检查 + + + 现货策略 diff --git a/Binance.TradeRobot.Business/Business/RobotBusiness.cs b/Binance.TradeRobot.Business/Business/RobotBusiness.cs index 0a77602..5139728 100644 --- a/Binance.TradeRobot.Business/Business/RobotBusiness.cs +++ b/Binance.TradeRobot.Business/Business/RobotBusiness.cs @@ -223,6 +223,37 @@ namespace Binance.TradeRobot.Business }).Map>(); } + private void GetSpotRobotRecentProfit(IList robotList) where T : RobotResponse + { + var robotIds = robotList.Select(r => r.Id).ToList(); + var recentProftList = fsql.Select().Where(r => robotIds.Contains(r.Id)).ToList(r => new + { + RobotId = r.Id, + FiveTimesProfit = fsql.Select().Where(o => o.RobotId == r.Id).OrderByDescending(o => o.CreateTime).Take(5).Sum(o => o.Profit), + TenTimesProfit = fsql.Select().Where(o => o.RobotId == r.Id).OrderByDescending(o => o.CreateTime).Take(10).Sum(o => o.Profit) + }); + foreach (var recentProft in recentProftList) + { + var robot = robotList.FirstOrDefault(r => r.Id == recentProft.RobotId); + if (robot != null) + { + robot.RobotAccount.FiveTimesProfit = recentProft.FiveTimesProfit; + robot.RobotAccount.TenTimesProfit = recentProft.TenTimesProfit; + } + } + } + + private void GetSpotRobotFloatingProfitAndLoss(IList robotList) where T : RobotResponse + { + foreach (var robot in robotList) + { + var newestPrice = globalContext.GetSpotNewestPrice(robot.KLineKey) ?? 0; + if (newestPrice == 0) + continue; + robot.RobotAccount.FloatingProfitAndLoss = (newestPrice - robot.RobotAccount.SpotCurrencyAvgPrice) * robot.RobotAccount.SpotCurrencyQuantity; + } + } + /// /// 获取动2.1策略机器人列表 /// @@ -302,6 +333,8 @@ namespace Binance.TradeRobot.Business if (isLoadRecentTradeProfit) { //统计近期订单利润 + GetSpotRobotRecentProfit(robotList); + GetSpotRobotFloatingProfitAndLoss(robotList); } if (!isLoadAPIKey) @@ -312,6 +345,10 @@ namespace Binance.TradeRobot.Business return robotList; } + /// + /// 补救检查 + /// + /// public void D21Remedy() { var d21RobotList = GetD21PolicyRobotList(robotState: Enums.RobotState.Runing, isLoadRecentTradeProfit: false, isLoadAPIKey: true); diff --git a/Binance.TradeRobot.Model/Base/Enums.cs b/Binance.TradeRobot.Model/Base/Enums.cs index 769e365..6c2620c 100644 --- a/Binance.TradeRobot.Model/Base/Enums.cs +++ b/Binance.TradeRobot.Model/Base/Enums.cs @@ -110,7 +110,7 @@ namespace Binance.TradeRobot.Model.Base } /// - /// 现货订单订单状态 + /// 现货订单订单状态 已创建=0,部分成交=1,完全成交=2,用户取消=3,拒绝=4,订单失效=5,未知=6 /// public enum SpotOrderState { diff --git a/Binance.TradeRobot.Model/Binance.TradeRobot.Model.csproj b/Binance.TradeRobot.Model/Binance.TradeRobot.Model.csproj index 78b48d1..c3c945a 100644 --- a/Binance.TradeRobot.Model/Binance.TradeRobot.Model.csproj +++ b/Binance.TradeRobot.Model/Binance.TradeRobot.Model.csproj @@ -9,7 +9,8 @@ - + + diff --git a/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml b/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml index a6d83c9..b0482ae 100644 --- a/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml +++ b/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml @@ -96,7 +96,7 @@ - 现货订单订单状态 + 现货订单订单状态 已创建=0,部分成交=1,完全成交=2,用户取消=3,拒绝=4,订单失效=5,未知=6