Class PermanentImpactNoArbitrage


public class PermanentImpactNoArbitrage
extends ParticipationRateLinear
PermanentImpactNoArbitrage implements the Linear Permanent Market Impact with Coefficients that have been determined empirically by Almgren, Thum, Hauptmann, and Li (2005), using the no Quasi-Arbitrage Criterion identified by Huberman and Stanzl (2004). It provides the following Functions:
  • PermanentImpactNoArbitrage Constructor
  • Retrieve the Liquidity Factor
  • Retrieve the Asset Flow Parameters
  • Regularize the Input Function using the specified Trade Inputs
  • Modulate/Scale the Impact Output
  • Retrieve the Linear Market Impact Slope Parameter
  • Retrieve the Offset Market Impact Parameter
  • Evaluate the Impact for the given Normalized Holdings
  • Calculate the Ordered Derivative
The References are:
  • Almgren, R., and N. Chriss (2000): Optimal Execution of Portfolio Transactions Journal of Risk 3 (2) 5-39
  • Almgren, R. (2003): Optimal Execution with Nonlinear Impact Functions and Trading-Enhanced Risk Applied Mathematical Finance 10 (1) 1-18
  • Almgren, R., and N. Chriss (2003): Bidding Principles Risk 97-102
  • Almgren, R., C. Thum, E. Hauptmann, and H. Li (2005): Equity Market Impact Risk 18 (7) 57-62
  • Huberman, G., and W. Stanzl (2004): Price Manipulation and Quasi-arbitrage Econometrics 72 (4) 1247-1275

Module Computational Core Module
Library Numerical Optimizer Library
Project Optimal Impact/Capture Based Trading Trajectories - Deterministic, Stochastic, Static, and Dynamic
Package Almgren-Thum-Hauptmann-Li Calibration
Author:
Lakshmi Krishnamurthy
  • Constructor Details

    • PermanentImpactNoArbitrage

      public PermanentImpactNoArbitrage​(AssetFlowSettings assetFlowSettings) throws java.lang.Exception
      PermanentImpactNoArbitrage Constructor
      Parameters:
      assetFlowSettings - Asset Flow Parameters
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
  • Method Details

    • liquidityFactor

      public double liquidityFactor()
      Retrieve the Liquidity Factor
      Returns:
      The Liquidity Factor
    • assetFlowSettings

      public AssetFlowSettings assetFlowSettings()
      Retrieve the Asset Flow Parameters
      Returns:
      The Asset Flow Parameters
    • regularize

      public double regularize​(double tradeInterval) throws java.lang.Exception
      Regularize the Input Function using the specified Trade Inputs
      Overrides:
      regularize in class ParticipationRateLinear
      Parameters:
      tradeInterval - The Trade Interval
      Returns:
      The Regularize Input
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
    • modulate

      public double modulate​(double tradeInterval) throws java.lang.Exception
      Modulate/Scale the Impact Output
      Overrides:
      modulate in class ParticipationRateLinear
      Parameters:
      tradeInterval - The Trade Interval
      Returns:
      The Modulated Output
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
    • slope

      public double slope()
      Retrieve the Linear Market Impact Slope Parameter
      Overrides:
      slope in class ParticipationRateLinear
      Returns:
      The Linear Market Impact Slope Parameter
    • offset

      public double offset()
      Retrieve the Offset Market Impact Parameter
      Overrides:
      offset in class ParticipationRateLinear
      Returns:
      The Offset Market Impact Parameter
    • evaluate

      public double evaluate​(double normalizedX) throws java.lang.Exception
      Evaluate the Impact for the given Normalized Holdings
      Overrides:
      evaluate in class ParticipationRateLinear
      Parameters:
      normalizedX - Normalized Holdings
      Returns:
      The calculated Impact
      Throws:
      java.lang.Exception - Thrown if evaluation cannot be done
    • derivative

      public double derivative​(double normalizedX, int order) throws java.lang.Exception
      Calculate the Ordered Derivative
      Overrides:
      derivative in class ParticipationRateLinear
      Parameters:
      normalizedX - Normalized Holdings
      order - Order of the derivative to be computed
      Returns:
      The Ordered Derivative
      Throws:
      java.lang.Exception - Thrown if Inputs are Invalid