Slight refactoring of grouping the tracking variables in the
PerformanceTracker together.
So that it's easier to see which are config members and which are
members used to track internal state.
Highlights, with thanks to contributors inline:
- Runtime performance improvements
- Fixed the omission of peformance messages on days with no trades
- Changes to batch_transform implementation
-- supports sid filtering
-- performance improvements using pandas
-- added an option for only computating when there is a window length's
worth of data
- Added new risk metrics
-- Sortino
-- information ration
(Ryan Day, ryanday2@gmail.com @rday)
- Added stop and limit orders
(Tony Worm, verdverm@gmail.com @verdverm)
- Added variable recording
- Deprecated market_aware and delta kwargs to EventWindow
- Fixes to trading calendars for missing holidays
- Added TradingEnviorment context manager
- Added support for streaming through dividends
- Yahoo source now has OHLC
- Updates downloaded benchmark and treasury data when new data is available.
(Ryan Day, ryanday2@gmail.com @rday)
- Added optional adjustment of Yahoo data
(Jeremiah Lowin, jlowin@lowindata.com @jlowin)
Changes name to `grouped_by_dt` instead of `grouped_by_date` to
clarify that the grouping is by dt, which can be by minute, instead
of grouping by calendar date.
This pre-commit hook can be activated by copying or symlinking to
the .git/hooks directory
This particular commit hook is best suited for git versions < 1.8.2
The running of nosetests would be better suited for a push hook,
but those are not added until 1.8.2.
Previous attempt to make sim_parms logic clearer had clobbered the
override logic when sim_params is passed to the run function.
Added a few comments as well as restructuring how the sim_params
that are passed to run overrides the default values or not.
This also makes the passing of sim_params to run to no longer have
the side-effect of overwriting the default sim_params.
Removes from requirements_dev.txt, since requirements_dev.txt is
used in various unit testing environments, ipython, pyzmq, etc.
is extra weight that is being unecessarily pulled in.
- perf modified to let non-performance related events flow through.
- changes to support streaming non-trading data through batch transforms
and for mixing in sids with just custom data.
- allowing CUSTOM events to flow through to transforms.
- Added logic to maintain pre-specified sid filter.
Instead of a loosely defined object for Order, explicitly
defines the parameters and corresponding members.
Clearing the way for adding more members to the Order object.
Makes TradingAlgorithm available at the top-level.
So that algorithms can do:
```
import zipline
class MyAlgo(zipline.TradingAlgorithm)
```
OR
```
from zipline import TradingAlgorithm
class MyAlgo(TradingAlgorithm)
```
Instead of using division of the amount by itself to extract
the direction, uses math's copysign.
Should be almost functionally equivalent,
but copysign won't have a possible floating point error leading
the direction to not be exactly 1.
So that both computational and memory overhead is reduced,
this turns off serializing positions for cumulative performance.
Positions were essentially being doubled up by being stored
in both cumalative and daily.
So that transactions are kept by default.
This prepares for the addition of the serialize flag added by
@fawce.
Setting the default to True, so that the flags will be aligned.