using Qdp.Pricing.Base.Implementations; namespace YLErp.QdpModule { /// /// /// public static class QdpPricingRequest { public const PricingRequest PV_ONLY = PricingRequest.Pv; public const PricingRequest BASIC_PRICING = PricingRequest.Pv | PricingRequest.Delta; public const PricingRequest PRICE_GREEKS = PricingRequest.Pv | PricingRequest.Delta | PricingRequest.Gamma; public const PricingRequest BASIC_GREEKS = PricingRequest.Pv | PricingRequest.Delta | PricingRequest.Gamma | PricingRequest.Vega | PricingRequest.Theta | PricingRequest.Rho; /// /// 使用提供的pricingRequest和BASIC_GREEKS生成并集 /// public static PricingRequest UnionBaiscGreeks(PricingRequest pricingRequest) { if (pricingRequest == BASIC_GREEKS) { return pricingRequest; } var pricingRequest2 = PricingRequest.None; var arr = new[] { PricingRequest.Pv, PricingRequest.Delta, PricingRequest.Gamma, PricingRequest.Vega, PricingRequest.Theta, PricingRequest.Rho }; foreach (var a in arr) { if (a == (a & pricingRequest)) { pricingRequest2 |= a; } } return pricingRequest2; } } }