In this project we provide a backtesting pipeline for intraday statistical arbitrage. Both traditional spread models (i.e. pairs trading with cointegration tests, time series analysis) and continuous time trading models (i.e. Ornstein-Uhlenbeck process) are used to model the spread portfolios.
data
: intraday data files, including stocks, options, and dual listing stocksutils
: arbitrage tool functions including cointegration tests and regression analysismodels
: simulations and parameter estimations for stochastic models and option greeksBM.py
: brownian motion related functionsVasicek.py
: OU-process related functionsBS_model.py
: Black-Scholes model and option greeks
statistical_arbitrage
: notebook for realizing pair trading based on limit orderbook stock datares
: results for positions, thresholds, and PnLs
- Higher the transaction costs, larger the optimal entry points for arbitrage, lower the trading frequency.
- Sensitivity analysis needs to be conducted with respect to the level of transaction costs (price impact, bid-ask spread, and commission fees).