using YLErp.Modules.CalculationModule; namespace YLErp.Modules.ScenarioModule { /// /// 情景分析计算结果 /// public class ScenarioCalcResult { public string ConfigName { get; set; } public IEnumerable Trades { get; set; } public IEnumerable Underlyings { get; set; } public IEnumerable ResultItems { get; set; } public string xType { get; set; } public string yType { get; set; } public IEnumerable xRates { get; set; } public IEnumerable yRates { get; set; } } /// /// 情景分析计算结果单项 /// public class ScenarioCalcResultItem { public int xIndex { get; set; } public int yIndex { get; set; } public string UnderlyingCode { get; set; } public string UnderlyingPrice { get; set; } public int TradeId { get; set; } public double ZeroPv { get; set; } public double Pv { get; set; } public double Delta { get; set; } public double Gamma { get; set; } public double Theta { get; set; } public double Vega { get; set; } public double PnL { get; set; } public double DeltaChg { get; set; } public double DeltaInLots { get; set; } public double DeltaCash { get; set; } public double GammaCash { get; set; } public void AddValueResult(TradeValueResult valueResult, double contractSize, double zeroPv, double zeroDelta) { Pv += NumberHelper.Normalize(valueResult.Pv); Delta += NumberHelper.Normalize(valueResult.Delta); Gamma += NumberHelper.Normalize(valueResult.Gamma); Theta += NumberHelper.Normalize(valueResult.Theta); Vega += NumberHelper.Normalize(valueResult.Vega); PnL += NumberHelper.Normalize(valueResult.Pv - zeroPv); DeltaChg += NumberHelper.Normalize(valueResult.Delta - zeroDelta); DeltaCash += NumberHelper.Normalize(valueResult.DeltaCash); GammaCash += NumberHelper.Normalize(valueResult.GammaCash); ZeroPv += Math.Abs(NumberHelper.Normalize(zeroPv)); DeltaInLots = NumberHelper.Normalize(Delta) / (contractSize < 1 ? 1 : contractSize); } } }