Browse Source

统计

master
shanji 3 years ago
parent
commit
b7bb2215a4
  1. 5
      Binance.TradeRobot.API/Binance.TradeRobot.API.csproj
  2. 4
      Binance.TradeRobot.Business/Binance.TradeRobot.Business.csproj
  3. 6
      Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml
  4. 37
      Binance.TradeRobot.Business/Business/RobotBusiness.cs
  5. 2
      Binance.TradeRobot.Model/Base/Enums.cs
  6. 3
      Binance.TradeRobot.Model/Binance.TradeRobot.Model.csproj
  7. 2
      Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml

5
Binance.TradeRobot.API/Binance.TradeRobot.API.csproj

@ -12,9 +12,8 @@
<ItemGroup>
<PackageReference Include="CSRedisCore" Version="3.6.9" />
<PackageReference Include="FreeSql" Version="3.0.100" />
<PackageReference Include="FreeSql.Provider.MySql" Version="3.0.100" />
<PackageReference Include="FreeSql.Provider.SqlServer" Version="3.0.100" />
<PackageReference Include="FreeSql" Version="3.2.660-preview22020525" />
<PackageReference Include="FreeSql.Provider.MySql" Version="3.2.660-preview22020525" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.22" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.22" />
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="3.1.22" />

4
Binance.TradeRobot.Business/Binance.TradeRobot.Business.csproj

@ -10,8 +10,8 @@
<ItemGroup>
<PackageReference Include="Binance.Net" Version="8.0.13" />
<PackageReference Include="CSRedisCore" Version="3.6.9" />
<PackageReference Include="FreeSql" Version="3.0.100" />
<PackageReference Include="FreeSql.Provider.MySql" Version="3.0.100" />
<PackageReference Include="FreeSql" Version="3.2.660-preview22020525" />
<PackageReference Include="FreeSql.Provider.MySql" Version="3.2.660-preview22020525" />
<PackageReference Include="FreeSql.Provider.SqlServer" Version="3.0.100" />
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="3.1.22" />
<PackageReference Include="NLog" Version="4.7.13" />

6
Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml

@ -96,6 +96,12 @@
<param name="isLoadAPIKey">是否加载机器人绑定的APIKey,默认false</param>
<returns></returns>
</member>
<member name="M:Binance.TradeRobot.Business.RobotBusiness.D21Remedy">
<summary>
补救检查
</summary>
<exception cref="T:Binance.TradeRobot.Model.Base.BusinessException"></exception>
</member>
<member name="T:Binance.TradeRobot.Business.SpotPolicyBusiness">
<summary>
现货策略

37
Binance.TradeRobot.Business/Business/RobotBusiness.cs

@ -223,6 +223,37 @@ namespace Binance.TradeRobot.Business
}).Map<IList<RobotResponse>>();
}
private void GetSpotRobotRecentProfit<T>(IList<T> robotList) where T : RobotResponse
{
var robotIds = robotList.Select(r => r.Id).ToList();
var recentProftList = fsql.Select<Robot>().Where(r => robotIds.Contains(r.Id)).ToList(r => new
{
RobotId = r.Id,
FiveTimesProfit = fsql.Select<SpotOrder>().Where(o => o.RobotId == r.Id).OrderByDescending(o => o.CreateTime).Take(5).Sum(o => o.Profit),
TenTimesProfit = fsql.Select<SpotOrder>().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<T>(IList<T> 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;
}
}
/// <summary>
/// 获取动2.1策略机器人列表
/// </summary>
@ -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;
}
/// <summary>
/// 补救检查
/// </summary>
/// <exception cref="BusinessException"></exception>
public void D21Remedy()
{
var d21RobotList = GetD21PolicyRobotList(robotState: Enums.RobotState.Runing, isLoadRecentTradeProfit: false, isLoadAPIKey: true);

2
Binance.TradeRobot.Model/Base/Enums.cs

@ -110,7 +110,7 @@ namespace Binance.TradeRobot.Model.Base
}
/// <summary>
/// 现货订单订单状态
/// 现货订单订单状态 已创建=0,部分成交=1,完全成交=2,用户取消=3,拒绝=4,订单失效=5,未知=6
/// </summary>
public enum SpotOrderState
{

3
Binance.TradeRobot.Model/Binance.TradeRobot.Model.csproj

@ -9,7 +9,8 @@
<ItemGroup>
<PackageReference Include="AutoMapper" Version="11.0.1" />
<PackageReference Include="FreeSql" Version="3.0.100" />
<PackageReference Include="FreeSql" Version="3.2.660-preview22020525" />
<PackageReference Include="FreeSql.Provider.MySql" Version="3.2.660-preview22020525" />
</ItemGroup>
</Project>

2
Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml

@ -96,7 +96,7 @@
</member>
<member name="T:Binance.TradeRobot.Model.Base.Enums.SpotOrderState">
<summary>
现货订单订单状态
现货订单订单状态 已创建=0,部分成交=1,完全成交=2,用户取消=3,拒绝=4,订单失效=5,未知=6
</summary>
</member>
<member name="F:Binance.TradeRobot.Model.Base.Enums.SpotOrderState.Created">

Loading…
Cancel
Save