mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-02 03:48:58 +08:00
modified do not order guard to take an iteratble or a container
container allows for dynamic restrictions, necessary for a point in time implementation of the restricted list.
This commit is contained in:
@@ -958,17 +958,19 @@ class TestTradingControls(TestCase):
|
||||
|
||||
def test_set_do_not_order_list(self):
|
||||
# set the restricted list to be the sid, and fail.
|
||||
algo = SetDoNotOrderListAlgorithm(sid=self.sid,
|
||||
algo = SetDoNotOrderListAlgorithm(
|
||||
sid=self.sid,
|
||||
restricted_list=[self.sid])
|
||||
|
||||
def handle_data(algo, data):
|
||||
algo.order(self.sid, 100)
|
||||
algo.order_count += 1
|
||||
|
||||
|
||||
self.check_algo_fails(algo, handle_data, 0)
|
||||
|
||||
# set the restricted list to exclude the sid, and succeed
|
||||
algo = SetDoNotOrderListAlgorithm(sid=self.sid,
|
||||
algo = SetDoNotOrderListAlgorithm(
|
||||
sid=self.sid,
|
||||
restricted_list=[134, 135, 136])
|
||||
|
||||
def handle_data(algo, data):
|
||||
|
||||
@@ -106,9 +106,14 @@ class RestrictedListOrder(TradingControl):
|
||||
"""
|
||||
|
||||
def __init__(self, restricted_list):
|
||||
"""
|
||||
restricted list can be an iterable, or
|
||||
an object that implements __contains__ for dynamic
|
||||
restrictions.
|
||||
"""
|
||||
|
||||
super(RestrictedListOrder, self).__init__()
|
||||
self.restricted_list = set(restricted_list)
|
||||
self.restricted_list = restricted_list
|
||||
|
||||
def validate(self,
|
||||
sid,
|
||||
|
||||
Reference in New Issue
Block a user