Class PowerVarianceObjectiveUtility

java.lang.Object
org.drip.execution.risk.PowerVarianceObjectiveUtility
All Implemented Interfaces:
ObjectiveUtility

public class PowerVarianceObjectiveUtility
extends java.lang.Object
implements ObjectiveUtility
PowerVarianceObjectiveUtility implements the Mean-Power-Variance Objective Utility Function that needs to be optimized to extract the Optimal Execution Trajectory. The Exact Objective Function is of the Form: U[x] = E[x] + lambda * (V[x] ^p) where p is greater than 0. p = 1 is the Regular Mean-Variance, and p = 0.5 is VaR Minimization (L-VaR). The References are:

  • Almgren, R., and N. Chriss (1999): Value under Liquidation Risk 12 (12)
  • Almgren, R., and N. Chriss (2000): Optimal Execution of Portfolio Transactions Journal of Risk 3 (2) 5-39
  • Almgren, R. (2003): Optimal Execution with Non-linear Impact Functions and Trading Enhanced Risk Applied Mathematical Finance 10 (1) 1-18
  • Artzner, P., F. Delbaen, J. M. Eber, and D. Heath (1999): Coherent Measures of Risk Mathematical Finance 9 203-228
  • Basak, S., and A. Shapiro (2001): Value-at-Risk Based Risk Management: Optimal Policies and Asset Prices Review of Financial Studies 14 371-405


Author:
Lakshmi Krishnamurthy
  • Constructor Summary

    Constructors
    Constructor Description
    PowerVarianceObjectiveUtility​(double dblVarianceExponent, double dblRiskAversion)
    PowerVarianceObjectiveUtility Constructor
  • Method Summary

    Modifier and Type Method Description
    static PowerVarianceObjectiveUtility LiquidityVaR​(double dblRiskAversion)
    Generate the Liquidity VaR Version of the Power Variance Utility Function
    double riskAversion()
    Retrieve the Risk Aversion Parameter
    ControlNodesGreek sensitivity​(TrajectoryControlNodesGreek tcngExpectation, TrajectoryControlNodesGreek tcngVariance)
    Generate the Objective Function Sensitivity given the Expectation and the Variance Control Node Sensitivity
    double varianceExponent()
    Retrieve the Variance Exponent

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PowerVarianceObjectiveUtility

      public PowerVarianceObjectiveUtility​(double dblVarianceExponent, double dblRiskAversion) throws java.lang.Exception
      PowerVarianceObjectiveUtility Constructor
      Parameters:
      dblVarianceExponent - The Variance Exponent
      dblRiskAversion - The Risk Aversion Parameter
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
  • Method Details

    • LiquidityVaR

      public static final PowerVarianceObjectiveUtility LiquidityVaR​(double dblRiskAversion)
      Generate the Liquidity VaR Version of the Power Variance Utility Function
      Parameters:
      dblRiskAversion - The Risk Aversion Parameter
      Returns:
      The Liquidity VaR Version of the Power Variance Utility Function
    • riskAversion

      public double riskAversion()
      Retrieve the Risk Aversion Parameter
      Returns:
      The Risk Aversion Parameter
    • varianceExponent

      public double varianceExponent()
      Retrieve the Variance Exponent
      Returns:
      The Variance Exponent
    • sensitivity

      public ControlNodesGreek sensitivity​(TrajectoryControlNodesGreek tcngExpectation, TrajectoryControlNodesGreek tcngVariance)
      Description copied from interface: ObjectiveUtility
      Generate the Objective Function Sensitivity given the Expectation and the Variance Control Node Sensitivity
      Specified by:
      sensitivity in interface ObjectiveUtility
      Parameters:
      tcngExpectation - The Control Node Trajectory Expectation Sensitivity
      tcngVariance - The Control Node Trajectory Variance Sensitivity
      Returns:
      The Control Node Trajectory Objective Function Sensitivity Sensitivity