"Though the Russell 2000 and Nasdaq 100 are highly correlated, these indexes do not form a cointegrated time series..."
The Russell 2000 is a small-cap index that includes the 2,000 smallest stocks out of the top 3,000 stocks in the U.S. market. While small-cap stocks are riskier than large-cap stocks, small-cap companies returned 12.1 percent annually between 1926 and 2017 compared with 10.2 percent by large-cap stocks during the same period. As a growth story, the Russell 2000 is highly correlated with the Nasdaq 100 Index which is composed of assets in various sectors, excluding financial services. A large portion of Nasdaq 100 is the technology sector, which accounts for 54% of the index's weight. This index also includes consumer services, healthcare, industrials, and telecommunications. Similar to the Russell 2000, companies included in the Nasdaq 100 index offer high returns which compensate for the growth-related risks.
The Russell 2000 and Nasdaq 100 is an example of a correlated but not cointegrated pair - these indexes have different ROI. It means that any combination of the Russell 2000 and Nasdaq 100 is going to drift with time instead of reverting to the mean. However, in a stationary macroeconomic environment, the difference in the returns of the Russell 2000 Nasdaq 100 indexes is expected to be a constant. Mathematically this condition can be approximated as follows:
dY - adX=bdt, (1)
where dY and dX stand for change in Y and X, respectively; a is the following ratio: "dollar value per point of X/ dollar value per point of Y"; b is determined by the difference in ROIs; dt stands for time differential. The solution of (1) gives the relationship, Y= aX + bt + c, which holds true if both the X and Y are fairly priced and b remains constant, i. e. when the difference in ROI is constant. Let us introduce a time series R(t) = Y(t) - aX(t) -bt - c. Market forces are expected to ensure <R(t)>=0 ( <...> stands for averaging over time). Thus R(t) is a stationary process that can be used as an indicator for a statistical arbitrage strategy.
The generic part of a statistical arbitrage (pair trading) algorithm is as follows:
1. Calculate b and c using the ordinary least square (OLS) regression method;
2. Generate R(t) = Y(t) - aX(t) - bt -c time series;
3. Check that R(t) is a stationary process;
4. Calculate the standard deviation, S(t), of R(t);
5. Generate trade signals using Z-score Z(t) = R(t) / S(t).
Though steps 1-5 are basically the same as in the cointegration method, one has to keep in mind that R(t) can't be expressed as a combination of Y(t) and X(t) only, hence we can't trade R(t) directly. Let us use P(t) = Y(t) - aX(t) as the trading vehicle:
5. if (Z(t) > Zthresh) sell P(t);
if (Z(t) < -Zthresh) buy P(t);
Since P(t) is trending with time, the stop-loss parameter has to be defined both in terms of equity loss and time. Equity stop-loss, Equity_stop, is a routine problem in trading. However, setting time stop-loss, Time_stop, is an open question. My solution is based on the empirical observation that R(t) has a quasiperiodic nature while P(t), on the characteristic time scale, is characterized by a weak drift relative to its deviations from the trend (see the figure above). In the proposed method, the Fourier transform of R(t) and variational optimization is used to find out the dominant harmonic in R(t). The period of this harmonic is used then as Time_stop:
6. if ((duration of a trade > Time_stop) or (equity loss> Equity_stop)) exit.
Backtesting was carried out using QQQ and IWM data starting from the year 2000. Risk management and bet optimization were implemented as described in "Leverage using the Kelly criterion". Live simulations are published here. The results of the algorithm implementation are shown below. On average, this algorithm produces 5 entries per year and doubles equity every 1.5 years.
Disclaimer Simulated performance does not represent actual performance and should not be interpreted as an indication of such performance. All material presented within is for research purposes only.
The Russell 2000 is a small-cap index that includes the 2,000 smallest stocks out of the top 3,000 stocks in the U.S. market. While small-cap stocks are riskier than large-cap stocks, small-cap companies returned 12.1 percent annually between 1926 and 2017 compared with 10.2 percent by large-cap stocks during the same period. As a growth story, the Russell 2000 is highly correlated with the Nasdaq 100 Index which is composed of assets in various sectors, excluding financial services. A large portion of Nasdaq 100 is the technology sector, which accounts for 54% of the index's weight. This index also includes consumer services, healthcare, industrials, and telecommunications. Similar to the Russell 2000, companies included in the Nasdaq 100 index offer high returns which compensate for the growth-related risks.
The Russell 2000 and Nasdaq 100 is an example of a correlated but not cointegrated pair - these indexes have different ROI. It means that any combination of the Russell 2000 and Nasdaq 100 is going to drift with time instead of reverting to the mean. However, in a stationary macroeconomic environment, the difference in the returns of the Russell 2000 Nasdaq 100 indexes is expected to be a constant. Mathematically this condition can be approximated as follows:
dY - adX=bdt, (1)
where dY and dX stand for change in Y and X, respectively; a is the following ratio: "dollar value per point of X/ dollar value per point of Y"; b is determined by the difference in ROIs; dt stands for time differential. The solution of (1) gives the relationship, Y= aX + bt + c, which holds true if both the X and Y are fairly priced and b remains constant, i. e. when the difference in ROI is constant. Let us introduce a time series R(t) = Y(t) - aX(t) -bt - c. Market forces are expected to ensure <R(t)>=0 ( <...> stands for averaging over time). Thus R(t) is a stationary process that can be used as an indicator for a statistical arbitrage strategy.
The generic part of a statistical arbitrage (pair trading) algorithm is as follows:
1. Calculate b and c using the ordinary least square (OLS) regression method;
2. Generate R(t) = Y(t) - aX(t) - bt -c time series;
3. Check that R(t) is a stationary process;
4. Calculate the standard deviation, S(t), of R(t);
5. Generate trade signals using Z-score Z(t) = R(t) / S(t).
Though steps 1-5 are basically the same as in the cointegration method, one has to keep in mind that R(t) can't be expressed as a combination of Y(t) and X(t) only, hence we can't trade R(t) directly. Let us use P(t) = Y(t) - aX(t) as the trading vehicle:
5. if (Z(t) > Zthresh) sell P(t);
if (Z(t) < -Zthresh) buy P(t);
Since P(t) is trending with time, the stop-loss parameter has to be defined both in terms of equity loss and time. Equity stop-loss, Equity_stop, is a routine problem in trading. However, setting time stop-loss, Time_stop, is an open question. My solution is based on the empirical observation that R(t) has a quasiperiodic nature while P(t), on the characteristic time scale, is characterized by a weak drift relative to its deviations from the trend (see the figure above). In the proposed method, the Fourier transform of R(t) and variational optimization is used to find out the dominant harmonic in R(t). The period of this harmonic is used then as Time_stop:
6. if ((duration of a trade > Time_stop) or (equity loss> Equity_stop)) exit.
Backtesting was carried out using QQQ and IWM data starting from the year 2000. Risk management and bet optimization were implemented as described in "Leverage using the Kelly criterion". Live simulations are published here. The results of the algorithm implementation are shown below. On average, this algorithm produces 5 entries per year and doubles equity every 1.5 years.
Disclaimer Simulated performance does not represent actual performance and should not be interpreted as an indication of such performance. All material presented within is for research purposes only.
No comments:
Post a Comment