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;
}
}
}