VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 5
声望: 0

用的2.02版本,用SimNow作模拟交易,vnpy重起后无法保存持仓数据,
description
上图明明有仓位,但重起后却显示
description
我用数据库可视化软件察看,没发现有像1.9版本那样保存pos数据的表
description
并且.vntrader目录下的文件我都打开看了,也没发现pos数据
我想问一下pos持仓数据是保存在.vntrader下的database.db中吗?
我该怎么做?

Member
avatar
加入于:
帖子: 16
声望: 3

同问

Administrator
avatar
加入于:
帖子: 4500
声望: 320

不是,主界面上的数据都是在连接上交易服务器后,从服务器获取的,确保永远是服务端的最新数据,没有任何本地缓存逻辑。

Member
avatar
加入于:
帖子: 5
声望: 0

用Python的交易员 wrote:

不是,主界面上的数据都是在连接上交易服务器后,从服务器获取的,确保永远是服务端的最新数据,没有任何本地缓存逻辑。

感谢回复,
可能我的问题描述的不清楚,我的问题和  https://www.vnpy.com/forum/topic/457-zhong-xin-qi-dong-vnpyde-ce-lue-poswei-shi-yao-wei-0  这位朋友是一样的,策略自行下单并持仓,重新启动程序后,点击策初始化、策略启动后,POS显示为0,导致了策略重新开了一手新的仓位。
我用2.02版连接SimNow是这样,之后重装系统用2.04版本vnstudio连接中信期货的仿真系统也是这样,另外我在台式机 笔记本电脑和阿里云上试验过,都是这种情况 
用户目录下的.vntrader下的database.db中只有dbbardata和dbtickdata这两张表

1.9版本的策略持仓数据会在程序退出后保存到MongoDB中,那么2.0版本的策略持仓数据保存在哪里?
出现这种情况可能是哪里出现问题 或者 我该怎样排查问题?

Member
avatar
加入于:
帖子: 5
声望: 0

用Python的交易员 wrote:

不是,主界面上的数据都是在连接上交易服务器后,从服务器获取的,确保永远是服务端的最新数据,没有任何本地缓存逻辑。

补充一下 我用的是默认的sqlite数据库

Administrator
avatar
加入于:
帖子: 4500
声望: 320

策略的持仓数据,会写入c:\users\administrator\cta_strategy_data.json这个文件中

Member
avatar
加入于:
帖子: 5
声望: 0

用Python的交易员 wrote:

策略的持仓数据,会写入c:\users\administrator\cta_strategy_data.json这个文件中

description
我刚试验了一下,策略发单持仓后,退出程序,检查这个文件,里面如上图是空的
我在笔记本电脑上用2.02登陆SimNow,又在阿里云上用2.04登陆中信的仿真系统,策略持仓后退出程序,cta_strategy_data.json文件里都是空的

Member
avatar
加入于:
帖子: 45
声望: 0

我遇到的问题和你一样

Administrator
avatar
加入于:
帖子: 4500
声望: 320

有成交了,或者你在策略中调用sync_data函数了,才会写入文件

Member
avatar
加入于:
帖子: 5
声望: 0

用Python的交易员 wrote:

有成交了,或者你在策略中调用sync_data函数了,才会写入文件

感谢回复,我的问题解决了
试了一下, 在 on_trade 函数里调用sync_data函数后,策略持仓终于写入文件中了
但是不主动调用sync_data函数,就不写入文件,不知道是不是bug.

Member
avatar
加入于:
帖子: 7
声望: 0

按版主的说法,或许最好是依赖从服务器获取的持仓信息,在策初始化启动后,应该连接服务器获取POS。

乌梦游 wrote:

用Python的交易员 wrote:

不是,主界面上的数据都是在连接上交易服务器后,从服务器获取的,确保永远是服务端的最新数据,没有任何本地缓存逻辑。

感谢回复,
可能我的问题描述的不清楚,我的问题和  https://www.vnpy.com/forum/topic/457-zhong-xin-qi-dong-vnpyde-ce-lue-poswei-shi-yao-wei-0  这位朋友是一样的,策略自行下单并持仓,重新启动程序后,点击策初始化、策略启动后,POS显示为0,导致了策略重新开了一手新的仓位。
我用2.02版连接SimNow是这样,之后重装系统用2.04版本vnstudio连接中信期货的仿真系统也是这样,另外我在台式机 笔记本电脑和阿里云上试验过,都是这种情况 
用户目录下的.vntrader下的database.db中只有dbbardata和dbtickdata这两张表

1.9版本的策略持仓数据会在程序退出后保存到MongoDB中,那么2.0版本的策略持仓数据保存在哪里?
出现这种情况可能是哪里出现问题 或者 我该怎样排查问题?

Member
avatar
加入于:
帖子: 7
声望: 0

makr
pos发单数量本地存储位置

Member
avatar
加入于:
帖子: 5
声望: 1

乌梦游 wrote:

用Python的交易员 wrote:

有成交了,或者你在策略中调用sync_data函数了,才会写入文件

感谢回复,我的问题解决了
试了一下, 在 on_trade 函数里调用sync_data函数后,策略持仓终于写入文件中了
但是不主动调用sync_data函数,就不写入文件,不知道是不是bug.

版本原因。
我前后看几个版本的cta模块的源码,之前低版本的一些功能没有完善,例如策略data同步没有实现。
后来是2.0.4还是哪个版本后,cta都完善了,可以用于生产了

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

沪公网安备 31011502017034号

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