54 lines
1.7 KiB
C#
54 lines
1.7 KiB
C#
namespace YLErp.Modules.ExchangeOptionTradeModule
|
|
{
|
|
/// <summary>
|
|
/// 场内期权波动率保存服务
|
|
/// </summary>
|
|
public class ExchangeOptionVolSaveService : YLBaseService
|
|
{
|
|
public ExchangeOptionVolSaveService(OptUserInfo userInfo) : base(userInfo)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存场内期权波动率
|
|
/// </summary>
|
|
public int SaveExchangeOptionVol(string optionCode, DateTime valueDate, double volValue, ExchangeOptionVolUseFlag useFlag = ExchangeOptionVolUseFlag.FixedValue)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(optionCode))
|
|
{
|
|
throw new ArgumentException("参数不能为空值", nameof(optionCode));
|
|
}
|
|
|
|
if (useFlag == ExchangeOptionVolUseFlag.FixedValue && volValue < 0)
|
|
{
|
|
throw new ArgumentException("请设置合理的场内期权波动率", nameof(volValue));
|
|
}
|
|
|
|
valueDate = valueDate.Date;
|
|
|
|
var record = DbContext.exchange_option_vol.FirstOrDefault(x => x.OptionCode == optionCode && x.ValueDate == valueDate);
|
|
|
|
if (record == null)
|
|
{
|
|
record = new ExchangeOptionVol()
|
|
{
|
|
OptionCode = optionCode,
|
|
ValueDate = valueDate,
|
|
Volatility = volValue
|
|
};
|
|
|
|
DbContext.exchange_option_vol.Add(record);
|
|
}
|
|
else if (useFlag == ExchangeOptionVolUseFlag.FixedValue)
|
|
{
|
|
record.Volatility = volValue;
|
|
}
|
|
|
|
record.UseFlag = useFlag;
|
|
record.OptId = UserId;
|
|
record.OptDate = OptDate;
|
|
return DbContext.SaveChanges();
|
|
}
|
|
}
|
|
}
|