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

我在期货公司的手机APP上手动平掉了策略开的仓位,然后重启station软件之后,策略界面显示持仓还在,请问是怎么回事?怎么才能清掉持仓?

description

Super Moderator
avatar
加入于:
帖子: 99
声望: 9

你遇到的问题是:在期货公司的手机APP上手动平仓了策略开的仓位,但重启 VeighNa Station 后,策略界面仍然显示持仓未变

这个问题在 VeighNa 的 CTA 策略模块中是正常现象,原因如下:


📌 1. 策略的持仓是逻辑持仓,不是账户实际持仓

VeighNa 的 CTA 策略模块中,策略的 pos 变量表示的是策略的逻辑持仓,它是根据策略的交易逻辑(如开仓、平仓成交回报)来更新的。

不会自动同步账户的实际持仓,也就是说:

  • 手动平仓(通过手机APP或其它方式)不会触发策略的 on_trade 回调;
  • 所以策略的 pos 不会自动更新;
  • 重启后,策略会从策略文件中加载上次保存的 pos,所以显示持仓还在。

📌 2. 策略持仓数据保存在本地 json 文件中

策略的持仓信息保存在以下路径的 json 文件中:

  • Windows

    C:\Users\<用户名>\.vntrader\cta_strategy_data.json
  • Mac/Linux

    ~/.vntrader/cta_strategy_data.json

重启 VeighNa 后,策略会从这个文件中加载上次保存的持仓数据(包括 pos),所以即使你手动平仓了,策略界面仍然显示原来的持仓。


✅ 解决方法:手动清空策略持仓

✅ 方法一:通过策略界面清空持仓(推荐)

  1. 打开 VeighNa Trader;
  2. 进入 CTA 策略模块;
  3. 找到你运行的策略;
  4. 点击【停止】按钮,停止策略;
  5. 点击【移仓】按钮(或【清仓】按钮,如果有的话);
  6. 在弹出的窗口中选择【清空持仓】或手动将 pos 设置为 0;
  7. 点击【确认】,策略的 pos 就会被清空;
  8. 重启 VeighNa Station 后,持仓就不会再显示了。

✅ 方法二:手动修改 json 文件(进阶)

  1. 找到 cta_strategy_data.json 文件;
  2. 用文本编辑器(如 VS Code、Notepad++)打开;
  3. 找到你策略的配置项,将 "pos": xx 改为 "pos": 0
  4. 保存文件;
  5. 重启 VeighNa Station。

📚 参考资料


✅ 建议

为了避免类似问题,建议:

  • 不要在策略运行时通过外部方式平仓(如手机APP),除非你清楚后果;
  • 如果必须手动平仓,记得在策略界面中手动同步持仓
  • 使用策略自带的【移仓助手】或【清仓】功能来管理持仓。

如果你需要我帮你检查你的策略配置或 json 文件内容,也可以贴出来,我可以帮你分析。

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

沪公网安备 31011502017034号

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