from strategy import trade_strategy from task.base_task import base_task from task.check_high_volume_func_task import check_high_volume_func_task from task.check_limit_up_func_task import check_limit_up_func_task from task.check_remain_amount_func_task import check_remain_amount_func_task from task.process_pending_buy_task import process_pending_buy_task from task.process_pending_sells_task import process_pending_sells_task class trade_afternoon_task(base_task): """ 下午交易任务: 1. 检查是否有因为涨停破板触发的卖出信号; 2. 如启用了成交量监控,则检测是否有异常成交量; 3. 检查账户中是否需要补仓; 4. 处理待买入和待卖出队列。 参数: context: 聚宽平台传入的交易上下文对象 """ def __init__(self, strategy: trade_strategy): super().__init__(strategy) def config(self, context): self.today_trade_switch = self.get_config('today_trade_switch') self.HV_control = self.get_config('HV_control') # 是否启用成交量监控 def run(self, context): if not self.today_trade_switch: # check_limit_up_task = check_limit_up_func_task(self.strategy, sub_task=self.sub_task) # check_limit_up_task.process(context) if self.HV_control: check_high_volume_task = check_high_volume_func_task(self.strategy) check_high_volume_task.process(context) # 再检查是否需要补仓 check_remain_amount_task = check_remain_amount_func_task(self.strategy, sub_task=self.sub_task) check_remain_amount_task.process(context) # 最后处理待买入股票 sells_task = process_pending_buy_task(self.strategy) sells_task.process(context) pass def handle(self, context): pass def end(self, context): pass