AlgoQuant, an integrated trading strategy research and backtesting system
com.numericalmethod.algoquant.model.jurek2007

• java.lang.Object

• public class OUSpreadCRRASignal
extends Object
This calculates the optimal dynamic trading strategy in terms of the optimal holding positions of the mean reverting basket and a risk free asset. The assumptions are that the difference of prices (spread) follows an OU process and the utility function is CRRA (Constant Relative Risk Aversion).
Jurek, W. J., Yang, H., "Dynamic Portfolio Selection in Arbitrage", 2007.
• ### Nested Class Summary

Nested Classes
Modifier and Type Class and Description
static class  OUSpreadCRRASignal.Allocation
• ### Constructor Summary

Constructors
Constructor and Description
OUSpreadCRRASignal(com.numericalmethod.suanshu.stats.stochasticprocess.univariate.sde.process.ou.OUProcess ou, double r)
Constructs the dynamic trading policy, i.e.
OUSpreadCRRASignal(com.numericalmethod.suanshu.stats.stochasticprocess.univariate.sde.process.ou.OUProcess ou, double gamma, double r)
Constructs the dynamic trading policy, i.e.
• ### Method Summary

All Methods
Modifier and Type Method and Description
OUSpreadCRRASignal.Allocation getOptimalAllocation(double S, double W, double tau)
Gets the optimal allocation between the synthetic spread and the risk free asset.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Constructor Detail

public OUSpreadCRRASignal(com.numericalmethod.suanshu.stats.stochasticprocess.univariate.sde.process.ou.OUProcess ou,
double gamma,
double r)
Constructs the dynamic trading policy, i.e. the optimal number of mean-reverting OU spread to hold.
Parameters:
ou - the underlying OU process for the mean-reverting spread
gamma - the risk aversion rate in the CRRA (Constant Relative Risk Aversion) utility (gamma = 1 corresponds to the log-utility case)
r - the risk-free rate

public OUSpreadCRRASignal(com.numericalmethod.suanshu.stats.stochasticprocess.univariate.sde.process.ou.OUProcess ou,
double r)
Constructs the dynamic trading policy, i.e. the optimal number of mean-reverting OU spread to hold, when the log-utility is used.
Parameters:
ou - the underlying OU process for the mean-reverting spread
r - the risk-free rate
• ### Method Detail

• #### getOptimalAllocation

public OUSpreadCRRASignal.Allocation getOptimalAllocation(double S,
double W,
double tau)
Gets the optimal allocation between the synthetic spread and the risk free asset.
Parameters:
S - the current price
W - the current wealth
tau - the current time to termination
Returns:
the optimal asset allocation