Files
zszq-trs/Framework/YLErp.Core/Models/MarginParamModel.cs
T
2024-05-09 14:06:26 +08:00

61 lines
1.7 KiB
C#

namespace YLErp.Models
{
/// <summary>
/// 预付金参数Model
/// </summary>
public class MarginParamModel
{
private double minPriceChange = 0.01;
/// <summary>
/// 预付金比率
/// </summary>
public double? MarginRate { get; set; }
/// <summary>
/// Span波动率变动(这个值在页面配置上限制为正数)
/// </summary>
public double? VolatilityRate { get; set; }
/// <summary>
/// Span涨跌幅度
/// </summary>
public double? UpDownLimit { get; set; }
/// <summary>
/// Span涨跌幅度是否绝对值
/// </summary>
public bool IsUpDownLimitFixed { get; set; }
/// <summary>
/// 最小价格变动(默认0.01)(最小取0.01)
/// </summary>
public double MinPriceChange
{
get { return minPriceChange; }
set { minPriceChange = value < 0.01 ? 0.01 : value; }
}
/// <summary>
///
/// </summary>
public static MarginParamModel Create(double? MarginRate, string VolatilityRate, string UpDownLimit, bool checkUpDownLimitFixed)
{
var model = new MarginParamModel { MarginRate = MarginRate };
if (NumberHelper.TryParse(VolatilityRate?.TrimToNull(), out var dvalue, out var isPercent))
{
model.VolatilityRate = dvalue;
}
if (NumberHelper.TryParse(UpDownLimit?.TrimToNull(), out dvalue, out isPercent))
{
model.UpDownLimit = dvalue;
model.IsUpDownLimitFixed = checkUpDownLimitFixed && !isPercent;
}
return model;
}
}
}