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; }
}
}