All Versions
Latest Version
Avg Release Cycle
139 days
Latest Release
1862 days ago

Changelog History

  • v0.9.2

    April 15, 2019
  • v0.9.1 Changes

    February 20, 2019

    ๐Ÿ›  This is a bugfix release fixing an indentation bug. For more information, see #568.

  • v0.9.0 Changes

    August 01, 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 Changes

    August 31, 2017

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

    ๐Ÿ†• New features

    • โž• Adds a new risk tear sheet that analyzes the risk exposures of the portfolio. Generates analysis showing the portfolio's exposures to common factors such as momentum and mean reversion, the portfolio's gross and net exposure to each sector, the gross and net exposure to each market cap bucket, and the overall exposure to illiquid stocks.
    • โž• Adds a new performance attribution tear sheet that analyzes how much of the portfolio's returns is attributable to common factors (e.g. sector or style factors). Generates analysis showing the exposure to, and PnL generated by, common factors.
    • โž• Adds a new simple tear sheet to provide a quick summary analysis using the most important plots in the full tear sheet.
    • โž• Adds a rolling annual volatility plot to the returns tear sheet.
    • โž• Adds new features to performance statistics summary table.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ› Bug fix with Yahoo and pandas data reader.
    • Rolling Fama-French exposures now performs a multivariate regression instead of multiple linear regressions.
    • โœ‚ Removed information_ratio to remain compatible with empyrical.

    ๐Ÿšง Maintenance

    • Migrated Fama-French data loaders from pyfolio to empyrical. utils.load_portfolio_risk_factors is now deprecated in pyfolio, please use the same function in empyrical.
    • Minor decorative changes to plots, particularly the holdings plots.
  • v0.7.0 Changes

    January 27, 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 Changes

    October 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
  • v0.5.0 Changes

    April 21, 2016

    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.4.0

    December 10, 2015
  • v0.3.1 Changes

    November 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


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