Files
catalyst/docs/release-notes/zipline-0.8.0.md
T

119 lines
4.0 KiB
Markdown

# Zipline 0.8.0 Release Notes
## Highlights
* New documentation system with a new website at [zipline.io](http://www.zipline.io)
* Major performance enhancements.
* Dynamic history.
## Bug Fixes (BUG)
### Fix a bug where the reported returns could sharply dip for random periods of time. [PR378](https://github.com/quantopian/zipline/pull/378)
## Enhancements (ENH)
### Account object: Adds an account object to conext to track information about the trading account. [PR396](https://github.com/quantopian/zipline/pull/396)
> Example:
> ```
> context.account.settled_cash
> ```
> Returns the settled cash value that is stored on the account object. This
> value is updated accordingly as the algorithm is run.
### HistoryContainer can now grow dynamically. [PR412](https://github.com/quantopian/zipline/pull/412)
> Calls to `history` will now be able to increase the size or change the shape
> of the history container to be able to service the call. `add_history` now
> acts as a preformance hint to pre-allocate sufficient space in the
> container. This change is backwards compatible with `history`, all existing
> algorithms should continue to work as intended.
### Simple transforms ported from quantopian and use history. [PR429](https://github.com/quantopian/zipline/pull/429)
> SIDData now has methods for:
> - `stddev`
> - `mavg`
> - `vwap`
> - `returns`
> These methods, except for `returns`, accept a number of days. If you are
> running with minute data, then this will calculate the number of minutes in
> those days, accounting for early closes and the current time and apply the
> transform over the set of minutes. `returns` takes no parameters and will
> return the daily returns of the given asset.
> Example:
```python
data[security].stddev(3)
```
### New fields in Performance Period [PR464](https://github.com/quantopian/zipline/pull/464)
> Performance Period has new fields accessible in return value of to_dict:
> - gross leverage
> - net leverage
> - short exposure
> - long exposure
> - shorts count
> - longs count
### Allow order_percent to work with various market values (by Jeremiah Lowin) [PR477](https://github.com/quantopian/zipline/pull/477)
> Currently, `order_percent()` and `order_target_percent()` both operate as a percentage of `self.portfolio.portfolio_value`. This PR lets them operate as percentages of other important MVs.
> Also adds `context.get_market_value()`, which enables this functionality.
> For example:
> ```python
# this is how it works today (and this still works)
# put 50% of my portfolio in AAPL
order_percent('AAPL', 0.5)
# note that if this were a fully invested portfolio, it would become 150% levered.
>
# take half of my available cash and buy AAPL
order_percent('AAPL', 0.5, percent_of='cash')
>
# rebalance my short position, as a percentage of my current short book
order_target_percent('MSFT', 0.1, percent_of='shorts')
>
# rebalance within a custom group of stocks
tech_stocks = ('AAPL', 'MSFT', 'GOOGL')
tech_filter = lambda p: p.sid in tech_stocks
for stock in tech_stocks:
order_target_percent(stock, 1/3, percent_of_fn=tech_filter)
```
### Major performance enhancements to history (by Dale Jung) [PR488](https://github.com/quantopian/zipline/commit/38e8d5214d46f089020703712dc6b3f4f6ee084d)
### Command line option to for printing algo to stdout (by Andrea D'Amore) [PR545](https://github.com/quantopian/zipline/pull/545)
## Contributors
The following people have contributed to this release, ordered by numbers of commit:
```
39 Thomas Wiecki
36 Joe Jevnik
26 John Fawcett
24 Scott Sanderson
11 Delaney Granizo-Mackenzie
8 John Ricklefs
5 Brian Fink
5 Eddie Hebert
2 Dale Jung
2 Jeremiah Lowin
2 Jonathan Kamens
2 Richard Frank
1 David Edwards
1 Luke Schiefelbein
1 Mete Atamel
1 Nicholas Pezolano
1 Philipp Kosel
1 Andrea D'Amore
```