策略解析:TestStrategy (功能测试工具)
源码文件:vnpy_ctastrategy.strategies.test_strategy 1. 策略概述 TestStrategy 并不是一个用于实盘获利的交易策略,而是一个调试工具。 它的主要作用是帮助开发者验证: 交易接口(Gateway)是否连接正常。 策略引擎(CtaEngine)是否能正确收发订单。 测试下单函数的执行耗时。 基类:CtaTemplate 触发机制:基于 Tick 计数,每隔 N 个 Tick 执行一个测试动作。 2. 测试流程 策略内部维护了一个函数列表 self.test_funcs,按顺序存放了要测试的动作: 市价单测试 (test_market_order): 以涨停价 (limit_up) 发出买单,模拟市价成交(在期货中通常用对手价或超价模拟市价)。 限价单测试 (test_limit_order): 以跌停价 (limit_down) 发出买单,模拟挂单(通常不会立即成交)。 全撤测试 (test_cancel_all): 调用 cancel_all() 撤销之前挂出的所有未成交订单。 停止单测试 (test_stop_order): 发出本地停止单(Stop Order),验证策略引擎的触发机制。 3. 核心代码逻辑 在 on_tick 中,每收到 test_trigger (默认10) 个 Tick,就弹出一个测试函数执行,并计算耗时。 1 2 3 4 5 6 7 8 9 10 11 self.tick_count += 1 if self.tick_count >= self.test_trigger: self.tick_count = 0 if self.test_funcs: test_func = self.test_funcs.pop(0) # 取出下一个测试任务 start = time() test_func() # 执行 time_cost = (time() - start) * 1000 # 计算耗时(ms) self.write_log(f"耗时{time_cost}毫秒") 4. 使用场景 当你刚配置好一个新的交易接口(比如连接到一个新的仿真环境),或者修改了底层引擎代码后,可以先运行这个策略: ...