如图,使用同一个策略创建了两个实例,在输出中发现,两个实例之间的变量混用了
检查代码,推测应该是因为定义了全局变量all_fractals ,判断是否正确?应该如何调整呢?
class FractalStrategyMin(CtaTemplate):
author = "用Python的交易员"
# 参数配置
fractal_confirm_bars = 2 # 分型确认所需K线数量
stop_loss_buffer = 3 # 止损缓冲点数
min_fractal_distance = 2 # 最小分型间隔(K线数量)
volume = 2
consecutive_number = 2
# 新增记录上次止损时间的变量
last_stop_loss_time = None
parameters = ["fractal_confirm_bars", "stop_loss_buffer", "min_fractal_distance", "volume", "consecutive_number"]
# 分型存储变量(统一存储所有分型)
all_fractals = [] # 存储所有分型 [(datetime, price, FractalType, strength)]
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
super().__init__(cta_engine, strategy_name, vt_symbol, setting)