using BaseOUDAL; using Newtonsoft.Json; namespace YLErp.Modules.EodModule.SettlementModule { public class FangDunSettlementServiceModel { } public class HandleTrade { public trade tradeModel { get; set; } public trade_asian_option trade_Asian_Option { get; set; } /// /// 合约编号 (交易编码) /// public string ordid { get; set; } /// /// 账户组 (期货子公司固定使用 10038801) /// public string groupid { get; set; } /// /// 子期权编号 (单腿编号) /// public string sub_ordid { get; set; } /// /// 生效起始日 (effective_date_to和effective_date_from都为开仓日期) /// public DateTime? effective_date_from { get; set; } /// /// 生效截止日(effective_date_to和effective_date_from都为开仓日期) /// public DateTime? effective_date_to { get; set; } /// /// SAC编号(客户编号) /// public string sac_ordid { get { return GetClientInfo(ClientId).Number; } } /// /// 合约名称(标的合约-Call/Put-到期日M-执行价K-亚式期权观察起始日OB 只有亚式期权为例子1,其余都为例子2 例1:C2203-Put-0117M-2692K-1217OB 例2:AU9999-Put-0321M-406K) /// public string ordname { get; set; } /// /// 合约类型区分(VNL 普通期权 BRR 障碍期权 ACL 多触碰点障碍期权 ASN 亚式期权 ESA 增强亚式期权 DGT 二元期权 STG 组合期权 PHX 凤凰期权 BIB 二元障碍期权 SNB 雪球期权 TRN 一触即发期权 UNK 未知类型 RAL 区间累计期权) /// public string contract_type_cls { get; set; } /// /// 多空区分(L 多头 S 空头) /// public string long_short_position_cls { get; set; } /// /// PUTCALL区分 看涨看跌 P 认沽 看跌 C 认购 看涨 /// public string put_call_cls { get; set; } /// /// 结算方式区分 固定为现金C /// public string settlement_type_cls { get; set; } /// /// 行权类型区分 (1 欧式 2 美式) /// public string exercise_type_cls { get; set; } /// /// 合约行权价格(执行价格) /// public double? strike_price { get; set; } /// /// 合约结算币种 (固定为CNY) /// public string settlement_currency { get; set; } /// /// 合约计价币种 (固定为CNY) /// public string pricing_currency { get; set; } /// /// 合约开始日期(effective_date_to和effective_date_from都为开仓日期) /// public DateTime? start_date { get; set; } /// /// 合约到期日期(到期日期) /// public DateTime? maturity_date { get; set; } /// /// 期权费(成交金额) /// public double? premium_amt { get; set; } /// /// 期权费支付日 (权利金应付日) /// public DateTime? premium_date { get; set; } /// /// 参与率 /// public double? participation_rate { get; set; } /// /// Rate2 (默认为0) /// public double levelpercentage { get; set; } /// /// 交易日历区分 (默认是1) /// public string calendar_type_cls { get; set; } /// /// 交易对手名称 (客户名称) /// public string counterparty_name { get; set; } /// /// 交易对手SAC编号(SAC主协议编号) /// public string counterparty_sac_ordid { get { return GetClientInfo(ClientId).MainProtocolCode; } } /// /// 交易日变更规则区分(默认为:1 后移 Following) /// public string businessday_convention_cls { get; set; } /// /// 交易日变更规则区分(默认为:1 后移 Following) /// public string calcrules_cls { get; set; } /// /// 交易日计息规则区分 (默认为:4 工作日/240) /// public string single_multi_cls { get; set; } /// /// 标的权重计算区分 ( 固定为1 ) /// public string weight_calc_cls { get; set; } /// /// 产品类型说明 ( 结构类型:普通期权、奇异期权 ) /// public string additionalproduct_type { get; set; } /// /// 合约贴现率 (分红率 默认为,risk free rate) /// public double? dis_rate { get; set; } /// /// 标的证券代码 (标的代码(不带市场后缀)) /// public string underlying_stkcode { get; set; } /// /// 标的财汇交易市场 (根据交易市场在参考sheet区) /// public string underlying_caihua_trade_market { get { return GetUnderlyingCaihuaTradeMarketByVarietyId(UnderlyingCode); } } /// /// 财华证券类别区分0 (默认为:5.期货) /// public string caihua_setype0_cls { get; set; } /// /// 初始标的价格 (期初标的价格) /// public double? initial_spot { get; set; } /// /// 权重 (默认值等于1) /// public double? weight_rate { get; set; } /// /// 标的红利率 (分红率默认为dis_rate) /// public double? div_rate { get; set; } /// /// 标的波动率 (持仓波动率) /// public double? vol_rate { get; set; } /// /// 融资率 (分红率默认为dis_rate) /// public double? fund_rate { get; set; } /// /// 障碍类型区分 ("DownIn 下限敲入 UpIn 上限敲入 DownOut 下限敲出 UpOut 上限敲出") /// public string barrier_type_cls { get { return GetBarrierType(barrierType); } } /// /// 障碍值 (障碍价格(仅限单障碍的情形)) /// public double? barrier_value { get; set; } /// /// 补偿率 (补偿金额(仅限单障碍的情形)) /// public double? rebate_rate { get; set; } /// /// 敲出价格 (敲出障碍价格) /// public double? knockout_price { get { return GetKIBarrier(IsMoneynessOption, KOBarrier, initial_spot); } } /// /// 敲入价格 (敲入障碍价格) /// public double? knockin_price { get { return GetKIBarrier(IsMoneynessOption, KIBarrier, initial_spot); } } /// /// 息票率 (票息率) /// public double? coupon_rate { get; set; } /// /// 观察日期LIST (观察日期列表(需要列出具体日期及其对应的价格)) /// public string observationdate_list { get; set; } /// /// 观察开始日期 (观察日首日) /// public string observe_start_date { get { if (!string.IsNullOrWhiteSpace(observationdate_list)) { return GetObservationDateByObservationDateStr(observationdate_list).s.ToString("yyyyMMdd"); } return null; } } /// /// 观察结束日期 (观察日尾日) /// public string observe_end_date { get { if (!string.IsNullOrWhiteSpace(observationdate_list)) { return GetObservationDateByObservationDateStr(observationdate_list).e.ToString("yyyyMMdd"); } return null; } } /// /// 观察频率(观察频率:每日\每月) /// public string obsfreq { get; set; } /// /// 算数几何平均区分(根据亚式均价计算方式选择) /// public string avg_type_cls { get { return GetPayoffType(PayoffType); } } /// /// 连续离散平均区分(根据亚式均价计算方式选择) /// public string discrete_type_cls { get { return GetPayoffType(PayoffType); } } /// /// 剩余名义本金(持仓名义本金) /// public double? notional { get; set; } /// /// 预付金 (持仓预付金) /// public double? margin { get; set; } /// /// 亚式期权累积观察标的价格 (亚式均价) /// public double? accu_underlying_price_asian { get; set; } /// /// 亚式期权累计观察日计数 (亚式期权均价当前观察日个数) /// public double accu_past_count_asian { get; set; } /// /// 浮动盈亏 (浮动盈亏) /// public double? float_profit_loss { get; set; } /// /// 实现盈亏 (实现盈亏) /// public double? accu_profit_loss { get; set; } /// /// NPV (pv) /// public double? npv { get; set; } /// /// Delta (delta) /// public double delta { get; set; } /// /// Gamma (gamma) /// public double? gamma { get; set; } /// /// Theta (theta) /// public double? theta { get; set; } /// /// Vega (vega) /// public double? vega { get; set; } /// /// Rho (Rho) /// public double? rho { get; set; } /// /// 结算日期 /// public string settle_date { get; set; } /// /// 标的品种,如玉米2205合约:C2205记为C /// public string product_code { get { if (!string.IsNullOrWhiteSpace(UnderlyingCode)) { return DataCacheProvider.GetVariety(UnderlyingCode).VarietyCode; } return ""; } } /// /// 名义数量按期货合约报价单位记录(份额),如鸡蛋按照500kg /// public double? volume { get; set; } /// /// delta金额 /// public double cashdelta { get; set; } /// /// 权利金单价 /// public double? current_value { get; set; } /// /// 成交金额 /// public double? market_value { get; set; } /// /// 当日盈亏 /// public double? pnl { get; set; } /// /// 单腿期权:cashdelta*21.68%+vega*10% /// 多腿期权:多腿轧差后的cashdelta*21.68%+vega*10% /// public double? stress_test_value { get; set; } /// /// 与volume一致 /// public double? underlying_stk_qty { get; set; } public string UnderlyingCode { get; set; } /// /// 合约乘数 /// public double? underlying_multiplier { get { if (!string.IsNullOrWhiteSpace(UnderlyingCode)) { return DataCacheProvider.GetUnderlyingDataSource().GetData(UnderlyingCode)?.ContractSize; } return 0; } } /// /// 权利金单价,与current_value一致 /// public double? underlying_royalty_price { get; set; } public string IsMoneynessOption { get; set; } public int ClientId { get; internal set; } public string barrierType { get; internal set; } public double? KOBarrier { get; internal set; } public double? KIBarrier { get; internal set; } public string PayoffType { get; internal set; } public int? effective_date_fromToInt { get; set; } public int? effective_date_toToInt { get; set; } public int? start_dateToInt { get; set; } public int? maturity_dateToInt { get; set; } public int? premium_dateToInt { get; set; } public string TradeType { get; internal set; } public int TraderId { get; internal set; } /// /// 获取观察日列表 /// /// /// public (DateTime s, DateTime e) GetObservationDateByObservationDateStr(string ObservationDateStr) { var list = JsonConvert.DeserializeObject>(ObservationDateStr); var startDate = list.OrderBy(l => l.DateTime).FirstOrDefault().DateTime; var endDate = list.OrderBy(l => l.DateTime).LastOrDefault().DateTime; return ((startDate), (endDate)); } public Client GetClientInfo(int ClientId) { var clientdb = new ClientDBContext(); return clientdb.client.First(l => l.id == ClientId); } /// /// 根据障碍类型 获取 简称 /// /// /// public string GetBarrierType(string barrierType) { if (string.IsNullOrEmpty(barrierType)) return ""; var barrierTypeStr = ""; switch (barrierType) { case "上升敲出": barrierTypeStr = "UpOut"; break; case "下降敲出": barrierTypeStr = "DownOut"; break; case "上升敲入": barrierTypeStr = "UpIn"; break; case "下降敲入": barrierTypeStr = "DownIn"; break; } return barrierTypeStr; } /// /// 交易类型 转换简称 /// /// /// public string GetTradeTypeAbbreviation(trade t) { var strType = ""; switch (t.TradeType) { case "香草期权": strType = "VNL"; break; case "障碍期权": if (t.trade_barrier_option.BarrierType.Contains("双障碍敲")) { //二元障碍期权 strType = "BIB"; } else { strType = "BRR"; } break; case "多触碰点障碍期权": //todo strType = "ACL"; break; case "亚式期权": strType = "ASN"; break; case "二元期权": if (t.ExerciseMode == "European") { strType = "DGT"; } else { //一触即发期权 strType = "TRN"; } break; case "结构化交易": strType = "STG"; break; case "凤凰期权": strType = "PHX"; break; case "雪球期权": strType = "SNB"; break; case "区间累计期权": strType = "RAL"; break; default: strType = "UNK"; break; } return strType; } /// /// 获取交易市场 /// /// /// public string GetUnderlyingCaihuaTradeMarketByVarietyId(string underlyingcode) { if (string.IsNullOrWhiteSpace(underlyingcode)) return ""; return DataCacheProvider.GetVariety(underlyingcode)?.TradingMarket.ToString(); } /// /// 敲入敲入障碍价格 /// /// /// /// /// public double? GetKIBarrier(string isMoneynessOption, double? Barrier, double? spotPrice) { if (isMoneynessOption == "是") { return (Barrier * spotPrice); } else { return (Barrier); } } public string GetPayoffType(string payoffType) { var strType = ""; switch (payoffType) { case "ArithmeticAverage": strType = "Arithmetic"; break; case "GeometricAverage": strType = "Geometric"; break; case "DiscreteArithmeticAverage": strType = "Discrete"; break; case "EnhancedArithmeticAverage": strType = "Contonuous"; break; } return strType; } } public class ResponseTrade { /// /// 合约编号 (交易编码) /// public string ordid { get; set; } /// /// 账户组 (期货子公司固定使用 10038801) /// public string groupid { get; set; } /// /// 子期权编号 (单腿编号) /// public string sub_ordid { get; set; } /// /// 生效起始日 (effective_date_to和effective_date_from都为开仓日期) /// public int? effective_date_from { get; set; } /// /// 生效截止日(effective_date_to和effective_date_from都为开仓日期) /// public int? effective_date_to { get; set; } /// /// SAC编号(客户编号) /// public string sac_ordid { get; set; } /// /// 合约名称(标的合约-Call/Put-到期日M-执行价K-亚式期权观察起始日OB 只有亚式期权为例子1,其余都为例子2 例1:C2203-Put-0117M-2692K-1217OB 例2:AU9999-Put-0321M-406K) /// public string ordname { get; set; } /// /// 合约类型区分(VNL 普通期权 BRR 障碍期权 ACL 多触碰点障碍期权 ASN 亚式期权 DGT 二元期权 STG 组合期权 PHX 凤凰期权 BIB 二元障碍期权 SNB 雪球期权 TRN 一触即发期权 UNK 未知类型 RAL 区间累计期权) /// public string contract_type_cls { get; set; } /// /// 多空区分(L 多头 S 空头) /// public string long_short_position_cls { get; set; } /// /// PUTCALL区分 看涨看跌 P 认沽 看跌 C 认购 看涨 /// public string put_call_cls { get; set; } /// /// 结算方式区分 固定为现金C /// public string settlement_type_cls { get; set; } /// /// 行权类型区分 (1 欧式 2 美式) /// public string exercise_type_cls { get; set; } /// /// 合约行权价格(执行价格) /// public double? strike_price { get; set; } /// /// 合约结算币种 (固定为CNY) /// public string settlement_currency { get; set; } /// /// 合约计价币种 (固定为CNY) /// public string pricing_currency { get; set; } /// /// 合约开始日期(effective_date_to和effective_date_from都为开仓日期) /// public int? start_date { get; set; } /// /// 合约到期日期(到期日期) /// public int? maturity_date { get; set; } /// /// 期权费(成交金额) /// public double? premium_amt { get; set; } /// /// 期权费支付日 (权利金应付日) /// public int? premium_date { get; set; } /// /// 参与率 /// public double? participation_rate { get; set; } /// /// Rate2 (默认为0) /// public double levelpercentage { get; set; } /// /// 交易日历区分 (默认是1) /// public string calendar_type_cls { get; set; } /// /// 交易对手名称 (客户名称) /// public string counterparty_name { get; set; } /// /// 交易对手SAC编号(SAC主协议编号) /// public string counterparty_sac_ordid { get; set; } /// /// 交易日变更规则区分(默认为:1 后移 Following) /// public string businessday_convention_cls { get; set; } /// /// 交易日变更规则区分(默认为:1 后移 Following) /// public string calcrules_cls { get; set; } /// /// 交易日计息规则区分 (默认为:4 工作日/240) /// public string single_multi_cls { get; set; } /// /// 标的权重计算区分 ( 固定为1 ) /// public string weight_calc_cls { get; set; } /// /// 产品类型说明 ( 结构类型:普通期权、奇异期权 ) /// public string additionalproduct_type { get; set; } /// /// 合约贴现率 (分红率 默认为,risk free rate) /// public double? dis_rate { get; set; } /// /// 标的证券代码 (标的代码(不带市场后缀)) /// public string underlying_stkcode { get; set; } /// /// 标的财汇交易市场 (根据交易市场在参考sheet区) /// public string underlying_caihua_trade_market { get; set; } /// /// 财华证券类别区分0 (默认为:5.期货) /// public string caihua_setype0_cls { get; set; } /// /// 初始标的价格 (期初标的价格) /// public double? initial_spot { get; set; } /// /// 权重 (默认值等于1) /// public double? weight_rate { get; set; } /// /// 标的红利率 (分红率默认为dis_rate) /// public double? div_rate { get; set; } /// /// 标的波动率 (持仓波动率) /// public double? vol_rate { get; set; } /// /// 融资率 (分红率默认为dis_rate) /// public double? fund_rate { get; set; } /// /// 障碍类型区分 ("DownIn 下限敲入 UpIn 上限敲入 DownOut 下限敲出 UpOut 上限敲出") /// public string barrier_type_cls { get; set; } /// /// 障碍值 (障碍价格(仅限单障碍的情形)) /// public double? barrier_value { get; set; } /// /// 补偿率 (补偿金额(仅限单障碍的情形)) /// public double? rebate_rate { get; set; } /// /// 敲出价格 (敲出障碍价格) /// public double? knockout_price { get; set; } /// /// 敲入价格 (敲入障碍价格) /// public double? knockin_price { get; set; } /// /// 息票率 (票息率) /// public double? coupon_rate { get; set; } /// /// 观察日期LIST (观察日期列表(需要列出具体日期及其对应的价格)) /// public string observationdate_list { get; set; } /// /// 观察开始日期 (观察日首日) /// public string observe_start_date { get; set; } /// /// 观察结束日期 (观察日尾日) /// public string observe_end_date { get; set; } /// /// 观察频率(观察频率:每日\每月) /// public string obsfreq { get; set; } /// /// 算数几何平均区分(根据亚式均价计算方式选择) /// public string avg_type_cls { get; set; } /// /// 连续离散平均区分(根据亚式均价计算方式选择) /// public string discrete_type_cls { get; set; } /// /// 剩余名义本金(持仓名义本金) /// public double? notional { get; set; } /// /// 预付金 (持仓预付金) /// public double? margin { get; set; } /// /// 亚式期权累积观察标的价格 (亚式均价) /// public double? accu_underlying_price_asian { get; set; } /// /// 亚式期权累计观察日计数 (亚式期权均价当前观察日个数) /// public double accu_past_count_asian { get; set; } /// /// 浮动盈亏 (浮动盈亏) /// public double? float_profit_loss { get; set; } /// /// 实现盈亏 (实现盈亏) /// public double? accu_profit_loss { get; set; } /// /// NPV (pv) /// public double? npv { get; set; } /// /// Delta (delta) /// public double? delta { get; set; } /// /// Gamma (gamma) /// public double? gamma { get; set; } /// /// Theta (theta) /// public double? theta { get; set; } /// /// Vega (vega) /// public double? vega { get; set; } /// /// Rho (Rho) /// public double? rho { get; set; } /// /// 结算日期 /// public string settle_date { get; set; } /// /// 标的品种,如玉米2205合约:C2205记为C /// public string product_code { get; set; } /// /// 名义数量按期货合约报价单位记录(份额),如鸡蛋按照500kg /// public double? volume { get; set; } /// /// delta金额 /// public double? cashdelta { get; set; } /// /// 权利金单价 /// public double? current_value { get; set; } /// /// 成交金额 /// public double? market_value { get; set; } /// /// 当日盈亏 /// public double? pnl { get; set; } /// /// 单腿期权:cashdelta*21.68%+vega*10% /// 多腿期权:多腿轧差后的cashdelta*21.68%+vega*10% /// public double? stress_test_value { get; set; } /// /// 与volume一致 /// public double? underlying_stk_qty { get; set; } public string UnderlyingCode { get; set; } /// /// 合约乘数 /// public double? underlying_multiplier { get; set; } /// /// 权利金单价,与current_value一致 /// public double? underlying_royalty_price { get; set; } } public class ObservationDate { public DateTime DateTime { get; set; } public double Price { get; set; } } }