Class PermanentImpactQuasiArbitrage


public class PermanentImpactQuasiArbitrage
extends TransactionFunctionPower
PermanentImpactQuasiArbitrage implements the Linear Permanent Market Impact with Coefficients that have been determined empirically by Almgren, Thum, Hauptmann, and Li (2005), independent of the no Quasi- Arbitrage Criterion identified by Huberman and Stanzl (2004). It provides the following Functions:
  • PermanentImpactQuasiArbitrage 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 Constant Market Impact Parameter
  • Retrieve the Power Law Exponent 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

    • PermanentImpactQuasiArbitrage

      public PermanentImpactQuasiArbitrage​(AssetFlowSettings assetFlowSettings) throws java.lang.Exception
      PermanentImpactQuasiArbitrage 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
      Specified by:
      regularize in class TransactionFunction
      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
      Specified by:
      modulate in class TransactionFunction
      Parameters:
      tradeInterval - The Trade Interval
      Returns:
      The Modulated Output
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
    • constant

      public double constant()
      Retrieve the Constant Market Impact Parameter
      Specified by:
      constant in class TransactionFunctionPower
      Returns:
      The Constant Market Impact Parameter
    • exponent

      public double exponent()
      Retrieve the Power Law Exponent Market Impact Parameter
      Specified by:
      exponent in class TransactionFunctionPower
      Returns:
      The Power Law Exponent Market Impact Parameter
    • evaluate

      public double evaluate​(double normalizedX) throws java.lang.Exception
      Evaluate the Impact for the given Normalized Holdings
      Specified by:
      evaluate in class R1ToR1
      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 R1ToR1
      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