@using YLErp.DBModels.Helpers; @using System; @using System.Linq; @using System.Collections.Generic; @using YLErp.DBModels; @using YLErp.DBModels.Enums; @model IEnumerable @if (Model.Any(c => c.TradeType == "香草期权")) { var list = Model.Where(c => c.TradeType == "香草期权").ToList();

香草期权

@foreach (var item in list) { }
@item.TradeNumber @switch (item.BuySell) { case "买入": @YLErp.PS.Config.CompanyFullName; break; case "卖出": @item.ClientName; break; default: break; } @item.TradeDate.OtcFormatDate() @item.StartDate.OtcFormatDate() @item.ExerciseDate.OtcFormatDate() @item.OriginalStockEqvNotional.OtcFormatMoney() @(item.ExerciseMode == "European"?"欧式":"美式") @item.OptionType @item.UnderlyingCode
@item.UnderlyingAssetName
@item.SpotPrice @(item.IsMoneynessOptionData ? (item.SpotPrice * item.Strike).OtcFormatUmPrice() : item.Strike.OtcFormatUmPrice())
(K₂=@(item.IsMoneynessOptionData ? item.Strike.OtcFormatPercent(4) : (item.Strike / item.SpotPrice).OtcFormatPercent(4)))
@(((item.PremiumRate ?? (item.TradePrice ?? 0) / item.StockEqvNotional * 100)).OtcFormatPercent()) @(item.InitialMargin>0?item.InitialMargin?.ToString("0"):"0")
(φ=@(item.InitialMargin>0? (item.InitialMargin / item.OriginalStockEqvNotional).OtcFormatPercent(): "0.00%"))
} @if (Model.Any(c => c.TradeType == "雪球期权")) { var list = Model.Where(c => c.TradeType == "雪球期权").ToList();

雪球期权

@foreach (var item in list) { var toSpreadOption = item.trade_snowball.KIPayoffType == KIPayoffTypeEnum.ToCallSpreadOption || item.trade_snowball.KIPayoffType == KIPayoffTypeEnum.ToPutSpreadOption; @if (!item.IsMoneynessOptionData) { } else { } }
@item.TradeNumber @switch (item.BuySell) { case "买入": @YLErp.PS.Config.CompanyFullName; break; case "卖出": @item.ClientName; break; default: break; } @item.TradeDate.OtcFormatDate() @item.StartDate.OtcFormatDate()
@item.ExerciseDate.OtcFormatDate()
@item.OriginalStockEqvNotional.OtcFormatMoney() @item.UnderlyingCode
@item.UnderlyingAssetName
@item.SpotPrice @(item.IsMoneynessOptionData?(item.trade_snowball.KIBarrier * item.SpotPrice).OtcFormatUmPrice():item.trade_snowball.KIBarrier.OtcFormatUmPrice())
(H₁=@(item.IsMoneynessOptionData? item.trade_snowball.KIBarrier.OtcFormatPercent():((item.trade_snowball.KIBarrier / item.SpotPrice).OtcFormatPercent())))
@TradeHelper.GetObDates(item.trade_snowball.ObservationDates) @(item.trade_snowball.KIPayoffType != KIPayoffTypeEnum.None ? @item.trade_snowball.SpreadStrikeAtMaturity1.OtcFormatUmPrice() : "无")
(K₁=@((item.trade_snowball.SpreadStrikeAtMaturity1 / item.SpotPrice).OtcFormatPercent()))
@(toSpreadOption ? item.trade_snowball.SpreadStrikeAtMaturity.OtcFormatUmPrice() : "无")
(K₂=@((item.trade_snowball.SpreadStrikeAtMaturity / item.SpotPrice).OtcFormatPercent()))
@(item.trade_snowball.KIPayoffType != KIPayoffTypeEnum.None ? (item.trade_snowball.SpreadStrikeAtMaturity1 * item.SpotPrice).OtcFormatUmPrice() : "无")
(K₁=@(item.trade_snowball.SpreadStrikeAtMaturity1.OtcFormatPercent()))
@(toSpreadOption ? (item.trade_snowball.SpreadStrikeAtMaturity * item.SpotPrice).OtcFormatUmPrice() : "无")
(K₂=@(item.trade_snowball.SpreadStrikeAtMaturity.OtcFormatPercent()))
@(item.IsMoneynessOptionData?(item.trade_snowball.KOBarrier * item.SpotPrice).OtcFormatUmPrice() : item.trade_snowball.KOBarrier.OtcFormatUmPrice())
(H₂=@(item.IsMoneynessOptionData? item.trade_snowball.KOBarrier.OtcFormatPercent():((item.trade_snowball.KOBarrier / item.SpotPrice).OtcFormatPercent())))
@TradeHelper.GetObDates(item.trade_snowball.KOObservationDates) @item.trade_snowball.KORebate.OtcFormatPercent() @item.trade_snowball.Coupon.OtcFormatPercent() @(item.InitialMargin>0?item.InitialMargin?.ToString("0"):"0")
(φ=@(item.InitialMargin>0? (item.InitialMargin / item.OriginalStockEqvNotional).OtcFormatPercent(): "0.00%"))
} @if (Model.Any(c => c.TradeType == "双鲨期权")) { var list = Model.Where(c => c.TradeType == "双鲨期权").ToList();

双鲨期权

@foreach (var item in list) { }
@item.TradeNumber @switch (item.BuySell) { case "买入": @YLErp.PS.Config.CompanyFullName; break; case "卖出": @item.ClientName; break; default: break; } @item.TradeDate.OtcFormatDate() @item.StartDate.OtcFormatDate()
@item.ExerciseDate.OtcFormatDate()
@item.OriginalStockEqvNotional.OtcFormatMoney() @item.UnderlyingCode
@item.UnderlyingAssetName
@item.SpotPrice @(item.IsMoneynessOptionData?((item.Strike * item.SpotPrice)).OtcFormatUmPrice(): item.Strike.OtcFormatUmPrice())
(K₁=@(item.IsMoneynessOptionData?(item.Strike).OtcFormatPercent():((item.Strike / item.SpotPrice)).OtcFormatPercent()))
@item.ParticipationRate.OtcFormatPercent() @(item.IsMoneynessOptionData?(item.trade_double_sharkfin_option.BarrierLow * item.SpotPrice).OtcFormatUmPrice(): item.trade_double_sharkfin_option.BarrierLow.OtcFormatUmPrice())
(B₁=@(item.IsMoneynessOptionData?item.trade_double_sharkfin_option.BarrierLow.OtcFormatPercent():(item.trade_double_sharkfin_option.BarrierLow / item.SpotPrice).OtcFormatPercent()))
@(item.IsUsePremiumRate==true?item.trade_double_sharkfin_option.RebateRate.OtcFormatPercent():(item.trade_double_sharkfin_option.Rebate * item.SpotPrice).OtcFormatUmPrice()) @(item.IsMoneynessOptionData?((item.trade_double_sharkfin_option.StrikeHigh * item.SpotPrice)).OtcFormatUmPrice(): item.trade_double_sharkfin_option.StrikeHigh.OtcFormatUmPrice())
(K₂=@(item.IsMoneynessOptionData?(item.trade_double_sharkfin_option.StrikeHigh).OtcFormatPercent():((item.trade_double_sharkfin_option.StrikeHigh / item.SpotPrice)).OtcFormatPercent()))
@item.ParticipationRate.OtcFormatPercent() @(item.IsMoneynessOptionData?(item.trade_double_sharkfin_option.BarrierHigh * item.SpotPrice).OtcFormatUmPrice(): item.trade_double_sharkfin_option.BarrierHigh.OtcFormatUmPrice())
(B₂=@(item.IsMoneynessOptionData?item.trade_double_sharkfin_option.BarrierHigh.OtcFormatPercent():(item.trade_double_sharkfin_option.BarrierHigh / item.SpotPrice).OtcFormatPercent()))
@(item.IsUsePremiumRate==true?item.trade_double_sharkfin_option.RebateHighRate.OtcFormatPercent():(item.trade_double_sharkfin_option.RebateHighRate * item.SpotPrice).OtcFormatUmPrice()) @(item.trade_double_sharkfin_option.ObservationDates??"每天") @item.PrincipalRate.OtcFormatPercent() @(item.PremiumRate.OtcFormatPercent()?? (((item.TradePrice ?? 0) / (item.StockEqvNotional)) * 100).OtcFormatPercent()) @(item.IsAnnualized==true?"是":"否")
} @if (Model.Any(c => c.TradeType == "凤凰期权")) { var list = Model.Where(c => c.TradeType == "凤凰期权").ToList();

凤凰期权

@foreach (var item in list) { var toSpreadOption = item.trade_snowball.KIPayoffType == KIPayoffTypeEnum.ToCallSpreadOption || item.trade_snowball.KIPayoffType == KIPayoffTypeEnum.ToPutSpreadOption; @if (item.IsMoneynessOptionData) { } else { } }
@item.TradeNumber @switch (item.BuySell) { case "买入": @YLErp.PS.Config.CompanyFullName; break; case "卖出": @item.ClientName; break; default: break; } @item.TradeDate.OtcFormatDate() @item.StartDate.OtcFormatDate()
@item.ExerciseDate.OtcFormatDate()
@item.OriginalStockEqvNotional.OtcFormatMoney() @item.UnderlyingCode
@item.UnderlyingAssetName
@item.SpotPrice @(item.IsMoneynessOptionData? (item.trade_autocall.KIBarrier * item.SpotPrice).OtcFormatUmPrice() : item.trade_autocall.KIBarrier.OtcFormatUmPrice())
(H₁=@(item.IsMoneynessOptionData? item.trade_autocall.KIBarrier.OtcFormatPercent():((item.trade_autocall.KIBarrier / item.SpotPrice).OtcFormatPercent())))
@(YLErp.DBModels.Helpers.TradeHelper.GetObDates(item.trade_autocall.ObservationDates)) @(item.trade_autocall.KIPayoffType != KIPayoffTypeEnum.None ? (item.trade_autocall.SpreadStrike1 * item.SpotPrice).OtcFormatUmPrice() : "无")
(K₁=@item.trade_autocall.SpreadStrike1.OtcFormatPercent())
@(toSpreadOption ? (item.trade_autocall.SpreadStrike * item.SpotPrice).OtcFormatUmPrice() : "无")
(K₂=@item.trade_autocall.SpreadStrike.OtcFormatPercent())
@((item.trade_autocall.CouponBarrier * item.SpotPrice).OtcFormatUmPrice())
(C=@item.trade_autocall.CouponBarrier.OtcFormatPercent())
@(item.trade_autocall.KIPayoffType != KIPayoffTypeEnum.None ? item.trade_autocall.SpreadStrike1.OtcFormatUmPrice() : "无")
(K₁=@((item.trade_autocall.SpreadStrike1 / item.SpotPrice).OtcFormatPercent()))
@(toSpreadOption ? item.trade_autocall.SpreadStrike1.OtcFormatUmPrice() : "无")
(K₂=@(item.trade_autocall.SpreadStrike / item.SpotPrice).OtcFormatPercent())
@item.trade_autocall.CouponBarrier.OtcFormatUmPrice()
(C=@(item.trade_autocall.CouponBarrier / item.SpotPrice).OtcFormatPercent())
@TradeHelper.GetObDates(item.trade_autocall.KOObservationDates)
@item.trade_autocall.Coupon.OtcFormatPercent() @(item.IsMoneynessOptionData? (item.trade_autocall.KOBarrier * item.SpotPrice).OtcFormatUmPrice() : item.trade_autocall.KOBarrier.OtcFormatUmPrice())
(H₂=@(item.IsMoneynessOptionData? item.trade_autocall.KOBarrier.OtcFormatPercent():((item.trade_autocall.KOBarrier / item.SpotPrice).OtcFormatPercent())))
@TradeHelper.GetObDates(item.trade_autocall.KOObservationDates)
@(item.InitialMargin>0?item.InitialMargin?.ToString("0"):"0")
(φ=@(item.InitialMargin>0? (item.InitialMargin / item.OriginalStockEqvNotional).OtcFormatPercent(): "0.00%"))
} @if (Model.Any(c => c.TradeType == "气囊结构")) { var list = Model.Where(c => c.TradeType == "气囊结构").ToList();

气囊结构

@foreach (var item in list) { }
@item.TradeNumber @switch (item.BuySell) { case "买入": @YLErp.PS.Config.CompanyFullName; break; case "卖出": @item.ClientName; break; default: break; } @item.TradeDate.OtcFormatDate() @item.StartDate.OtcFormatDate() @item.ExerciseDate.OtcFormatDate() @item.OriginalStockEqvNotional.OtcFormatMoney() @item.UnderlyingCode
@item.UnderlyingAssetName
@item.SpotPrice @(item.IsMoneynessOptionData? (item.Strike * item.SpotPrice).OtcFormatUmPrice() : item.Strike.OtcFormatUmPrice())
(K =@(item.IsMoneynessOptionData ? item.Strike.OtcFormatPercent() : (item.Strike / item.SpotPrice).OtcFormatPercent()))
@item.ParticipationRate.OtcFormatPercent() @(item.trade_airbag.HasPayoffLimit?(item.trade_airbag.HighStrike*item.SpotPrice).OtcFormatUmPrice():"无")
(C =@(item.trade_airbag.HasPayoffLimit ? item.trade_airbag.HighStrike.OtcFormatPercent() : "+∞"))
@(item.IsMoneynessOptionData? (item.trade_airbag.Barrier * item.SpotPrice).OtcFormatUmPrice():item.trade_airbag.Barrier.OtcFormatUmPrice())
(H=@(item.IsMoneynessOptionData? item.trade_airbag.Barrier.OtcFormatPercent(): (item.trade_airbag.Barrier / item.SpotPrice).OtcFormatPercent()))
每日 @(((item.PremiumRate ?? (item.TradePrice ?? 0) / item.StockEqvNotional * 100)).OtcFormatPercent()) @(item.InitialMargin>0?item.InitialMargin?.ToString("0"):"0")
(φ=@(item.InitialMargin>0? (item.InitialMargin / item.OriginalStockEqvNotional).OtcFormatPercent(): "0.00%"))
} @if (Model.Any(c => c.TradeType == "二元期权")) { var list = Model.Where(c => c.TradeType == "二元期权").ToList();

二元期权

@**@ @foreach (var item in list) { @if (item.IsUsePremiumRate == true) { } else { } @**@ }
@item.TradeNumber @switch (item.BuySell) { case "买入": @YLErp.PS.Config.CompanyFullName; break; case "卖出": @item.ClientName; break; default: break; } @item.TradeDate.OtcFormatDate() @item.StartDate.OtcFormatDate() @item.ExerciseDate.OtcFormatDate() @item.OriginalStockEqvNotional.OtcFormatMoney() @item.UnderlyingCode
@item.UnderlyingAssetName
@item.SpotPrice @(item.IsMoneynessOptionData? (item.Strike * item.SpotPrice).OtcFormatUmPrice() : item.Strike.OtcFormatUmPrice())
(K =@(item.IsMoneynessOptionData ? item.Strike.OtcFormatPercent() : (item.Strike / item.SpotPrice).OtcFormatPercent()))
@item.OptionType@(item.TradePrice>0 ? (item.trade_binary_option.CashOrNothingAmountRate * item.SpotPrice / item.TradePrice).OtcFormatPercent() :"0")@(item.TradePrice>0 ? (item.trade_binary_option.CashOrNothingAmount / item.TradePrice).OtcFormatPercent():"0")@item.PrincipalRate.OtcFormatPercent()@(item.trade_binary_option.ObservationDates??"每天")@item.ParticipationRate.OtcFormatPercent() @(((item.PremiumRate ?? (item.TradePrice ?? 0) / item.StockEqvNotional * 100)).OtcFormatPercent()) @(item.IsAnnualized==true?"是":"否") @item.TradePrice.OtcFormatMoney()
} @if (Model.Any(c => c.TradeType == "障碍期权")) { var list = Model.Where(c => c.TradeType == "障碍期权").ToList();

障碍期权

@foreach (var item in list) { @if (item.trade_barrier_option.BarrierType == "双障碍敲出" || item.trade_barrier_option.BarrierType == "双障碍敲入") { } else { } }
@item.TradeNumber @switch (item.BuySell) { case "买入": @YLErp.PS.Config.CompanyFullName; break; case "卖出": @item.ClientName; break; default: break; } @item.TradeDate.OtcFormatDate() @item.StartDate.OtcFormatDate() @item.ExerciseDate.OtcFormatDate() @item.OriginalStockEqvNotional.OtcFormatMoney() @item.UnderlyingCode
@item.UnderlyingAssetName
@item.SpotPrice @(item.IsMoneynessOptionData? (item.Strike * item.SpotPrice).OtcFormatUmPrice() : item.Strike.OtcFormatUmPrice())
(K =@(item.IsMoneynessOptionData ? item.Strike.OtcFormatPercent() : (item.Strike / item.SpotPrice).OtcFormatPercent()))
@item.ParticipationRate.OtcFormatPercent() @(item.IsMoneynessOptionData? (item.trade_barrier_option.BarrierPrice * item.SpotPrice).OtcFormatUmPrice() : item.trade_barrier_option.BarrierPrice.OtcFormatUmPrice())
(B₁=@(item.IsMoneynessOptionData? item.trade_barrier_option.BarrierPrice.OtcFormatPercent(): (item.trade_barrier_option.BarrierPrice / item.SpotPrice).OtcFormatPercent()))
@(item.IsMoneynessOptionData? (item.trade_barrier_option.UpperBarrierPrice * item.SpotPrice).OtcFormatUmPrice() : item.trade_barrier_option.UpperBarrierPrice.OtcFormatUmPrice())
(B₂=@(item.IsMoneynessOptionData? item.trade_barrier_option.UpperBarrierPrice.OtcFormatPercent(): (item.trade_barrier_option.UpperBarrierPrice / item.SpotPrice).OtcFormatPercent()))

(B₂=0.00%)
@(item.trade_barrier_option.ObservationDates??"每天") @(item.IsUsePremiumRate==true? item.trade_barrier_option.RebateRate.OtcFormatPercent():(item.trade_barrier_option.Rebate/item.SpotPrice).OtcFormatPercent()) @(item.IsUsePremiumRate==true? item.trade_barrier_option.RebateHighRate.OtcFormatPercent():(item.trade_barrier_option.RebateHigh / item.SpotPrice).OtcFormatPercent()) @item.PrincipalRate.OtcFormatPercent() @(((item.PremiumRate ?? (item.TradePrice ?? 0) / item.StockEqvNotional * 100)).OtcFormatPercent()) @(item.IsAnnualized==true?"是":"否")
} @if (Model.Any(c => c.TradeType == "累计期权")) { var list = Model.Where(c => c.TradeType == "累计期权").ToList();

累计期权

@if (YLErp.PS.Config.ErpElement.AccumulatorShowMultiplier1) { } else { } @foreach (var item in list) { var accumu = item.trade_accumulator_option; @if (YLErp.PS.Config.ErpElement.AccumulatorShowMultiplier1) { } else { } }
@item.TradeNumber @switch (item.BuySell) { case "买入": @YLErp.PS.Config.CompanyFullName; break; case "卖出": @item.ClientName; break; } @item.TradeDate.OtcFormatDate() @item.StartDate.OtcFormatDate() @item.ExerciseDate.OtcFormatDate() @item.OriginalStockEqvNotional.OtcFormatMoney() @item.UnderlyingCode
@item.UnderlyingAssetName
@item.SpotPrice @(item.IsMoneynessOptionData? (item.Strike * item.SpotPrice).OtcFormatUmPrice() : item.Strike.OtcFormatUmPrice())
(K =@(item.IsMoneynessOptionData ? item.Strike.OtcFormatPercent() : (item.Strike / item.SpotPrice).OtcFormatPercent()))
@item.ParticipationRate.OtcFormatPercent() @((item.IsMoneynessOptionData ? accumu.KOBarrier * item.SpotPrice : accumu.KOBarrier).OtcFormatUmPrice())
@TradeHelper.GetObDates(accumu.KOObservationDates)
@(accumu.PayoffType=="固定"?"固定(票息)":accumu.PayoffType) @(accumu.PayoffType == "固定" ? (accumu.CouponPercent?accumu.Coupon.OtcFormatPercent():accumu.Coupon.OtcFormatFlex(2)):"") @(accumu.PayoffType == "固定" ? (accumu.IsFixedCoupon?"否":"是"):"") @(accumu.PayoffType == "固定" ? accumu.CouponDayCount:"") @if (accumu.SettlementMode == "现金当日") { 现金结算(当日) } else if (accumu.SettlementMode == "现金期末") { 现金结算(期末) } else { @(accumu.SettlementMode) } @(accumu.SettlementMode == "现金期末" ? accumu.AccumuType:"")@(item.OptionType=="看涨"?accumu.PutMultiplier:accumu.CallMultiplier)@(accumu.CallMultiplier) @(accumu.PutMultiplier)@(accumu.EarlyTerminate?"是":"否")
}