PTrade中before_trading_start函数的参数有哪些?
问题描述
解决方案
在 PTrade 量化交易平台中,before_trading_start 函数用于在每天开始交易前执行盘前初始化操作。该函数接受两个参数:context 和 data。
参数详解
-
context- 类型:
Context对象 - 说明:存放有当前的账户及持仓信息。你可以通过
context获取当前的资金状况(如context.portfolio.cash)、持仓信息(如context.portfolio.positions)以及当前的回测/交易时间等。
- 类型:
-
data- 类型:保留字段
- 说明:目前为保留字段,暂无数据传入。在编写策略时,通常不需要使用此参数,但必须在函数定义中保留它以符合 API 规范。
函数定义示例
def before_trading_start(context, data):
# 打印当前账户的可用资金
log.info("当前可用资金: %s" % context.portfolio.cash)
# 进行一些盘前的变量初始化
g.daily_buy_count = 0
log.info("盘前初始化完成")
注意事项
- 执行时间:在回测中,该函数在每个回测交易日 8:30 分执行;在实盘交易中,开启交易时立即执行,从隔日开始每天 9:10 分(默认)执行。
- 可选性:该函数是可选的,如果你的策略不需要每天进行盘前初始化,可以不在策略代码中定义它。
- 行情数据限制:在实盘交易中,如果在 9:10 前开启交易,由于行情可能未更新,在此函数内调用实时行情接口可能会导致数据有误。建议通过
run_daily在指定时间执行相关逻辑来避免此问题。