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). 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
- Author:
- Lakshmi Krishnamurthy
-
Constructor Summary
Constructors Constructor Description PermanentImpactNoArbitrage(AssetFlowSettings afp)
PermanentImpactNoArbitrage Constructor -
Method Summary
Modifier and Type Method Description AssetFlowSettings
assetFlowParameters()
Retrieve the Asset Flow Parametersdouble
derivative(double dblNormalizedX, int iOrder)
Calculate the derivative as a doubledouble
evaluate(double dblNormalizedX)
Evaluate for the given variatedouble
liquidityFactor()
Retrieve the Liquidity Factordouble
modulate(double dblTradeInterval)
Modulate/Scale the Impact Outputdouble
offset()
Retrieve the Offset Market Impact Parameterdouble
regularize(double dblTradeInterval)
Regularize the Input Function using the specified Trade Inputsdouble
slope()
Retrieve the Linear Market Impact Slope ParameterMethods inherited from class org.drip.execution.impact.ParticipationRateLinear
NoImpact, SlopeOnly
Methods inherited from class org.drip.execution.impact.TransactionFunction
crossHoldingsDerivative, evaluate, leftHoldingsDerivative, rightHoldingsDerivative
Methods inherited from class org.drip.function.definition.R1ToR1
antiDerivative, conditionNumber, differential, differential, integrate, maxima, maxima, minima, minima, poleResidue
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
PermanentImpactNoArbitrage
PermanentImpactNoArbitrage Constructor- Parameters:
afp
- The 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
-
assetFlowParameters
Retrieve the Asset Flow Parameters- Returns:
- The Asset Flow Parameters
-
regularize
public double regularize(double dblTradeInterval) throws java.lang.ExceptionDescription copied from class:TransactionFunction
Regularize the Input Function using the specified Trade Inputs- Overrides:
regularize
in classParticipationRateLinear
- 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.ExceptionDescription copied from class:TransactionFunction
Modulate/Scale the Impact Output- Overrides:
modulate
in classParticipationRateLinear
- Parameters:
dblTradeInterval
- The Trade Interval- Returns:
- The Modulated Output
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
slope
public double slope()Description copied from class:ParticipationRateLinear
Retrieve the Linear Market Impact Slope Parameter- Overrides:
slope
in classParticipationRateLinear
- Returns:
- The Linear Market Impact Slope Parameter
-
offset
public double offset()Description copied from class:ParticipationRateLinear
Retrieve the Offset Market Impact Parameter- Overrides:
offset
in classParticipationRateLinear
- Returns:
- The Offset Market Impact Parameter
-
evaluate
public double evaluate(double dblNormalizedX) throws java.lang.ExceptionDescription copied from class:R1ToR1
Evaluate for the given variate- Overrides:
evaluate
in classParticipationRateLinear
- Parameters:
dblNormalizedX
- Variate- Returns:
- Returns the calculated value
- Throws:
java.lang.Exception
- Thrown if evaluation cannot be done
-
derivative
public double derivative(double dblNormalizedX, int iOrder) throws java.lang.ExceptionDescription copied from class:R1ToR1
Calculate the derivative as a double- Overrides:
derivative
in classParticipationRateLinear
- Parameters:
dblNormalizedX
- Variate at which the derivative is to be calculatediOrder
- Order of the derivative to be computed- Returns:
- The Derivative
- Throws:
java.lang.Exception
- Thrown if Inputs are Invalid
-