Class ParticipationRateLinear

Direct Known Subclasses:
PermanentImpactNoArbitrage

public class ParticipationRateLinear
extends TransactionFunctionLinear
ParticipationRateLinear implements a Linear Temporary/Permanent Market Impact Function where the Price Change scales linearly with the Trade Rate, along with an Offset. 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
  • Bertsimas, D., and A. W. Lo (1998): Optimal Control of Execution Costs Journal of Financial Markets 1 1-50
  • Chan, L. K. C., and J. Lakonishak (1995): The Behavior of Stock Prices around Institutional Trades Journal of Finance 50 1147-1174
  • Keim, D. B., and A. Madhavan (1997): Transaction Costs and Investment Style: An Inter-exchange Analysis of Institutional Equity Trades Journal of Financial Economics 46 265-292


Author:
Lakshmi Krishnamurthy
  • Constructor Details

    • ParticipationRateLinear

      public ParticipationRateLinear​(double dblOffset, double dblSlope) throws java.lang.Exception
      ParticipationRateLinear Constructor
      Parameters:
      dblOffset - The Offset Market Impact Parameter
      dblSlope - The Linear Market Impact Slope Parameter
      Throws:
      java.lang.Exception - Propagated up from R1ToR1
  • Method Details

    • NoImpact

      public static final ParticipationRateLinear NoImpact()
      Construct a Vanilla Zero-Impact ParticipationRateLinear Instance
      Returns:
      The Vanilla Zero-Impact ParticipationRateLinear Instance
    • SlopeOnly

      public static final ParticipationRateLinear SlopeOnly​(double dblSlope)
      Construct a Vanilla Slope-Only ParticipationRateLinear Instance
      Parameters:
      dblSlope - The Slope
      Returns:
      The Vanilla Slope-Only ParticipationRateLinear Instance
    • slope

      public double slope()
      Retrieve the Linear Market Impact Slope Parameter
      Specified by:
      slope in class TransactionFunctionLinear
      Returns:
      The Linear Market Impact Slope Parameter
    • offset

      public double offset()
      Retrieve the Offset Market Impact Parameter
      Specified by:
      offset in class TransactionFunctionLinear
      Returns:
      The Offset Market Impact Parameter
    • regularize

      public double regularize​(double dblTradeInterval) throws java.lang.Exception
      Description copied from class: TransactionFunction
      Regularize the Input Function using the specified Trade Inputs
      Specified by:
      regularize in class TransactionFunction
      Parameters:
      dblTradeInterval - The Trade Interval
      Returns:
      The Regularize Input
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
    • modulate

      public double modulate​(double dblTradeInterval) throws java.lang.Exception
      Description copied from class: TransactionFunction
      Modulate/Scale the Impact Output
      Specified by:
      modulate in class TransactionFunction
      Parameters:
      dblTradeInterval - The Trade Interval
      Returns:
      The Modulated Output
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
    • evaluate

      public double evaluate​(double dblTradeRate) throws java.lang.Exception
      Description copied from class: R1ToR1
      Evaluate for the given variate
      Specified by:
      evaluate in class R1ToR1
      Parameters:
      dblTradeRate - Variate
      Returns:
      Returns the calculated value
      Throws:
      java.lang.Exception - Thrown if evaluation cannot be done
    • derivative

      public double derivative​(double dblTradeRate, int iOrder) throws java.lang.Exception
      Description copied from class: R1ToR1
      Calculate the derivative as a double
      Overrides:
      derivative in class R1ToR1
      Parameters:
      dblTradeRate - Variate at which the derivative is to be calculated
      iOrder - Order of the derivative to be computed
      Returns:
      The Derivative
      Throws:
      java.lang.Exception - Thrown if Inputs are Invalid