Skip to content

Latest commit

 

History

History
307 lines (235 loc) · 13.6 KB

WHATSNEW.md

File metadata and controls

307 lines (235 loc) · 13.6 KB

What's New

These are new features and improvements of note in each release.

v0.9.3 (April 19, 2021)

  • Update to Python 3.7+, Pandas 1.0+
  • Drop support for Python 2
  • Updated docs
  • CI and packging via GitHub Actions
  • conda packages

v0.9.0 (Aug 1st, 2018)

New features

  • Previously, pyfolio has required a benchmark, usually the U.S. market returns SPY. In order to provide support for international equities and alternative data sets, pyfolio is now completely independent of benchmarks. If a benchmark is passed, all benchmark-related analyses will be performed; if not, they will simply be skipped. By George Ho
  • Performance attribution tearsheet PR441, PR433, PR442. By Vikram Narayan.
  • Improved implementation of get_turnover PR332. By Gus Gordon.
  • Users can now pass in extra rows (as a dict or OrderedDict) to display in the perf_stats table PR445. By Gus Gordon.

Maintenance

v0.8.0 (Aug 23rd, 2017)

This is a major release from 0.7.0, and all users are recommended to upgrade.

New features

  • Risk tear sheet: added a new tear sheet to analyze risk exposures to common factors (e.g. mean reversion and momentum), sector (e.g. Morningstar sectors), market cap and illiquid stocks. By George Ho.
  • Simple tear sheet: added a new tear sheet that presents only the most important plots in the full tear sheet, for a quick general overview of a portfolio's performance. By George Ho.
  • Performance attribution: added new table to do performance attribution analysis, such as the amount of returns attributable to common factors, and summary statistics such as the multi-factor alpha and multi-factor Sharpe ratio. By Vikram Narayan.
  • Volatility plot: added a rolling annual volatility plot to the returns tear sheet. By hkopp.

Bugfixes

  • Yahoo and pandas data-reader: fixed bug regarding Yahoo backend for market data and pandas data-reader. By Thomas Wiecki and Gus Gordon.
  • empyrical compatibility: removed information_ratio to remain compatible with empyrical. By Thomas Wiecki.
  • Fama-French rolling multivariate regression: fixed bug where the rolling Fama-French plot performed separate linear regressions instead of a multivariate regression. By George Ho.
  • Other minor bugfixes. By Scott Sanderson, Jonathan Ng, SylvainDe and mckelvin.

Maintenance

  • Documentation: updated and improved pyfolio documentation and example Jupyter notebooks. By George Ho.
  • Data loader migration: all data loaders have been migrated from pyfolio to empyrical. By James Christopher.
  • Improved plotting style: fixed issues with formatting and presentation of plots. By George Ho.

v0.7.0 (Jan 28th, 2017)

This is a major release from 0.6.0, and all users are recommended to upgrade.

New features

  • Adds a transaction timing plot, which gives insight into the strategies' trade times.
  • Adds a plot showing the number of longs and shorts held over time.
  • New round trips plot selects a sample of held positions (16 by default) and shows their round trips. This replaces the old round trip plot, which became unreadable for strategies that traded many positions.
  • Adds basic capability for analyzing intraday strategies. If a strategy makes a large amount of transactions relative to its end-of-day positions, then pyfolio will attempt to reconstruct the intraday positions, take the point of peak exposure to the market during each day, and plot that data with the positions tear sheet. By default pyfolio will automatically detect this, but the behavior can be changed by passing either estimate_intraday=True or estimate_intraday=False to the tear sheet functions (see here).
  • Now formats zipline assets, displaying their ticker symbol.
  • Gross leverage is no longer required to be passed, and will now be calculated from the passed positions DataFrame.

Bugfixes

  • Cone plotting location is now correct.
  • Adjust scaling of beta and Fama-French plots.
  • Removed multiple dependencies, some of which were previously unused.
  • Various text fixes.

v0.6.0 (Oct 17, 2016)

This is a major new release from 0.5.1. All users are recommended to upgrade.

