币安量化交易
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.7 KiB

3 years ago
using Binance.TradeRobot.Model.Base;
namespace Binance.TradeRobot.Model.Dto
3 years ago
{
public class UserResponse : Db.User
3 years ago
{
/// <summary>
/// 累计盈亏
/// </summary>
public decimal CumulativeProfitAndLoss { get { return TotalAssets - CostAmount; } }
/// <summary>
/// 本金比例
/// </summary>
public decimal CostRatio { get; set; }
/// <summary>
/// 分红比例
/// </summary>
public decimal DividendRatio { get; set; }
3 years ago
/// <summary>
/// 用户资金改变算法
/// </summary>
/// <param name="capitalChangeType"></param>
/// <param name="changeAmount"></param>
/// <param name="isManualOperation">是否手动操作</param>
public void ChangeAmount(Enums.CapitalChangeType capitalChangeType, decimal changeAmount, bool isManualOperation)
3 years ago
{
if (capitalChangeType == Enums.CapitalChangeType.Add)
{
TotalAssets += changeAmount;
if (isManualOperation)
3 years ago
CostAmount += changeAmount;
}
else if (capitalChangeType == Enums.CapitalChangeType.Reduce)
{
var cumulativeProfitAndLoss = CumulativeProfitAndLoss;
TotalAssets -= changeAmount;
if (isManualOperation)
3 years ago
{
if (cumulativeProfitAndLoss < changeAmount)
CostAmount -= cumulativeProfitAndLoss > 0 ? changeAmount - cumulativeProfitAndLoss : changeAmount;
WithdrawAmount += changeAmount;
3 years ago
}
}
}
3 years ago
}
}