159 lines
4.7 KiB
C#
159 lines
4.7 KiB
C#
using YLErp.QdpModule;
|
|
|
|
namespace YLErp.Modules.TradeModule.Structure_dz
|
|
{
|
|
public class DZStructureService : YLBaseService
|
|
{
|
|
public DZStructureService(OptUserInfo userInfo) : base(userInfo)
|
|
{
|
|
}
|
|
|
|
public List<Structure> getStructureList(string structure)
|
|
{
|
|
List<Structure> structures = new List<Structure>();
|
|
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<List<Structure>>(structure);
|
|
}
|
|
return structures;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 生成 string 示例 获取数据可做参考
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
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<Structure> structures = new List<Structure>();
|
|
List<ObservationDate> observations = new List<ObservationDate>();
|
|
|
|
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<Structure> structures { get; set; }
|
|
|
|
public List<ObservationDate> 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; }
|
|
}
|
|
}
|