PTrade中的定时任务调度:实现收盘清仓与开盘买入
发布时间:23小时前阅读:5

很多量化策略只需要在每天固定时间点执行,比如尾盘买入、开盘卖出。PTrade提供了强大的定时任务功能run_daily,可以精确到秒级触发。本文介绍如何用定时任务实现“收盘前清仓”和“开盘买入”两种常见模式。
首先,定时任务的基本用法。在init函数中注册:
`python
def initialize(context):
run_daily(context, close_position, time='14:57') # 收盘前3分钟清仓
run_daily(context, open_buy, time='09:35') # 开盘后5分钟买入
`
注意,time参数是字符串格式'HH:MM:SS',必须确保在交易时段内。非交易日自动跳过。
场景一:收盘前清仓。适用于隔夜风险较大的策略,或者日内回转策略。在清仓函数中,获取当前所有持仓,循环调用order_target_percent(stock, 0)即可。注意检查是否有涨跌停无法卖出,可提前挂单。
`python
def close_position(context):
for stock in context.portfolio.positions:
order_target_percent(stock, 0)
log_info("收盘清仓完成")
`
场景二:开盘买入。根据盘前信息(如昨日选股结果)在开盘后买入。由于开盘瞬间波动大,建议延迟几分钟。在买入函数中,读取预先计算好的买入列表(例如从全局变量或文件中读取),然后依次下单。
`python
def open_buy(context):
target_stocks = context.buy_list # 在另一个定时任务或盘后计算
for stock in target_stocks:
order_target_percent(stock, 1/len(target_stocks))
`
定时任务也可以实现盘中定投:每月固定日期买入固定金额的ETF。只需设置时间为某月的某一天,例如run_daily(context, monthly_invest, time='14:50'),然后在函数中判断当前日期是否是预设的定投日。
注意事项:定时任务函数中不要有耗时操作(如大量循环计算),否则可能影响下一次调度。耗时的数据准备应放在任务之外。另外,定时任务触发后,下单函数会异步执行,不要假设订单立即成交。
PTrade的定时任务非常适合规律性操作。国金证券用户10万资金即可开通PTrade实盘权限。量化社群中有许多定时任务的实例,如打新自动申购、尾盘逆回购等。同时,两融全线上办理,定时任务中也支持信用账户操作。学会使用定时任务,你的策略将更加自动化、省心。
温馨提示:投资有风险,选择需谨慎。
-
国常会力挺“六张网”,利好哪些板块?普通人如何稳健布局?
2026-05-18 15:52
-
REITs打新: 风电项目 ⌈中核新能⌋ 今日发售!点击领取认购操作指南~
2026-05-18 15:52
-
华泰AI涨乐APP超实用提示词分享,直接复制使用~
2026-05-18 15:52


问一问

+微信
分享该文章
