3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
set_parameters 函数入参格式详解在 PTrade 量化交易平台中,调用 set_parameters 函数时如果遇到“格式不正确”的报错,通常是因为没有遵循平台规定的参数传递规则。根据 PTrade API 文档,set_parameters 的入参格式有严格的要求。
set_parameters 函数的入参格式必须为 a=b 样式(即 Python 中的关键字参数形式/kwargs)。
not_restart_trade)。"1"(表示开启/执行)或 "0"(表示关闭/取消)。❌ 错误写法(会导致格式不正确报错):
# 错误1:传入了字典
set_parameters({"not_restart_trade": "1"})
# 错误2:传入了位置参数
set_parameters("1", "1")
# 错误3:值使用了布尔值或整数(部分版本可能严格要求字符串)
set_parameters(not_restart_trade=1)
✅ 正确写法:
# 正确:使用 a=b 的关键字参数形式,值为字符串
set_parameters(not_restart_trade="1", server_restart_not_do_before="1")
目前 set_parameters 支持以下配置项(具体以券商实际支持为准):
holiday_not_do_before:交易中节假日是否执行 before_trading_start。"0" 执行(缺省);"1" 不执行。tick_data_no_l2:tick_data 中 data 是否包含 order 和 transaction。"0" 包含(缺省);"1" 不包含。receive_other_response:策略中是否接收非本交易产生的主推。"0" 不接收(缺省);"1" 接收。receive_cancel_response:策略中是否接收撤单委托产生的主推。"0" 不接收(缺省);"1" 接收。not_restart_trade:交易时间段若服务器重启,是否自动执行重新拉起本交易。"0" 执行(缺省);"1" 不执行。(注意:必须在 initialize 中设置)server_restart_not_do_before:若服务器重启导致重拉交易,是否重复执行 before_trading_start 函数。"0" 执行(缺省);"1" 不执行。(注意:必须在 initialize 中设置)def initialize(context):
g.security = "600570.SS"
set_universe(g.security)
# 正确调用 set_parameters
# 设置交易时间段服务器重启不再拉起本交易,且不再执行 before_trading_start
set_parameters(not_restart_trade="1", server_restart_not_do_before="1")
def before_trading_start(context, data):
log.info("执行盘前处理")
# 如果想要取消已经设置的配置参数,传入 "0"
# set_parameters(not_restart_trade="0")
def handle_data(context, data):
pass
总结:检查你的代码,确保去掉了字典的大括号 {},直接使用 参数名="值" 的形式传递给 set_parameters 即可解决报错问题。