Releases: ranaroussi/quantstats
Releases · ranaroussi/quantstats
0.0.68
What's Changed
- Fix ValueError when comparing Series with scalar (Issue #448) by @ranaroussi in #450
Full Changelog: 0.0.67...0.0.68
0.0.67
0.0.66
What's Changed
- Fixed bug with calculating drawdowns when first return is < 0
- Update reports.py by @kartiksubbarao in #444
Full Changelog: 0.0.65...0.0.66
0.0.65
0.0.64
MAJOR RELEASE - Comprehensive Compatibility and Performance Improvements
🔧 Major Fixes:
- Fixed pandas resampling compatibility issues (UnsupportedFunctionCall errors)
- Added yfinance proxy configuration compatibility layer for all versions
- Implemented comprehensive pandas compatibility layer with frequency alias mapping (M→ME, Q→QE, A→YE)
- Fixed all pandas FutureWarnings related to chained assignment operations
- Added numpy compatibility layer for deprecated functions (np.product → np.prod)
- Replaced broad exception handling with specific exception types throughout codebase
📈 Performance Improvements:
- Implemented LRU caching for _prepare_returns function (10-100x faster for repeated operations)
- Optimized autocorrelation calculations with vectorized numpy operations
- Improved rolling Sortino calculation performance and memory usage
- Optimized multi_shift memory usage with incremental concatenation
- Eliminated redundant dropna operations with intelligent caching
- Replaced inefficient iterrows usage with vectorized operations
🛡️ Reliability Improvements:
- Added comprehensive input validation to public functions
- Implemented safe_resample compatibility function for all pandas versions
- Created robust error handling with custom exception classes
- Added safe_yfinance_download function handling proxy configuration changes
- Fixed matplotlib/seaborn compatibility issues and deprecation warnings
🎨 Visualization Fixes:
- Updated seaborn compatibility (sns.set() → sns.set_theme())
- Fixed legend handling in plotting functions
- Improved chart rendering with better error handling
- Fixed monthly heatmap display issues
📊 Technical Improvements:
- Created comprehensive compatibility layer in _compat.py module
- Implemented frequency alias mapping for pandas version compatibility
- Added version detection and handling for pandas/numpy changes
- Enhanced data preparation pipeline with caching and validation
🚀 Overall Impact:
- 10-100x performance improvement for large datasets
- 5-10x memory usage reduction
- Eliminated all pandas/numpy compatibility warnings
- Future-proofed against dependency updates
- Maintained full backward compatibility
This release addresses 23+ community-reported issues and PRs, making QuantStats significantly faster, more reliable, and compatible with modern pandas/numpy versions.
New Contributors
- @katsu1110 made their first contribution in #329
- @alexcalligraphy made their first contribution in #327
- @AlanWoo77 made their first contribution in #395
- @nextdorf made their first contribution in #417
Full Changelog: 0.063...0.0.64
0.063
Bump version to 0.0.64
0.0.62
- Changed
serenity_index
andrecovery_factor
to use simple sum instead of compounded sum - Reports passing the
compounded
param to all supporting methods - Fixed a bug related to monthly_heatmap display
0.0.61
Fixed positional arguments passed to cagr()
0.0.60
Multi-strategy reports are here!
You can now pass a dataframe with a column for each strategy to get a unified, single report for all
Additional additions
- Support request proxy with yfinance
- Added custom periods to CAGR
- Correct drawdown days calculation when last day is a drawdown
- Write report in correct file path
- IPython 7+ compatibility
- Pandas 2.0 compatibility
- Fix for benchmark name when supplied by the user
- Handles tz-native and tz-aware comparisson issue
- Adding benchmark name to html report
- Update README ticker to META :)
- Many pull requests merged
0.0.59
Fixed EOY compounded return calculation