Changelogs » Bankroll



Fixed an `UnboundLocalError` exception when running a fresh install of `bankroll` (h/t ShadoFlameX).


* [fidelity] Cash interest earned is now included in `Activity`
* [schwab] Cash interest earned and margin interest charged is now included in `Activity`
* [ibkr] Fixed market data quotes for futures and futures options
* Added optional `exchange` field to `Instrument` type, which is necessary to quote futures, and possibly more
* Added `analysis.timelineForSymbol()`, which transforms an activity log into position information (e.g., size and realized profit) over time
* Exposed `analysis.normalizeSymbol()` and `analysis.normalizeInstrument()`, for aligning cross-brokerage data
* Exposed `analysis.activityAffectsSymbol()`, which can be used as a sort of pattern-matching over activity logs


* Unified brokerage functionality in a new `AccountData` abstract base class that all broker-specific interfaces inherit from
* Repurposed `DataAggregator` as `AccountAggregator`, another `AccountData` subclass
* Added `AccountBalance` model, representing cash balances, and extended brokerage functionality to load it
* [ibkr] Added limited support for calculating interest payments as `Activity` items
* Miscellaneous fixes and additional support across multiple brokers


* [ibkr] Use API in read-only mode
* [ibkr] Support bond interest payments
* Move settings for `Rebalance` notebook into an INI file


Introduces an INI config system to make `bankroll` significantly easier to use, and permit sharing of more advanced notebooks without revealing personal data.


Removes the dependency on the [Interactive Brokers API](, allowing `bankroll` to be used right after running `pip`[.](


First publish to PyPI: