Class PnLExplainCrossPostProcessor

  • All Implemented Interfaces:
    IInputSelectorAware, IPnLExplainFormulaProviderAware, com.quartetfs.biz.pivot.postprocessing.IAggregatedMeasureAware, com.quartetfs.biz.pivot.postprocessing.IPartitionedPostProcessor<com.qfs.vector.IVector>, com.quartetfs.biz.pivot.postprocessing.IPostProcessor<com.qfs.vector.IVector>, com.quartetfs.fwk.types.IExtendedPluginValue, Serializable

    @QuartetExtendedPluginValue(intf=com.quartetfs.biz.pivot.postprocessing.IPostProcessor.class,
                                key="PNL_EXPLAIN_POSTPROCESSOR_CROSS")
    public class PnLExplainCrossPostProcessor
    extends com.quartetfs.biz.pivot.postprocessing.impl.ADynamicAggregationPostProcessor<com.qfs.vector.IVector,​com.qfs.vector.IVector>
    implements IPnLExplainFormulaProviderAware, IInputSelectorAware
    Post-processor used to get PnL approximation for Delta, Gamma and Vega.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.quartetfs.biz.pivot.postprocessing.impl.ADynamicAggregationPostProcessor

        com.quartetfs.biz.pivot.postprocessing.impl.ADynamicAggregationPostProcessor.TransformationProcedure
      • Nested classes/interfaces inherited from class com.quartetfs.biz.pivot.postprocessing.impl.ABaseDynamicAggregationPostProcessor

        com.quartetfs.biz.pivot.postprocessing.impl.ABaseDynamicAggregationPostProcessor.DynamicAggregationPostProcessorPrefetcher
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected com.quartetfs.biz.pivot.cube.hierarchy.ILevelInfo asOfDateLevelInfo  
      static String PLUGIN_KEY  
      protected com.quartetfs.biz.pivot.cube.hierarchy.ILevelInfo riskClassLevelInfo  
      protected com.quartetfs.biz.pivot.cube.hierarchy.ILevelInfo sensitivityNameLevelInfo  
      • Fields inherited from class com.quartetfs.biz.pivot.postprocessing.impl.ABaseDynamicAggregationPostProcessor

        AGGREGATION_FUNCTION, aggregationFunction, DYNAMIC_AGGREGATION_POST_PROCESSOR_PREFETCHER, hierarchiesInfo, isPartitionedOnRangeLevels, LEAF_LEVELS, LEAF_TYPE, leafLevelsInfo, leafType, partitioningLevelsInfo
      • Fields inherited from class com.quartetfs.biz.pivot.postprocessing.impl.AAdvancedPostProcessor

        aggregatedMeasureName, ANALYSIS_LEVELS_PROPERTY, analysisLevelsToExpand, continuousQueryHandlerKeys, derivedContextDependencies, evaluator, EVALUATOR, explicitContextDependencies, logger, measuresProvider, name, OUTPUT_TYPE, outputType, pivot, prefetchers, PRINT_TIMINGS, printTimings, properties, underlyingMeasures
      • Fields inherited from interface com.quartetfs.biz.pivot.postprocessing.IPartitionedPostProcessor

        DEFAULT_PARTITIONING_ON_RANGE_LEVELS
      • Fields inherited from interface com.quartetfs.biz.pivot.postprocessing.IPostProcessor

        CONTINUOUS_QUERY_HANDLER_KEYS, IS_PARTITIONED_ON_RANGE_LEVELS_PROPERTY, SEPARATOR, UNDERLYING_MEASURES
    • Constructor Summary

      Constructors 
      Constructor Description
      PnLExplainCrossPostProcessor​(String name, com.quartetfs.biz.pivot.cube.hierarchy.measures.IPostProcessorCreationContext creationContext)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected com.qfs.vector.IVector evaluateLeaf​(com.quartetfs.biz.pivot.ILocation leafLocation, Object[] underlyingMeasures)
      There are three underlying measures here: the Sensi value, Current date market data, Previous date market data.
      static Function<com.activeviam.desc.build.ICanStartBuildingMeasures,​com.activeviam.desc.build.IHasAtLeastOneMeasure> getPostProcessorDescription​(String measureName, String sensiValueMeasure, String sensiLadderMeasure, String currentDateMeasure1, String previousDateMeasure1, String currentDateMeasure2, String previousDateMeasure2, String asOfDateLevel, String riskFactorLevel, String riskFactorLevel2, String riskClassLevel, String sensitivityNameLevel, String ladderAvailabilityLevel, String sensitivityName, String formatter, String folder)  
      String getType()  
      void init​(Properties properties)  
      static com.activeviam.copper.api.CopperMeasure measure​(com.activeviam.copper.api.CopperMeasure sensiValueMeasure, com.activeviam.copper.api.CopperMeasure sensiLadderMeasure, com.activeviam.copper.api.CopperMeasure currentDateMeasure1, com.activeviam.copper.api.CopperMeasure previousDateMeasure1, com.activeviam.copper.api.CopperMeasure currentDateMeasure2, com.activeviam.copper.api.CopperMeasure previousDateMeasure2, String asOfDateLevel, String riskFactorLevel, String riskFactorLevel2, String riskClassLevel, String sensitivityNameLevel, String ladderAvailabilityLevel, String sensitivityName)  
      protected double removeNaN​(double v)  
      void setInputSelector​(IInputSelector selector)
      Set the implementation of IInputSelector
      void setPnLExplainFormulaProvider​(IPnLExplainFormulaProvider pnLExplainFormulaProvider)
      Set the implementation of IPnLExplainFormulaProvider
      • Methods inherited from class com.quartetfs.biz.pivot.postprocessing.impl.ADynamicAggregationPostProcessor

        createLeafEvaluationProcedure, evaluateLeaf
      • Methods inherited from class com.quartetfs.biz.pivot.postprocessing.impl.ABaseDynamicAggregationPostProcessor

        checkLeafType, checkPrefetchers, compute, computeLeafType, computeLeafTypeFromGenericType, computePartitioningLevels, computePrefetchFilter, createAggregationFunction, createPrefetchers, getAggregationFunction, getHierarchiesInfo, getLeafLevelsInfo, getLeafType, getTypeFromLiteralType, handleNoLeafLevel, initializeLeafLevels, initializeUnderlyingMeasures, reduce, reduceLeavesAndContribute, retrieveLeaves, setPartitioningLevels, supportsAnalysisLevels
      • Methods inherited from class com.quartetfs.biz.pivot.postprocessing.impl.AAdvancedPostProcessor

        addContextDependency, checkInterruption, checkOutputType, computeNamePath, computeOutputType, createEvaluator, expandResult, getActivePivot, getContext, getContextDependencies, getContinuousQueryHandlerKeys, getCurrentMeasure, getDatastoreVersion, getDerivedContextDependencies, getExpansionProcedure, getGenericOutputType, getMeasuresProvider, getName, getOutputType, getOutputTypeFromGenericClassParameter, getOutputTypeFromProperties, getPrefetchers, getProperties, getQueryCache, getTypeFromClass, handleCircularDependency, handleNotSupportedAnalysisLevels, handleUnknownUnderlyingMeasure, hideEvaluator, initializeContinuousQueryHandlerKeys, removeAnalysisLevelsFromFilter, restrictLocationAnalysisLevels, retrieveAnalysisLevelsToExpand, retrieveNamedPrefetchAggregatesWithAnalysisLevels, retrievePrefetchAggregates, retrievePrefetchAggregatesWithAnalysisLevels, setAggregatedMeasureName, toString
      • Methods inherited from interface com.quartetfs.biz.pivot.postprocessing.IPostProcessor

        getContextDependencies, getContinuousQueryHandlerKeys, getName, getOutputType, getPrefetchers, getProperties
    • Field Detail

      • sensitivityNameLevelInfo

        protected com.quartetfs.biz.pivot.cube.hierarchy.ILevelInfo sensitivityNameLevelInfo
      • asOfDateLevelInfo

        protected com.quartetfs.biz.pivot.cube.hierarchy.ILevelInfo asOfDateLevelInfo
      • riskClassLevelInfo

        protected com.quartetfs.biz.pivot.cube.hierarchy.ILevelInfo riskClassLevelInfo
    • Constructor Detail

      • PnLExplainCrossPostProcessor

        public PnLExplainCrossPostProcessor​(String name,
                                            com.quartetfs.biz.pivot.cube.hierarchy.measures.IPostProcessorCreationContext creationContext)
    • Method Detail

      • getPostProcessorDescription

        public static Function<com.activeviam.desc.build.ICanStartBuildingMeasures,​com.activeviam.desc.build.IHasAtLeastOneMeasure> getPostProcessorDescription​(String measureName,
                                                                                                                                                                      String sensiValueMeasure,
                                                                                                                                                                      String sensiLadderMeasure,
                                                                                                                                                                      String currentDateMeasure1,
                                                                                                                                                                      String previousDateMeasure1,
                                                                                                                                                                      String currentDateMeasure2,
                                                                                                                                                                      String previousDateMeasure2,
                                                                                                                                                                      String asOfDateLevel,
                                                                                                                                                                      String riskFactorLevel,
                                                                                                                                                                      String riskFactorLevel2,
                                                                                                                                                                      String riskClassLevel,
                                                                                                                                                                      String sensitivityNameLevel,
                                                                                                                                                                      String ladderAvailabilityLevel,
                                                                                                                                                                      String sensitivityName,
                                                                                                                                                                      String formatter,
                                                                                                                                                                      String folder)
      • measure

        public static com.activeviam.copper.api.CopperMeasure measure​(com.activeviam.copper.api.CopperMeasure sensiValueMeasure,
                                                                      com.activeviam.copper.api.CopperMeasure sensiLadderMeasure,
                                                                      com.activeviam.copper.api.CopperMeasure currentDateMeasure1,
                                                                      com.activeviam.copper.api.CopperMeasure previousDateMeasure1,
                                                                      com.activeviam.copper.api.CopperMeasure currentDateMeasure2,
                                                                      com.activeviam.copper.api.CopperMeasure previousDateMeasure2,
                                                                      String asOfDateLevel,
                                                                      String riskFactorLevel,
                                                                      String riskFactorLevel2,
                                                                      String riskClassLevel,
                                                                      String sensitivityNameLevel,
                                                                      String ladderAvailabilityLevel,
                                                                      String sensitivityName)
      • init

        public void init​(Properties properties)
                  throws com.quartetfs.fwk.QuartetException
        Specified by:
        init in interface com.quartetfs.biz.pivot.postprocessing.IPostProcessor<com.qfs.vector.IVector>
        Overrides:
        init in class com.quartetfs.biz.pivot.postprocessing.impl.ABaseDynamicAggregationPostProcessor<com.qfs.vector.IVector,​com.qfs.vector.IVector>
        Throws:
        com.quartetfs.fwk.QuartetException
      • evaluateLeaf

        protected com.qfs.vector.IVector evaluateLeaf​(com.quartetfs.biz.pivot.ILocation leafLocation,
                                                      Object[] underlyingMeasures)
        There are three underlying measures here: the Sensi value, Current date market data, Previous date market data. The PnL explain computation is done in the method calculatePnL.
        Specified by:
        evaluateLeaf in class com.quartetfs.biz.pivot.postprocessing.impl.ADynamicAggregationPostProcessor<com.qfs.vector.IVector,​com.qfs.vector.IVector>
      • removeNaN

        protected double removeNaN​(double v)
      • getType

        public String getType()
        Specified by:
        getType in interface com.quartetfs.fwk.types.IExtendedPluginValue