A Python function that checks stationarity across multiple financial symbols—a critical step anyone serious about algorithmic trading should master. Why does it matter? Many profitable strategies (mean reversion, pairs trading, cointegration) assume stationary data. If your underlying series is non-stationary (trending), your strategy will fail spectacularly. The approach: I'm using dual statistical tests—ADF and KPSS—because relying on just one can be misleading. Both must agree for a true verdict. What it does: ✓ Downloads price data from any symbol ✓ Tests both raw prices and log returns ✓ Returns p-values + actionable verdict ✓ Works with local CSV files too This is table-stakes for quant work. Whether you're building mean-reversion bots or testing factor strategies, validating stationarity upfront saves months of debugging DOA strategies. github: Chinedum14/Quant-Dev Happy building! 📈 #QuantTrading #AlgorithmicTrading #DataScience #Python #TimeSeries #SoftwareEngineering #Developer
It's definitely a step in the right direction. The next move would be to model rolling pvalues to test the long term robustness of the stationarities. Also rule of 3 helps with indecisiveness, so why not add a 3rd test for a majority-rule vote? 2/3 is more robust than 1/2. In pairs trading specifically, the ADF, EG and Johansen are your top picks.
most people test stationarity once, then never again. markets shift. your stationary pair from 2022 might be trending garbage by Q2 2023. how often are you re, running this in production? 📊
I think in practice one uses Phillips Perron test in the event there is heteroscedasticity
Isn't rolling p-value will be a better approach to test the stationarity of data and for my own information what's p-value significance level you're using?
Great focus on stationarity! I’m using a similar logic in my ProVision AI Sentinel. Scanning 170+ Bybit markets in real-time with an automated risk engine. Keep it up!
You will not have true stationarity, but you can make data more stationary by applying transformations like fractional differentiation
ADF/KPSS is a solid starting point, and the dual-test approach is the right instinct, but relying on just one is indeed misleading. The next level would be accounting for the finite sample power limitations both tests share and handling structural breaks in the stationarity regime over time. The yfinance pipeline works for prototyping but will need survivorship bias and corporate action adjustment before anything goes near live capital. Also worth revisiting the claim that non-stationary data kills strategies. Cointegration-based approaches run on non-stationary series by design. Good foundation to build on but chapter 2 of an econometrics textbook is unfortunately not enough for proper quants.