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

• java.lang.Object

• public class OULogSpreadCRRASignal
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 log prices (log 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  OULogSpreadCRRASignal.Allocation
• ### Constructor Summary

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

All Methods
Modifier and Type Method and Description
OULogSpreadCRRASignal.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 OULogSpreadCRRASignal(com.numericalmethod.suanshu.stats.stochasticprocess.univariate.sde.process.ou.OrnsteinUhlenbeckProcess ou,
double gamma,
double r)
Constructs the dynamic trading policy, i.e. the optimal proportion of mean-reverting OU log 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 OULogSpreadCRRASignal(com.numericalmethod.suanshu.stats.stochasticprocess.univariate.sde.process.ou.OrnsteinUhlenbeckProcess ou,
double r)
Constructs the dynamic trading policy, i.e. the optimal proportion of mean-reverting OU log 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 OULogSpreadCRRASignal.Allocation getOptimalAllocation(double S,
double W,
double tau)
Gets the optimal allocation between the synthetic spread and the risk free asset.
Parameters:
S - the log spread price
W - the total wealth
tau - the current time to termination
Returns:
the optimal asset allocation