easyquant/task/trade_afternoon_task.py

54 lines
1.9 KiB
Python
Raw Normal View History

2025-07-03 23:39:31 +08:00
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)
2025-07-08 23:00:32 +08:00
def config(self, context):
self.today_trade_switch = self.get_config('today_trade_switch')
self.HV_control = self.get_config('HV_control') # 是否启用成交量监控
2025-07-03 23:39:31 +08:00
def run(self, context):
2025-07-08 23:00:32 +08:00
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)
2025-07-03 23:39:31 +08:00
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