209 lines
12 KiB
C#
209 lines
12 KiB
C#
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; }
|
|
/// <summary>
|
|
/// 标的品种名
|
|
/// </summary>
|
|
public string VarietyName { get; set; }
|
|
public int? VarietyId { get; set; }
|
|
/// <summary>
|
|
/// 系统和用户
|
|
/// </summary>
|
|
public string UnderlyingPriceType { get; set; }
|
|
/// <summary>
|
|
/// 交易数量
|
|
/// </summary>
|
|
public double? TradeAmount { get; set; }
|
|
public string UnderlyingInstrumentType { get; set; }
|
|
/// <summary>
|
|
/// 行权方式
|
|
/// </summary>
|
|
public string ExerciseMode { get; set; }
|
|
/// <summary>
|
|
/// 收益结算
|
|
/// </summary>
|
|
public int SettlementType { get; set; }
|
|
public int id { get; set; }
|
|
public string Name { get; set; }
|
|
public string CnName { get; set; }
|
|
public List<trade> 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; }
|
|
/// <summary>
|
|
/// 中间行权价
|
|
/// </summary>
|
|
public double? MidStrike { get; set; }
|
|
/// <summary>
|
|
/// 行权价间距
|
|
/// </summary>
|
|
public double? StrikeGap { get; set; }
|
|
|
|
public string SeagullType { get; set; }
|
|
public DateTime? MaturityDate { get; set; }
|
|
/// <summary>
|
|
/// 交易日期
|
|
/// </summary>
|
|
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; }
|
|
|
|
/// <summary>
|
|
/// 均价起算日
|
|
/// </summary>
|
|
public DateTime? AveragingPeriodStartDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 行权价类型
|
|
/// </summary>
|
|
public string StrikeType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 亚式期权类型
|
|
/// </summary>
|
|
public string PayoffType { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 组合策略
|
|
/// </summary>
|
|
public static class StructureOption_Code
|
|
{
|
|
public static readonly List<string> SeagullTypes = new List<string> { "Bullish", "Bearish" };
|
|
public static readonly List<Trade_StructureOption> StructureOptions;
|
|
public static readonly List<SelectItem> StructureOptionsCn;
|
|
|
|
static StructureOption_Code()
|
|
{
|
|
StructureOptions = new List<Trade_StructureOption>();
|
|
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<trade> { 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<trade> { 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<trade> { 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<trade> { 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<trade> { 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<trade> { 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<trade> { 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<trade> { 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<trade> { 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<trade> { 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<trade> { 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<trade> { 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<trade> { 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();
|
|
}
|
|
}
|
|
}
|