using YLErp.QdpModule; namespace YLErp.Modules.TradeModule.Structure_dz { public class DZStructureService : YLBaseService { public DZStructureService(OptUserInfo userInfo) : base(userInfo) { } public List getStructureList(string structure) { List structures = new List(); if (string.IsNullOrWhiteSpace(structure)) { for (int i = 0; i < 4; i++) { Structure s = new Structure(); s.OptionType = "None"; s.Strike = null; s.BarrierPrice = null; s.Multiplier = null; s.RAMP = ""; s.IsAccAlSrike = null; structures.Add(s); } } else { structures = JsonHelper.Deserialize>(structure); } return structures; } /// /// 生成 string 示例 获取数据可做参考 /// /// /// public void gettrade_structure() { trade_structure trade_Structure = new trade_structure(); trade_Structure.UnderlyingCode = "A00"; trade_Structure.BuySell = "买入"; trade_Structure.OriginalNotional = 500; trade_Structure.SpotPrice = 6500; trade_Structure.TradeDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"); trade_Structure.ExerciseDate = DateTime.Now.ToString("yyyy-MM-dd"); trade_Structure.SettlementType = "Cash"; List structures = new List(); List observations = new List(); var dt = QdpObservationHelper.GetDatesWithFixedTerm(DateTime.Now.AddDays(-7), DateTime.Now, "1D"); foreach (var item in dt) { ObservationDate date = new ObservationDate(); if (item.Day == 18) { date.ValueDate = item.ToString("yyyy-MM-dd"); date.FixedPrice = 6666; date.IsClosed = true; date.ClosePrice = 6666; } else { date.ValueDate = item.ToString("yyyy-MM-dd"); date.FixedPrice = 6666; date.IsClosed = false; date.ClosePrice = null; } observations.Add(date); } for (int i = 0; i < 4; i++) { Structure structure = new Structure(); if(i==0) { structure.OptionType = "Call"; structure.Strike = 6666; structure.BarrierPrice = 7000; structure.Multiplier = 1; structure.RAMP = ""; structure.IsAccAlSrike = false; } else { structure.OptionType = "None"; structure.Strike = null; structure.BarrierPrice = null; structure.Multiplier = null; structure.RAMP = ""; structure.IsAccAlSrike = null; } structures.Add(structure); } trade_Structure.structures = structures; trade_Structure.observations = observations; string b = trade_Structure.ToJson(); } } public class trade_structure { public string UnderlyingCode { get; set; } public string BuySell { get; set; } public double? OriginalNotional { get; set; } public double? SpotPrice { get; set; } public string TradeDate { get; set; } public string ExerciseDate { get; set; } public string SettlementType { get; set; } public double? Vol { get; set; } public List structures { get; set; } public List observations { get; set; } } public class Structure { public string OptionType { get; set; } public double? Strike { get; set; } public double? BarrierPrice { get; set; } public double? Multiplier { get; set; } public string RAMP { get; set; } public bool? IsAccAlSrike { get; set; } } public class ObservationDate { public string ValueDate { get; set; } public double? FixedPrice { get; set; } public bool IsClosed { get; set; } public double? ClosePrice { get; set; } } }