mirror of
https://github.com/microsoft/qlib.git
synced 2026-07-12 23:36:54 +08:00
add suspend check in twap
This commit is contained in:
@@ -68,6 +68,15 @@ class TWAPStrategy(BaseStrategy):
|
|||||||
trade_start_time, trade_end_time = self.trade_calendar.get_step_time(trade_step)
|
trade_start_time, trade_end_time = self.trade_calendar.get_step_time(trade_step)
|
||||||
order_list = []
|
order_list = []
|
||||||
for order in self.outer_trade_decision.get_decision():
|
for order in self.outer_trade_decision.get_decision():
|
||||||
|
# Don't peek the future information, so we use check_stock_suspended instead of is_stock_tradable
|
||||||
|
# necessity of this
|
||||||
|
# - if stock is suspended, the quote values of stocks is NaN. The following code will raise error when
|
||||||
|
# encountering NaN factor
|
||||||
|
if self.trade_exchange.check_stock_suspended(
|
||||||
|
stock_id=order.stock_id, start_time=trade_start_time, end_time=trade_end_time
|
||||||
|
):
|
||||||
|
continue
|
||||||
|
|
||||||
# the expected trade amount after current step
|
# the expected trade amount after current step
|
||||||
amount_expect = order.amount / trade_len * (rel_trade_step + 1)
|
amount_expect = order.amount / trade_len * (rel_trade_step + 1)
|
||||||
|
|
||||||
@@ -80,11 +89,6 @@ class TWAPStrategy(BaseStrategy):
|
|||||||
# the expected amount of current step
|
# the expected amount of current step
|
||||||
amount_delta = amount_expect - amount_finished
|
amount_delta = amount_expect - amount_finished
|
||||||
|
|
||||||
# Don't peek the future information
|
|
||||||
# if not self.trade_exchange.is_stock_tradable(
|
|
||||||
# stock_id=order.stock_id, start_time=trade_start_time, end_time=trade_end_time
|
|
||||||
# ):
|
|
||||||
# continue
|
|
||||||
_amount_trade_unit = self.trade_exchange.get_amount_of_trade_unit(
|
_amount_trade_unit = self.trade_exchange.get_amount_of_trade_unit(
|
||||||
stock_id=order.stock_id, start_time=order.start_time, end_time=order.end_time
|
stock_id=order.stock_id, start_time=order.start_time, end_time=order.end_time
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user