mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-16 11:18:11 +08:00
119 lines
4.0 KiB
Markdown
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
|
|
```
|