ENH: Add symbol api function

A symbol() lookup feature was added to Quantopian.
By adding the same API function to zipline we can
make copy&pasting of a zipline algo to Quantopian
easier.
This commit is contained in:
twiecki
2014-03-05 12:13:06 -05:00
committed by Eddie Hebert
parent 5020c36f8d
commit eccaf8d53d
3 changed files with 25 additions and 0 deletions
+5
View File
@@ -38,6 +38,7 @@ from zipline.test_algorithms import (TestRegisterTransformAlgorithm,
handle_data_api,
noop_algo,
api_algo,
api_symbol_algo,
call_all_order_methods,
record_variables,
record_float_magic
@@ -294,6 +295,10 @@ class TestAlgoScript(TestCase):
algo = TradingAlgorithm(script=api_algo)
algo.run(self.df)
def test_api_symbol(self):
algo = TradingAlgorithm(script=api_symbol_algo)
algo.run(self.df)
def test_fixed_slippage(self):
# verify order -> transaction -> portfolio position.
# --------------
+9
View File
@@ -29,6 +29,15 @@ from zipline.finance.slippage import (
batch_transform = zipline.transforms.BatchTransform
def symbol(symbol_str, as_of_date=None):
"""Default symbol lookup for any source that directly maps the
symbol to the identifier (e.g. yahoo finance).
Keyword argument as_of_date is ignored.
"""
return symbol_str
__all__ = [
'slippage',
'commission',
+11
View File
@@ -745,6 +745,17 @@ def handle_data(context, data):
record(incr=context.incr)
"""
api_symbol_algo = """
from zipline.api import (order,
symbol)
def initialize(context):
pass
def handle_data(context, data):
order(symbol(0), 1)
"""
call_all_order_methods = """
from zipline.api import (order,
order_value,