MAINT: Create SecurityListRestrictions that takes a SecurityList

The SecurityList implements a non-exposed method
`current_securities(dt)` which SecurityListRestrictions calls to
determine if an asset is restricted. Deprecate the `__iter__` and
`__contains__` methods of security lists in favor of
`current_securities(dt)`
This commit is contained in:
Andrew Liang
2016-09-29 10:11:14 -04:00
parent b70084c6bf
commit e465f64f91
6 changed files with 110 additions and 15 deletions
+4 -1
View File
@@ -84,7 +84,8 @@ from zipline.finance.slippage import (
from zipline.finance.cancel_policy import NeverCancel, CancelPolicy
from zipline.finance.restrictions import (
NoopRestrictions,
StaticRestrictions
StaticRestrictions,
SecurityListRestrictions,
)
from zipline.assets import Asset, Future
from zipline.gens.tradesimulation import AlgorithmSimulator
@@ -2175,6 +2176,8 @@ class TradingAlgorithm(object):
if isinstance(restricted_list, (list, tuple, set)):
restricted_list = StaticRestrictions(restricted_list)
elif isinstance(restricted_list, SecurityList):
restricted_list = SecurityListRestrictions(restricted_list)
control = RestrictedListOrder(on_error, restricted_list)
self.register_trading_control(control)