VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
加入于:
帖子: 10
声望: 0

有遇到过同样问题的吗?

Super Moderator
avatar
加入于:
帖子: 100
声望: 10

✅ 首先确认几个关键问题:

1. 您是通过什么方式启动的 VeighNa Trader?

  • 如果是通过 CMD 或终端 启动的,有可能在运行过程中误触键盘,导致终端进入了 “选择模式”或“编辑模式”(Windows终端常见问题)。

    • 表现:界面看起来“卡住”,但其实只是暂停了输出。
    • 解决方法:按下 Enter 键退出选择模式,或者改用图形界面启动。
  • 如果是通过 VeighNa Station 或双击启动器 启动的,则不会有这个问题。

2. 您是如何判断“策略没反应”的?

  • 是不是只看界面没有更新?
  • 还是策略的持仓、交易信号没有变化?
  • 建议在策略的 on_tickon_bar 中加入打印语句,确认是否还在接收数据:
def on_bar(self, bar: BarData):
    self.write_log(f"收到K线: {bar.vt_symbol} {bar.datetime} {bar.close_price}")

如果日志还在持续输出,说明策略仍在运行,只是可能没有触发交易或信号变化。


🧪 排查建议流程:

步骤 操作 目的
1 检查策略日志输出 确认是否还在收到行情
2 在策略中添加打印 判断是否进入 on_bar / on_tick
3 检查策略状态(inited/trading) 是否初始化完成并启动
4 检查订阅的 vt_symbol 是否正确,是否行情中断
5 检查是否有异常抛出 是否策略崩溃但未捕获
6 检查是否阻塞主线程 是否执行了耗时操作导致事件循环卡住

📌 示例代码:增强策略日志输出

def on_bar(self, bar: BarData):
    try:
        self.write_log(f"收到K线: {bar.vt_symbol} {bar.datetime} 收盘价: {bar.close_price}")
        # 策略逻辑
        # ...
    except Exception as e:
        self.write_log(f"策略异常: {str(e)}", level=Level.ERROR)

✅ 总结

问题 建议排查方式
策略“没反应” 在策略中打印日志,确认是否收到行情
是否误触终端 如果是CMD启动,尝试按 Enter 或换图形界面
是否策略崩溃 使用 try-except 捕获异常
是否阻塞主线程 避免在 on_bar 中执行耗时操作

如您能提供以下信息,我可以进一步帮您定位问题:

  • 您是通过什么方式启动的 VeighNa Trader?
  • 策略是否还在输出日志?
  • 是否有异常提示?
  • 策略代码中是否有打印确认收到行情?

这样我们可以更有针对性地解决问题。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】