MAINT: Use symbol lookup directly from algorithm.

Instead of using the generic lookup, use the asset finder symbol method
directly when `symbol` is used in an algorithm.
This commit is contained in:
Eddie Hebert
2015-07-08 14:35:10 -04:00
parent 1032972b74
commit 9688989eba
3 changed files with 12 additions and 8 deletions
+7 -1
View File
@@ -597,13 +597,19 @@ class TestAlgoScript(TestCase):
def test_api_get_environment(self):
platform = 'zipline'
metadata = {0: {'symbol': 'TEST',
'asset_type': 'equity'}}
algo = TradingAlgorithm(script=api_get_environment_algo,
asset_metadata=metadata,
platform=platform)
algo.run(self.df)
self.assertEqual(algo.environment, platform)
def test_api_symbol(self):
algo = TradingAlgorithm(script=api_symbol_algo)
metadata = {0: {'symbol': 'TEST',
'asset_type': 'equity'}}
algo = TradingAlgorithm(script=api_symbol_algo,
asset_metadata=metadata)
algo.run(self.df)
def test_fixed_slippage(self):
+3 -5
View File
@@ -662,11 +662,9 @@ class TradingAlgorithm(object):
Default symbol lookup for any source that directly maps the
symbol to the Asset (e.g. yahoo finance).
"""
asset, _ = self.asset_finder.lookup_generic(
asset_convertible_or_iterable=symbol_str,
as_of_date=self.datetime,
)
return asset
return self.asset_finder.lookup_symbol_resolve_multiple(
symbol_str,
as_of_date=self.datetime)
@api_method
def symbols(self, *args):
+2 -2
View File
@@ -1003,7 +1003,7 @@ from zipline.api import get_environment, order, symbol
def initialize(context):
context.environment = get_environment()
handle_data = lambda context, data: order(symbol(0), 1)
handle_data = lambda context, data: order(symbol('TEST'), 1)
"""
api_symbol_algo = """
@@ -1014,7 +1014,7 @@ def initialize(context):
pass
def handle_data(context, data):
order(symbol(0), 1)
order(symbol('TEST'), 1)
"""
call_order_in_init = """