Package org.drip.execution.athl
Class PermanentImpactNoArbitrage
java.lang.Object
org.drip.function.definition.R1ToR1
org.drip.execution.impact.TransactionFunction
org.drip.execution.impact.TransactionFunctionLinear
org.drip.execution.impact.ParticipationRateLinear
org.drip.execution.athl.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
- 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
- Author:
- Lakshmi Krishnamurthy
-
Constructor Summary
Constructors Constructor Description PermanentImpactNoArbitrage(AssetFlowSettings assetFlowSettings)PermanentImpactNoArbitrage Constructor -
Method Summary
Modifier and Type Method Description AssetFlowSettingsassetFlowSettings()Retrieve the Asset Flow Parametersdoublederivative(double normalizedX, int order)Calculate the Ordered Derivativedoubleevaluate(double normalizedX)Evaluate the Impact for the given Normalized HoldingsdoubleliquidityFactor()Retrieve the Liquidity Factordoublemodulate(double tradeInterval)Modulate/Scale the Impact Outputdoubleoffset()Retrieve the Offset Market Impact Parameterdoubleregularize(double tradeInterval)Regularize the Input Function using the specified Trade Inputsdoubleslope()Retrieve the Linear Market Impact Slope ParameterMethods inherited from class org.drip.execution.impact.ParticipationRateLinear
NoImpact, SlopeOnlyMethods inherited from class org.drip.execution.impact.TransactionFunction
crossHoldingsDerivative, evaluate, leftHoldingsDerivative, rightHoldingsDerivativeMethods inherited from class org.drip.function.definition.R1ToR1
antiDerivative, conditionNumber, differential, differential, integrate, maxima, maxima, minima, minima, poleResidueMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
PermanentImpactNoArbitrage
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
Retrieve the Asset Flow Parameters- Returns:
- The Asset Flow Parameters
-
regularize
public double regularize(double tradeInterval) throws java.lang.ExceptionRegularize the Input Function using the specified Trade Inputs- Overrides:
regularizein classParticipationRateLinear- 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.ExceptionModulate/Scale the Impact Output- Overrides:
modulatein classParticipationRateLinear- 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:
slopein classParticipationRateLinear- Returns:
- The Linear Market Impact Slope Parameter
-
offset
public double offset()Retrieve the Offset Market Impact Parameter- Overrides:
offsetin classParticipationRateLinear- Returns:
- The Offset Market Impact Parameter
-
evaluate
public double evaluate(double normalizedX) throws java.lang.ExceptionEvaluate the Impact for the given Normalized Holdings- Overrides:
evaluatein classParticipationRateLinear- 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.ExceptionCalculate the Ordered Derivative- Overrides:
derivativein classParticipationRateLinear- Parameters:
normalizedX- Normalized Holdingsorder- Order of the derivative to be computed- Returns:
- The Ordered Derivative
- Throws:
java.lang.Exception- Thrown if Inputs are Invalid
-