- Changed serenity_index and recovery_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
- Fixed positional arguments passed to cagr()
- Multi-strategy reports! You can now pass a dataframe with a column for each strategy to get a unified, single report for all
- 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
- Fixed EOY compounded return calculation
- Run fillna(0) on plot's beta (issue #193)
- Fixed sigma calculation in stats.probabilistic_ratio()
- Added option to explicitly provide the benchmark title via benchmark_title=...
- Fix for benchmark name in html report when supplied by the user
- Fixed dependency name in requirements.txt
- Added information ratio to reports
- Added Treynor ratio
- Added max consecutive wins/losses to full report
- Added “correlation to benchmark” to report
- Cleanup inf/nan from reports
- Added benchmark name to stats column and html report
- Added probabilistic sharpe/sortino ratios
- Fix relative dates calculations
- Fixed a bug when reporting the max drawdown
- Fixed an issue with saving the HTML report as a file
- Fixed RF display bug
- Fixed average DD display bug
- Misc bug fixes and speedups
- Fixed
stats.rolling_sharpe()
parameter mismatch
- Match dates logic on
utils.make_index()
- Fixed
stats.rolling_sortino()
calculations - Added
match_dates
flag to reports to make strategy and benchmark comparible by syncing their dates and frequency - Added
prepare_returns
flag toutils._prepare_benchmark()
- Misc code cleanup and speedups
- Usability improvements
- Typos fixed
- Added rebalance option to
utils.make_index()
- Added option to add
log_scale=True/False` to ``plots.snapshot()
- Fixed
plots.rolling_volatility()
benchmark display (bug introduced in 0.0.37)
- Added
stats.smart_sharpe()
andstats.smart_sortino()
- added
stats.rolling_sharpe()
,stats.rolling_sortino()
,stats.and rolling_volatility()
- Added
stats.distribution()
- Added Omega ratio
- BREAKING CHANGE: Eenamed
trading_year_days
param toperiods_per_year
- Misc code cleanup and speedups
- Added
as_pct
params toreports.metrics()
for when you need display data as DataFrame
- Passing correct rolling windows in
rolling_beta()
- Added Serenity Index
- Passing
trading_year_days
to methodmetrics
- Fixed "day is out of range for month" error
- Fixed bug in
stats.consecutive_wins()
andstats.consecutive_losses()
- Fixed seaborn's depreated
distplot
warning - Improved annualization by passing
trading_year_days
- Added option to pass the number of days per year in reports, so you can now use
trading_year_days=365
if you're trading crypto, or any other number for intl. markets.
- Fixed bug in
plot_histogram()
(issues 94+95)
- Enable period setting for adjusted sortino
- Added
utils.make_index()
for easy "etf" creation
- Fixed PIP installer
- Minor code refactoring
gain_to_pain
renamed togain_to_pain_ratio
- Minor code refactoring
- Added Sortino/√2 and Gain/Pain ratio to report
- Merged PRs to fix some bugs
- Misc bug fixes and code improvements
- Fixed
conditional_value_at_risk()
- Fixed
%matplotlib inline
issue notebooks
- Added mtd/qtd/ytd methods for panda (usage:
df.mtd()
) - Fixed Pandas deprecation warning
- Fixed Matplotlib deprecation warning
- Try setting
%matplotlib inline
automatic in notebooks
- Fixed profit Factor formula
- Misc bug fixes
- Fixed chart EOY chart's
xticks
when charting data with 10+ years - Fixed issue where daily return >= 100%
- Fixed Snapshot plot
- Removed duplicaated code
- Added conda installer
- Misc code refactoring and optimizations
- Misc bugfixes
- Cleaning up data before calculations (replaces inf/-inf/-0 with 0)
- Removed usage of
pandas.compound()
for futurepandas
version compatibility - Auto conversion of price-to-returns and returns-to-data as needed
- Fixed issue when last date in data is in the past (issue #4)
- Fixed issue when data has less than 5 drawdown periods (issue #4)
- Fixed CAGR calculation for more accuracy
- Handles drawdowns better in live trading mode when currently in drawdown
- Handles no drawdowns better
- Better report formatting
- Code cleanup
- Fixed calculation for rolling sharpe and rolling sortino charts
- Nicer CSS when printing html reports
- Fixed non-compounded plots in reports when using
compounded=False
- Option to add
compounded=True/False
to reports (default isTrue
)
- Minor bug fixes
- Updated to install and use
yfinance
instead offix_yahoo_finance
- Added support for 3 modes (cumulative, compounded, fixed amount) in
plots.earnings()
andutils.make_portfolio()
- Added two DataFrame utilities:
df.curr_month()
anddf.date(date)
- Misc bug fixes and code refactoring
- Better calculations for cagr, var, cvar, avg win/loss and payoff_ratio
- Removed unused param from
to_plotly()
- Added risk free param to
log_returns()
+ renamed it toto_log_returns()
- Misc bug fixes and code improvements
- Plots returns figure if
show
is set to False
- Minor bug fix
- Added
plots.to_plotly()
method - Added Ulcer Index to metrics report
- Better returns/price detection
- Bug fixes and code refactoring
- Added
pct_rank()
method to stats - Added
multi_shift()
method to utils
- Better VaR/cVaR calculation
- Fixed calculation of
to_drawdown_series()
- Changed VaR/cVaR default confidence to 95%
- Improved Sortino formula
- Fixed conversion of returns to prices (
to_prices()
)
- Initial release
- Pre-release placeholder