New features

  • Computation of performance and risk measures has been split off into empyrical. This allows Zipline and pyfolio to use the same code to calculate its risk statistics. By Ana Ruelas and Abhi Kalyan.
  • New multistrike cone which redraws the cone when it crossed its initial bounds PR310. By Ana Ruelas and Abhi Kalyan.

Bugfixes

  • Can use most recent PyMC3 now.
  • Depends on seaborn 0.7.0 or later now PR331.
  • Disable buggy computation of round trips per day and per month PR339.

v0.5.1 (June 10, 2016)

This is a bugfix release from 0.5.0 with limited new functionality. All users are recommended to upgrade.

New features

Bugfixes

  • Fix drawdown behavior and pandas exception in tear-sheet creation PR297 by Flavio Duarte

v0.5.0 (April 21, 2016) -- Olympia

This is a major release from 0.4.0 that includes many new analyses and features. We recommend that all users upgrade to this new version. Also update your dependencies, specifically, pandas>=0.18.0, seaborn>=0.6.0 and zipline>=0.8.4.

New features

Bug fixes

  • Many depracation fixes for Pandas 0.18.0, seaborn 0.6.0, and zipline 0.8.4

v0.4.0 (Dec 10, 2015)

This is a major release from 0.3.1 that includes new features and quite a few bug fixes. We recommend that all users upgrade to this new version.

New features

  • Round-trip analysis PR210 Andrew, Thomas
  • Improved cone to forecast returns that uses a bootstrap instead of linear forecasting PR233 Andrew, Thomas
  • Plot max and median long/short exposures PR237 Andrew

Bug fixes

  • Sharpe ratio was calculated incorrectly PR219 Thomas, Justin
  • annual_return() now only computes CAGR in the correct way PR234 Justin
  • Cache SPY and Fama-French returns in home-directory instead of install-directory PR241 Joe
  • Remove data files from package PR241 Joe
  • Cast factor.name to str PR223 Scotty
  • Test all create_*_tear_sheet functions in all configurations PR247 Thomas

v0.3.1 (Nov 12, 2015)

This is a minor release from 0.3 that includes mostly bugfixes but also some new features. We recommend that all users upgrade to this new version.

New features

  • Add Information Ratio PR194 by @MridulS
  • Bayesian tear-sheet now accepts 'Fama-French' option to do Bayesian multivariate regression against Fama-French risk factors PR200 by Shane Bussman
  • Plotting of monthly returns PR195

Bug fixes

  • pos.get_percent_alloc was not handling short allocations correctly PR201
  • UTC bug with cached Fama-French factors commit
  • Sector map was not being passed from create_returns_tearsheet commit
  • New sector mapping feature was not Python 3 compatible PR201

Maintenance

  • We now depend on pandas-datareader as the yahoo finance loaders from pandas will be deprecated PR181 by @tswrightsandpointe

Contributors

Besiders the core developers, we have seen an increase in outside contributions which we greatly appreciate. Specifically, these people contributed to this release:

  • Shane Bussman
  • @MridulS
  • @YihaoLu
  • @jkrauss82
  • @tswrightsandpointe
  • @cgdeboer

v0.3 (Oct 23, 2015)

This is a major release from 0.2 that includes many exciting new features. We recommend that all users upgrade to this new version.

New features

  • Sector exposures: sum positions by sector given a dictionary or series of symbol to sector mappings PR166
  • Ability to make cones with multiple shades stdev regions PR168
  • Slippage sweep: See how an algorithm performs with various levels of slippage PR170
  • Stochastic volatility model in Bayesian tear sheet PR174
  • Ability to suppress display of position information PR177

Bug fixes

  • Various fixes to make pyfolio pandas 0.17 compatible

v0.2 (Oct 16, 2015)

This is a major release from 0.1 that includes mainly bugfixes and refactorings but also some new features. We recommend that all users upgrade to this new version.

New features

  • Volatility matched cumulative returns plot PR126.
  • Allow for different periodicity (annualization factors) in the annual_() methods PR164.
  • Users can supply their own interesting periods PR163.
  • Ability to weight a portfolio of holdings by a metric valued PR161.

Bug fixes

  • Fix drawdown overlaps PR150.
  • Monthly returns distribution should not stack by year PR162.
  • Fix gross leverage PR147