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