Big case TET - quynh phuong, minh hoang, thai hoang, quang huy
Huynh Gia Huy (G1000176L) Le Hoang Thai (G1000293G)
description
Transcript of Huynh Gia Huy (G1000176L) Le Hoang Thai (G1000293G)
FE8827 QUANTITATIVE TRADING STRATEGIES PROJECTHIGH FREQUENCY TRADING USING REGIME SWITCHING STRATEGY
Huynh Gia Huy (G1000176L)Le Hoang Thai (G1000293G)
REFERENCE “Developing High-Frequency Equities Trading
Models”, Leandro Rafael Infantino, Savion Itzhaki, MBA thesis, MIT, June 2010.
CONTENTS Simply Guide Model Building: motivation, trading ideas,
potential problems and implementation. Simulation Results: without/with transaction
costs, development from the thesis. Weaknesses of Trading Signals in the Thesis
and Proposed Improvement: mean reverting signals and regime switching signals.
SIMPLE GUIDE To display performance statistics, run rsperf.m file:
rsperf(index, rf, lossthreshold) Input: index = 1: regime switching with transaction costs. index = 2: regime switching without transaction costs. index = 3: mean reverting with transaction costs. index = 4: mean reverting without transaction costs. rf: risk free rate lossthreshold: omega loss threshold Ouput: Omega ratio, Sharpe ratio, Omega Sharpe ratio,
MaxDD (max drawdown) and MaxDDD (max drawdown duration).
SIMPLE GUIDE To start trading strategies, run regswitch.m file.
In this file, turn on/off regime switching by setting regimeSwitching variable to 1 to turn on and 0 to turn off.
regimeSwitching = 1; % default value
Change line 32 in this file to run simulation for a period of time. Default is whole year running from week 1 to week 52.
for week=1:52
MODEL BUILDING - MOTIVATION In high frequency environment, high precision
of the stock return prediction is not required. Fundamental Law of Active Management
IR: Information RatioIC: Information Coefficient (our skill)Breadth: “the number of independent forecasts of
exceptional return made per year”
Breadth very big => IC can be relatively small => prediction can be less precise
MODEL BUILDING - TRADING IDEAS Use Principle Component Analysis (PCA) as
the basis to compute cumulative returns Depending on the current strategy (mean-
reversion or momentum), trading signals are generated if observed cumulative returns differ from model cumulative returns. Predicted – observed > threshold => buy (sell) Predicted – observed < -threshold => sell (buy)
DIFFERENCES BETWEEN THIS PROJECT AND THE PAPER Number of stocks used in the simulation: only first 10
stocks (instead of 50) are chosen to represent the stock universe.
Data source: the primary data used in this project is obtained from Thomson Reuters Tick History database, and from two major exchanges: NASDAQ and NYSE; whereas prices used in the thesis are from top of the book bid-ask quotes.
Model parameters: various model parameters are not specified in the thesis, thus simulation results can be affected by the choice of different parameter values.
Transaction costs are included. Signal in the thesis is found insufficient and has been
modified to improve stabilty and performance of returns.
MODEL BUILDING - POTENTIAL PROBLEMS - DATA VOLUME Huge volume of data: more than 15Gbs of
one year tick data to process (and that’s only for 10 stocks). Simulation time can be very long because of this. Code optimization is important!
IMPLEMENTATION Matlab is chosen as it provides many built-in
mathematics functions suitable for rapid model development.
Pre-process data before running simulation: Only one mid-price per second per stock Need to duplicate values for missing seconds in
raw data. Processed data saved in separate .csv files.
Run simulation based on processed data. All daily returns are saved in .csv files.
SOME CODE OPTIMIZATION TECHNIQUES Always pre-allocate memory for matrix and
avoid changing matrix size constantly. Avoid loop as much as possible and make use
of Vectorization (performance increased dramatically!)
Use Matlab profiler to identify areas for improvement.
Normal for loop Vectorizationi = 0;for t = 0:.01:10
i = i + 1; y(i) = sin(t);
end
t = 0:.01:10;y = sin(t);
SIMULATION RESULTS - THESIS Mean-reversion strategy, without transaction
cost.
SIMULATION RESULTS – THIS PROJECT Mean-reversion strategy, without transaction
cost.
1 13 25 37 49 61 73 85 97 1091211331451571691811932052172292410.00%
100.00%
200.00%
300.00%
400.00%
500.00%
600.00%
Cumulative returns
SIMULATION RESULTS – THIS PROJECT Mean-reversion strategy, without transaction
cost. Omega: 2.6741 (Loss threshold: 0) Sharpe: 0.3507 Omega Sharpe: 0.0022 Max Drawdown: 0.1566 Max Drawdown duration: 73 days.
SIMULATION RESULTS - THESIS Regime switching strategy, without
transaction cost.
SIMULATION RESULTS – THIS PROJECT Regime switching strategy, without
transaction cost.
1 12 23 34 45 56 67 78 89 100111122133144155166177188199210221232243
-30.00%
-25.00%
-20.00%
-15.00%
-10.00%
-5.00%
0.00%
5.00%
10.00%
15.00%
Cumulative returns
SIMULATION RESULTS – THIS PROJECT Regime switching strategy, without
transaction cost. Omega: 0.7381 (Loss threshold: 0) Sharpe: -0.0903 Omega Sharpe: -0.0014 Max Drawdown: 0.5569 Max Drawdown duration: 226 days.
COMMENTS The different simulation results between this
project and thesis can be due to: Different stock universe Different data source (therefore different mid-prices) Parameters used (thresholds).
In the thesis, transaction cost is not taken into account and it is a important factor to consider in high frequency trading model. All profits can be erased by transaction cost.
Next step for this project: include transaction cost! To be realistic, transaction cost from Interactive
Brokers is used; that is, $0.005 / share / trade
TRANSACTION COSTS: MODIFICATIONS TO EXISTING STRATEGY In an attempt to factor in the transaction
cost, the trading model is modified. Two potential places: Mark-up the threshold by the transaction cost,
i.e.new threshold = threshold + transaction cost
Lower the log returns. Use this new log returns as input for Principal Components Analysislog_return = log[(current_price - cost) / previous_price + cost)]
This project uses the second approach.
SIMULATION RESULT – MODIFIED MODEL Mean-reversion strategy, with transaction
cost.
1 13 25 37 49 61 73 85 97 109121133145157169181193205217229241
-20.00%
-15.00%
-10.00%
-5.00%
0.00%
5.00%
10.00%
15.00%
20.00%
Cumulative returns
SIMULATION RESULTS – THIS PROJECT Mean-reversion strategy, with transaction
cost. Omega: 1.0131 (Loss threshold: 0) Sharpe: 0.0192 Omega Sharpe: 0.0002315 Max Drawdown: 0.2373 Max Drawdown duration: 68 days.
SIMULATION RESULT – MODIFIED MODEL Modified regime switching strategy, with
transaction cost.
1 13 25 37 49 61 73 85 97 109121133145157169181193205217229241
-35.00%
-30.00%
-25.00%
-20.00%
-15.00%
-10.00%
-5.00%
0.00%
5.00%
Cumulative returns
SIMULATION RESULTS – THIS PROJECT Mean-reversion strategy, with transaction
cost. Omega: 0.7805 (Loss threshold: 0) Sharpe: -0.0708 Omega Sharpe: -0.0010 Max Drawdown: 0.4941 Max Drawdown duration: 248 days.
WEAKNESSES OF THE TRADING SIGNALS IN THE THESIS – PROPOSED IMPROVEMENTS Mean reverting signal:
In the thesis, if mean reverting signal > 0, we buy and sell when signal < 0. It includes noise due to rounding or computational issues.
Solution: set a threshold to filter away noise that creates fault trades.
This threshold after trial and error has been determined to be 0.0001 (parameter 1)
WEAKNESSES OF THE TRADING SIGNALS IN THE THESIS - PROPOSED IMPROVEMENTS Regime Switching Signals:
The authors use difference in two consecutive Euclidean distance to signal the regime switching: If EH(t) - EH(t-1) > 0: momentum regime If EH(t) - EH(t-1) < = 0: mean reverting regime
This signals introduce noise and cause fault signals and consequently fault trades.
WEAKNESSES OF THE TRADING SIGNALS IN THE THESIS - PROPOSED IMPROVEMENTS Regime Switching Signals – Noise
Diagram of Euclidean distance difference (EH(t) - EH(t-1)) is shown above.
According to the authors, the strategy keeps changing the regimes as signals swing around 0 from positive to negative.
WEAKNESSES OF THE TRADING SIGNALS IN THE THESIS - PROPOSED IMPROVEMENTS Regime Switching Signals – Fault Signals
Diagram of Euclidean distance difference (EH(t) - EH(t-1)) is shown above and Euclidean distance(EH(t)) below.
One strong pulse in E distance creates one regime switching signal but it contains one up pulse and one down pulse in E distance difference. According to the authors, it creates two signals that causes the system to switch back and forth (mean reverting -> momentum -> mean reverting) within <150 seconds.
WEAKNESSES OF THE TRADING SIGNALS IN THE THESIS - PROPOSED IMPROVEMENTS Regime Switching Signals – Noise – Solution
We set a threshold of 2 standard deviation to filter out noise (parameter 2). Magnitude falls between ± 2 std dev is considered insignificant.
Instead of using differences of 2 consecutive E distance (EH(t) - EH(t-1)), we use EH(t) – ewma5(EH(t)) where ewma5(EH(t)) is equally weighted moving averages value of previous 5 seconds of E distance (parameter 3).
Ignore 2 consecutive regime switching signals fall into a timespan of less than 250 seconds to remove fault signals (parameter 4).
CONCLUSIONS Simulation returns are very sensitive to
parameters used. All 4 parameters can be improved by
employing optimization. Due to the time constraint, we leave this part
for future development.