Skip to content

Commit 75449d0

Browse files
authored
Merge pull request robcarver17#983 from tgibson11/missing-data-2
Don't pass missing_data into analyse_for_tick function
2 parents 1a01b24 + a7903cb commit 75449d0

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

sysexecution/algos/algo.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from copy import copy
22
from dataclasses import dataclass
33

4-
from syscore.exceptions import missingContract
4+
from syscore.exceptions import missingContract, missingData
55
from syscore.constants import missing_data, arg_not_supplied
66
from sysexecution.orders.named_order_objects import missing_order
77

@@ -165,21 +165,21 @@ def get_market_data_for_order_modifies_ticker_object(
165165
log = contract_order.log_with_attributes(self.data.log)
166166

167167
# Get the first 'reference' tick
168-
reference_tick = (
169-
ticker_object.wait_for_valid_bid_and_ask_and_return_current_tick(
170-
wait_time_seconds=10
168+
try:
169+
reference_tick = (
170+
ticker_object.wait_for_valid_bid_and_ask_and_return_current_tick(
171+
wait_time_seconds=10
172+
)
171173
)
172-
)
173-
174-
tick_analysis = ticker_object.analyse_for_tick(reference_tick)
175-
176-
if tick_analysis is missing_data:
174+
except missingData:
177175
log.warn(
178176
"Can't get market data for %s so not trading with limit order %s"
179177
% (contract_order.instrument_code, str(contract_order))
180178
)
181179
return missing_data
182180

181+
tick_analysis = ticker_object.analyse_for_tick(reference_tick)
182+
183183
ticker_object.clear_and_add_reference_as_first_tick(reference_tick)
184184

185185
# These prices will be used for limit price purposes

sysexecution/tick_data.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ def analyse_for_tick(
250250
if tick is arg_not_supplied:
251251
tick = self.current_tick()
252252

253-
if tick is missing_data or qty is arg_not_supplied:
253+
if qty is arg_not_supplied:
254254
return missing_data
255255

256256
results = analyse_tick(tick, qty, replace_qty_nans=replace_qty_nans)
@@ -261,9 +261,13 @@ def wait_for_valid_bid_and_ask_and_analyse_current_tick(
261261
self, qty: int = arg_not_supplied, wait_time_seconds: int = 10
262262
) -> oneTick:
263263

264-
current_tick = self.wait_for_valid_bid_and_ask_and_return_current_tick(
265-
wait_time_seconds=wait_time_seconds
266-
)
264+
try:
265+
current_tick = self.wait_for_valid_bid_and_ask_and_return_current_tick(
266+
wait_time_seconds=wait_time_seconds
267+
)
268+
except missingData:
269+
return missing_data
270+
267271
analysis = self.analyse_for_tick(current_tick, qty=qty)
268272

269273
return analysis
@@ -275,7 +279,7 @@ def wait_for_valid_bid_and_ask_and_return_current_tick(
275279
timer = quickTimer(wait_time_seconds)
276280
while waiting:
277281
if timer.finished:
278-
return missing_data
282+
raise missingData
279283
self.refresh()
280284
last_bid = self.bid()
281285
last_ask = self.ask()

0 commit comments

Comments
 (0)