Commit Graph

30 Commits

Author SHA1 Message Date
Thomas Wiecki 21c23c324d Bump version: 0.8.0 → 0.8.0rc1 2015-02-13 17:53:02 +01:00
Scott Sanderson 357f1a88a4 BUG: Remove Pokemon exception handling.
This was masking real errors that were occurring during registration of
cell magic.
2015-02-13 10:11:27 +01:00
Thomas Wiecki a7de02176b Bump version: 0.7.0rc1 → 0.7.0 2014-07-25 19:34:49 +02:00
Thomas Wiecki 8d16efc5c4 Bump version: 0.7.0 → 0.7.0rc1 2014-07-18 15:38:30 +02:00
Thomas Wiecki d6f26274ac Bump version: 0.6.1 → 0.7.0 2014-07-18 15:38:20 +02:00
Thomas Wiecki 10885e1b77 MAINT: One way to set sim_params and data_frequency.
There were sevaral places you could supply sim_params
in TradingAlgorithm (__init__, run). This got confusing
as its not clear who updated what and which one was the
correct one to use at each time.

Then there were to ways to define data_frequency, one in
__init__() and one in the sim_params which also added code
complexity.

This refactor makes it explicit that sim_params are to be
passed to __init__() only. Moreover, data_frequency is
only stored in sim_params. For backwards compatibility,
it can still be supplied separately but will link to
the one in sim_params.

For example, you could create new sim params via:

sim_params = create_simulation_parameters(data_frequency='minute')
algo = MyAlgo(sim_params)
algo.run(data)

In addition, perf_tracker only gets initialized in one place:
_create_generator() which should also make the various ways
of running an algorithm more deterministic.

This also fixes a bug with SimulationParameters where
you could not change the period_start. Unfortunately, the
current implementation still requieres an implicit call to
update the internal variables.
2014-06-30 17:28:02 +02:00
twiecki f5086e4b0e ENH: Add IPython cell magic.
When zipline is imported it checks whether
it runs in the IPython notebook. If it does,
it registers a %%zipline magic that takes the
same arguments as the CLI with the addition of
a -o for specifying the output variable to store
the performance frame in.

The algo code in the cell is, as of yet, executed
in its own environment rather than that of the
IPython NB which is probably what we want.

Also adds cli option to save the perf dataframe
to a pickle file.

Also adds an IPython notebook buyapple example.
2014-05-07 15:34:41 -04:00
twiecki f9fded97ac ENH: Implement CLI.
Add a CLI that reads in an algorithm, loads data,
run the algorithm, and output performance metrics.

The examples are adapted to the new zipline API and
analyses are split into separate files.

Also add config files that run the example
algorithms with preset settings.
2014-05-07 15:34:36 -04:00
twiecki b38bf07a95 Bump version: 0.6.0 → 0.6.1 2014-04-17 15:49:33 -04:00
twiecki 85053f7536 BLD: Wrong version in __init__.py 2014-04-17 15:49:31 -04:00
Thomas Wiecki b69590a2f7 ENH: Factor out API methods. Add support for algo scripts.
This is a step towards the goal of uniting Quantopian scripts
and zipline.

To make the syntax of zipline identical to Quantopian
we break out the API methods (like order) and turn them into
functions. To access the algo object we add a thread local reference
to the current algorithm that is accessed in the API functions.

TradingAlgorithm now takes either a string or two functions
(initialize and handle_data) that it executes.

Use api method decorator for methods available in algoscript.

Ported appropriate algorithm tests from internal code.
2014-01-16 12:07:33 -05:00
Eddie Hebert 16fe23b18f REL: Add license to module init file. 2013-08-19 15:19:15 -04:00
Thomas Wiecki 43889f4a16 BUG: version tag should be a string. 2013-08-08 11:22:03 -04:00
Thomas Wiecki 2026937dc9 BLD: Add version to zipline, bump to 0.5.11.dev
zipline.__version__ is now present. Closes #94.

Moreover, git master should have a .dev version string according
to convention. Releases then get the .dev label removed.
2013-08-08 11:12:10 -04:00
Eddie Hebert 4f5b2d6298 MAINT: Change relative library imports to use dot syntax.
Testing with a Python 3 virtualenv uncovered more relative imports
that did not explicitly use the dot syntax.
2013-07-02 21:31:59 -04:00
Eddie Hebert 158988d184 MAINT: Use explicit syntax for relative imports.
Python 3 requires using dot syntax for relative imports,
otherwise the import is treated as an absolute import, i.e.
an import of a module from outside of the project.

By using dot syntax now, imports should be compatible with both
Python 2.7 and Python 3.
2013-07-02 15:54:12 -04:00
Eddie Hebert b3efb5eb69 MAINT: Remove ndict class.
Now that ndict is no longer used in any part of the system during
a backtest, remove all remaining references in tests, etc.
2013-04-26 16:03:01 -04:00
Thomas Wiecki 89ab65c413 REF: Import interface.
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)
```
2013-03-15 13:07:44 -04:00
Thomas Wiecki ddb007a6f9 Removed optimize from __init__.py file. 2012-10-22 09:04:12 -04:00
Thomas Wiecki b976c1252b Provides an iterative version of risk metrics.
I wrote this a little while ago as I noticed that a lot of time is spent
computing risk statistics. This is done over the complete history over
and over again while this could be done just by using the previously
computed value (iteratively).

We didn't go forward back then because for minute trade data the
difference was not significant enough. However, now with zipline
standalone I think most people will use daily (because that's
what's available) and it makes a huge difference
(speed-up of a couple of 100%).

Unfortunately, we can't just replace the existing one with an
iterative as for the final cumulative stats the batch is still
better. So that's not as nice, but the performance increase is
big enough for me to issue this PR (zipline is actually painfully
slow with daily data).

There is a unittest that compares that both produce exactly
the same outputs.

Speed measurements (for 500 trading days, daily source):

with iterative:
real 26.617 user 12.909 sys 6.112 pcpu 71.46

prior:
real 44.176 user 31.030 sys 11.381 pcpu 96.00
2012-10-17 23:41:30 -04:00
Eddie Hebert 78bc364c45 Imports submodules of zipline on import of top-level module. 2012-10-12 17:03:34 -04:00
fawce 81718011df cut most of protocol, cut most of log_utils. 2012-09-08 23:20:38 -04:00
fawce 06dc6f7acb beginning refactor to use single threaded simulator. 2012-08-06 13:11:20 -04:00
fawce dd1056bf30 generator backed component, and a starter test for a source. 2012-08-01 23:41:44 -04:00
Stephen Diehl e04415e63f Remove all namedicts. 2012-05-14 11:35:43 -04:00
Stephen Diehl 8b95aebcf2 Refactor lots of things. 2012-05-14 10:57:40 -04:00
Stephen Diehl ca60d3f8e0 Refactor component tree. 2012-05-14 09:14:26 -04:00
Stephen Diehl 81d9214b40 Updated toplevel & logging. 2012-05-10 17:31:16 -04:00
Stephen Diehl f60794067e reworked directory 2012-05-09 09:12:11 -04:00
fawce 2fd2808e28 renamed to zipline 2012-02-14 12:23:48 -05:00