using YLErp.Models; namespace YLErp.Model { public class Trade_StructureOption { public int? TraderId { get; set; } public int? AssetId { get; set; } public int? ClientId { get; set; } /// /// 标的品种名 /// public string VarietyName { get; set; } public int? VarietyId { get; set; } /// /// 系统和用户 /// public string UnderlyingPriceType { get; set; } /// /// 交易数量 /// public double? TradeAmount { get; set; } public string UnderlyingInstrumentType { get; set; } /// /// 行权方式 /// public string ExerciseMode { get; set; } /// /// 收益结算 /// public int SettlementType { get; set; } public int id { get; set; } public string Name { get; set; } public string CnName { get; set; } public List trades { get; set; } public int UnderlyingId { get; set; } public string UnderlyingCode { get; set; } public string BuySell { get; set; } public string OptionType { get; set; } public double Notional { get; set; } public double Notional2 { get; set; } //UnderlyingInstrumentType: "CommodityFutures" public DateTime? ExerciseDate { get; set; } public DateTime? ExerciseDate2 { get; set; } public double? SpotPrice { get; set; } public double? Strike { get; set; } public double? Strike2 { get; set; } public double? Strike3 { get; set; } public double? Strike4 { get; set; } /// /// 中间行权价 /// public double? MidStrike { get; set; } /// /// 行权价间距 /// public double? StrikeGap { get; set; } public string SeagullType { get; set; } public DateTime? MaturityDate { get; set; } /// /// 交易日期 /// public DateTime TradeDate { get; set; } public double? PremiumRate { get; set; } public double? Premium { get; set; } public double InitialMarginRatio { get; set; } public double InitialMarginRatioPercent { get; set; } public double PositionMarginRatio { get; set; } public double PositionMarginRatioPercent { get; set; } public Variety Variety { get; set; } /// /// 均价起算日 /// public DateTime? AveragingPeriodStartDate { get; set; } /// /// 行权价类型 /// public string StrikeType { get; set; } /// /// 亚式期权类型 /// public string PayoffType { get; set; } } /// /// 组合策略 /// public static class StructureOption_Code { public static readonly List SeagullTypes = new List { "Bullish", "Bearish" }; public static readonly List StructureOptions; public static readonly List StructureOptionsCn; static StructureOption_Code() { StructureOptions = new List(); Trade_StructureOption BullSpread = new Trade_StructureOption() { BuySell = "卖出", CnName = "牛市价差", Name = "Bull Spread", OptionType = "看涨", Notional = 1 }; trade BullSpread1 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade BullSpread2 = new trade() {/* UnderlyingInstrumentType = "CommodityFutures",*/ TradeType = "香草期权", ExerciseMode = "European" }; BullSpread.trades = new List { BullSpread1, BullSpread2 }; StructureOptions.Add(BullSpread); Trade_StructureOption BearSpread = new Trade_StructureOption() { CnName = "熊市价差", BuySell = "卖出", Name = "Bear Spread", OptionType = "看涨", Notional = 1 }; trade BearSpread1 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade BearSpread2 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; BearSpread.trades = new List { BearSpread1, BearSpread2 }; StructureOptions.Add(BearSpread); Trade_StructureOption AsianBearSpread = new Trade_StructureOption() { CnName = "亚式熊市价差", BuySell = "卖出", Name = "Asian Bear Spread", OptionType = "看涨", Notional = 1 }; trade AsianBearSpread1 = new trade() { TradeType = "亚式期权", ExerciseMode = "European" }; trade AsianBearSpread2 = new trade() { TradeType = "亚式期权", ExerciseMode = "European" }; AsianBearSpread.trades = new List { AsianBearSpread1, AsianBearSpread2 }; StructureOptions.Add(AsianBearSpread); Trade_StructureOption Straddle = new Trade_StructureOption() { CnName = "跨式组合", BuySell = "买入", Name = "Straddle", Notional = 1 }; trade Straddle1 = new trade() { OptionType = "看涨", TradeType = "香草期权", ExerciseMode = "European" }; trade Straddle2 = new trade() { OptionType = "看跌", TradeType = "香草期权", ExerciseMode = "European" }; Straddle.trades = new List { Straddle1, Straddle2 }; StructureOptions.Add(Straddle); Trade_StructureOption Strangle = new Trade_StructureOption() { CnName = "宽跨式组合", BuySell = "买入", Name = "Strangle", Notional = 1 }; trade Strangle1 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade Strangle2 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; Strangle.trades = new List { Strangle1, Strangle2 }; StructureOptions.Add(Strangle); Trade_StructureOption Preplicating = new Trade_StructureOption() { CnName = "复制标的资产", BuySell = "买入", Name = "Preplicating Underlying", Notional = 1 }; trade Preplicating1 = new trade() { OptionType = "看涨", TradeType = "香草期权", ExerciseMode = "European" }; trade Preplicating2 = new trade() { OptionType = "看跌", TradeType = "香草期权", ExerciseMode = "European" }; Preplicating.trades = new List { Preplicating1, Preplicating2 }; StructureOptions.Add(Preplicating); Trade_StructureOption Butterfly = new Trade_StructureOption() { CnName = "蝶式组合", OptionType = "看涨", BuySell = "买入", Name = "Butterfly", Notional = 1 }; trade Butterfly1 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade Butterfly2 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade Butterfly3 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; Butterfly.trades = new List { Butterfly1, Butterfly2, Butterfly3 }; StructureOptions.Add(Butterfly); Trade_StructureOption Condor = new Trade_StructureOption() { CnName = "飞鹰式组合", OptionType = "看涨", BuySell = "买入", Name = "Condor", Notional = 1 }; trade Condor1 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade Condor2 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade Condor3 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade Condor4 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; Condor.trades = new List { Condor1, Condor2, Condor3, Condor4 }; StructureOptions.Add(Condor); Trade_StructureOption RatioSpread = new Trade_StructureOption() { CnName = "比例价差", OptionType = "看涨", BuySell = "买入", Name = "Ratio Spread", Notional = 1, Notional2 = 1 }; trade RatioSpread1 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade RatioSpread2 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; RatioSpread.trades = new List { RatioSpread1, RatioSpread2 }; StructureOptions.Add(RatioSpread); Trade_StructureOption CalenderSpread = new Trade_StructureOption() { CnName = "日历价差", OptionType = "看涨", BuySell = "买入", Name = "Calender Spread", Notional = 1 }; trade CalenderSpread1 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; trade CalenderSpread2 = new trade() { TradeType = "香草期权", ExerciseMode = "European" }; CalenderSpread.trades = new List { CalenderSpread1, CalenderSpread2 }; StructureOptions.Add(CalenderSpread); Trade_StructureOption BoxSpread = new Trade_StructureOption() { CnName = "箱式价差", BuySell = "买入", Name = "Box Spread", Notional = 1 }; trade BoxSpread1 = new trade() { OptionType = "看涨", BuySell = "买入", TradeType = "香草期权", ExerciseMode = "European" }; trade BoxSpread2 = new trade() { OptionType = "看跌", BuySell = "卖出", TradeType = "香草期权", ExerciseMode = "European" }; trade BoxSpread3 = new trade() { OptionType = "看跌", BuySell = "买入", TradeType = "香草期权", ExerciseMode = "European" }; trade BoxSpread4 = new trade() { OptionType = "看涨", BuySell = "卖出", TradeType = "香草期权", ExerciseMode = "European" }; BoxSpread.trades = new List { BoxSpread1, BoxSpread2, BoxSpread3, BoxSpread4 }; StructureOptions.Add(BoxSpread); Trade_StructureOption RiskReversal = new Trade_StructureOption() { CnName = "风险逆转", OptionType = "看涨", BuySell = "买入", Name = "Risk Reversal", Notional = 1 }; trade RiskReversal1 = new trade() { OptionType = "看涨", BuySell = "买入", TradeType = "香草期权", ExerciseMode = "European" }; trade RiskReversal2 = new trade() { OptionType = "看跌", BuySell = "卖出", TradeType = "香草期权", ExerciseMode = "European" }; RiskReversal.trades = new List { RiskReversal1, RiskReversal2 }; StructureOptions.Add(RiskReversal); //由海鸥式组合改为三领口 Trade_StructureOption Collar = new Trade_StructureOption() { CnName = "三领口组合", OptionType = "看涨", BuySell = "买入", Name = "Collar", Notional = 1, SeagullType = "Bullish" }; trade Seagull1 = new trade() { OptionType = "看涨", BuySell = "卖出", TradeType = "香草期权", ExerciseMode = "European" }; trade Seagull2 = new trade() { OptionType = "看跌", BuySell = "买入", TradeType = "香草期权", ExerciseMode = "European" }; trade Seagull3 = new trade() { OptionType = "看跌", BuySell = "卖出", TradeType = "香草期权", ExerciseMode = "European" }; Collar.trades = new List { Seagull1, Seagull2, Seagull3 }; StructureOptions.Add(Collar); foreach (var item in StructureOptions) { item.UnderlyingInstrumentType = "商品期货"; } //初始化 StructureOptions //组合报价页排除掉亚式熊式价差期权 StructureOptionsCn = StructureOptions .Where(s => s.Name != "Asian Bear Spread") .Select(s => new SelectItem { Text = s.CnName, Value = s.Name }) .ToList(); } } }