Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

持久化文件没有trade? #152

Closed
dongyi opened this issue Jun 5, 2017 · 6 comments
Closed

持久化文件没有trade? #152

dongyi opened this issue Jun 5, 2017 · 6 comments

Comments

@dongyi
Copy link
Contributor

dongyi commented Jun 5, 2017

1. RQAlpha的版本

  • 2.2.7

2. Python的版本

3. 是Windows/Linux/MacOS or others?

4. 您出现问题对应的源码/或者能复现问题的简易代码 以及对应的配置

  • rqalpha run -f xxx.py -fq 1m -rt p -sc xxx --redis-uri xxx

5. 您出现的错误堆栈日志信息

持久化目录里只有broker,core,event_source,global_vars, portfolio, universe, user_context,可以把最后输出的trade(交易记录)加进去不?

ps. 可否参数指定输出的目录?
pps. realtime stock参数设置成fq 1m 但是实际执行还是3秒一次, 这是feature还是bug?

@dongyi
Copy link
Contributor Author

dongyi commented Jun 5, 2017

还有就是希望能持久化每日的portfoliol里的净值变化, 回测时候这部分是analyser模块记录在临时变量里的,实盘的时候如果中断/恢复 就看不到净值变化了

@wh1100717
Copy link
Member

@dongyi 有trade啊 https://github.com/ricequant/rqalpha/blob/master/rqalpha/mod/rqalpha_mod_sys_analyser/mod.py#L59

https://github.com/ricequant/rqalpha/blob/master/rqalpha/mod/rqalpha_mod_sys_analyser/README.rst#模块配置项 参数配置中 report_save_path 就是指定输出的目录的。

portfolio 里面的 unit_net_value 就是净值。 如果你做了persist, resume的时候应该是会被恢复的才对....

@dongyi
Copy link
Contributor Author

dongyi commented Jun 6, 2017

不好意思没表达清楚
你说的这个是report的csv文件吧 , 我指的是persist/strategy下面这些 用jsonpickle存储的文件,我刚运行了一下还是没有trade这个文件,另外几个文件都是在实时更新的, 也产生了trade事件。

我说净值的意思是我想要记录净值的变化,现在只有记录当前净值,如果我自己记录变化的话,在pause/resume的时候就比较麻烦

@wh1100717
Copy link
Member

@dongyi analyser 的pickle 也是有记录trades的 但是刚才看了一下 你这个运行 paper trading, 这个执行逻辑和回测是不一样的。

analyser 是回测全部运行完以后统一进行pickle导出的。 paper trading 没有所谓的结束,所以analyser不适用。

如果你想要在PT 阶段实时获取这些数据,需要自行扩展,这个其实也不复杂,简单来说,就是注册事件,在事件处理函数中获取你需要的数据,然后直接存储到数据库/文件中。

你需要的 persist 额外的内容,也是可以做到的,可以参考一下这个issue #52

或者看一下 系统自带的 persist 是如何实现的。

https://github.com/ricequant/rqalpha/blob/master/rqalpha/main.py#L262

不过Persist 这块未来可能会重构,提供更简单的通用的持久化接口。

@dongyi
Copy link
Contributor Author

dongyi commented Jun 6, 2017

@wh1100717 好的谢谢

@han14466
Copy link

请问这个大家是如何在PT中实现的trade历史记录和portfolio历史记录的持久化?我目前是在DiskPersistProvider中当portfolio == key的时候多append一个文件。trade目前发现没有实现set_state和get_state方法,这个是不是要自己实现一下,然后注册到persist_helper.register中呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants