3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易平台中,set_parameters 接口用于设置策略的各项配置参数。为了保证策略在服务器重启或异常恢复时的逻辑正确性,有几个关键参数必须在 initialize 函数中进行设置。
initialize 中设置的参数根据 PTrade API 文档,以下两个参数必须在 initialize 模块中设置:
not_restart_tradeserver_restart_not_do_beforenot_restart_trade (交易场景务必了解)"0":执行(缺省/默认值)。"1":不执行。initialize 和 before_trading_start 函数会被重复调用。not_restart_trade 入参设置为 "1",以在交易时间段避免重复执行的问题。交易时间段默认为 09:00-11:30、13:00-15:30(实际以券商的配置为准)。server_restart_not_do_before (交易场景务必了解)before_trading_start 函数。"0":执行(缺省/默认值)。"1":不执行。before_trading_start 函数默认会被调用。server_restart_not_do_before 入参设置为 "1",这样在一个交易日内 before_trading_start 函数仅会调用一次。以下是如何在 initialize 函数中正确设置这些参数的示例:
def initialize(context):
# 初始化策略
g.security = "600570.SS"
set_universe(g.security)
# 设置交易时间段服务器重启不再拉起本交易
# 设置服务器重启重拉交易时不再执行before_trading_start函数
set_parameters(
not_restart_trade="1",
server_restart_not_do_before="1"
)
def before_trading_start(context, data):
log.info("do before_trading_start")
# 这里的逻辑在一个交易日内只会被执行一次(如果设置了 server_restart_not_do_before="1")
def handle_data(context, data):
pass
在编写实盘交易策略时,处理好服务器重启等异常情况至关重要。强烈建议在 initialize 函数中将 not_restart_trade 和 server_restart_not_do_before 设置为 "1",以确保策略的稳定性和安全性,防止因重复执行初始化逻辑而导致的意外交易损失。