using YLErp.Modules.SystemModule; using YLErp.Modules.TradeRiskCalcModule; namespace YLErp.Web.Models { /// /// 风险对冲视图模型 /// public class RiskHedgingViewModel : BasicViewModel { public RiskHedgingViewModel(UserInfo userInfo) : base(userInfo) { var index = 0; VolTpes = new string[3]; if (AppHelper.IsSupportVolTypeOnRiskCalc("对冲")) { VolTpes[index++] = "对冲"; } if (AppHelper.IsSupportVolTypeOnRiskCalc("持仓")) { VolTpes[index++] = "持仓"; } if (AppHelper.IsSupportVolTypeOnRiskCalc("交易曲面")) { VolTpes[index++] = "交易曲面"; } } /// /// 支持的波动率类型集合 /// public string[] VolTpes { get; } /// /// 实时风险查询对象 /// public TradingRiskReqModel ReqModel { get; set; } /// /// 未参与排序的品种 /// public IEnumerable UnsortVarieties { get; set; } /// /// 参与排序的品种 /// public IEnumerable SortVarieties { get; set; } /// /// 自动对冲规则 /// public IEnumerable AutoRules { get; set; } /// /// 是否主视图 /// public bool IsMainView { get; set; } /// /// 用户配置项 /// public RiskHedgingUserConfig UserConfig { get; set; } /// /// 是否权益类页面 /// public bool IsStock { get; set; } /// /// 上一个收盘日 /// public DateTime PreSettleDate { get; set; } /// /// 上一个交易日 /// public DateTime PreTradingDate { get; set; } public List OutRangedUms { get; set; } /// /// 标的价格阈值 /// public IEnumerable UnderlyingAlerts { get; set; } /// /// 获取波动率类型 /// public string GetVolType() { return ReqModel?.VolType.TrimToNull() ?? VolTpes[0] ?? "无"; } /// /// 获取参与排序的品种代码 /// public IEnumerable GetSortVarietyCodes() { if (SortVarieties == null) { return Enumerable.Empty(); } return SortVarieties.Select(n => n.VarietyCode).ToArray(); } } public class UnderlyingPriceChangeLimition { public string UnderlyingCode { get; set; } public double basePrice { get; set; } public double nowPrice { get; set; } public double priceIncreaseRate { get; set; } public double priceDecreaseRate { get; set; } } /// /// 委托下单 /// public class RiskHedgingOrderModel { public string Sign { get; set; } public string Token { get; set; } public string UserId { get; set; } //------------------------------- // 以下来自请求 //------------------------------- /// /// 来自请求 /// public string InstType { get; set; } /// /// 来自请求 /// public IEnumerable Items { get; set; } /// /// 获取交易方向 /// public string GetBuySell(bool deltaGreaterThanZero) { if (InstType.Equals("Stock", StringComparison.OrdinalIgnoreCase)) { return deltaGreaterThanZero ? "卖出" : "买入"; } return deltaGreaterThanZero ? "空头开仓" : "多头开仓"; } public override string ToString() { return InstType; } } /// /// 委托下单项目 /// public class RiskHedgingOrderItem { /// /// 来自请求 /// public string UnderlyingCode { get; set; } /// /// 来自请求 /// public double DeltaInLots { get; set; } public override string ToString() { return UnderlyingCode + "--" + DeltaInLots; } } }