ricequant / rqalpha

A extendable, replaceable Python algorithmic backtest && trading framework supporting multiple securities
http://rqalpha.io
Other
5.38k stars 1.61k forks source link

有没有更好的方式对持久化的策略传参呢? #740

Open Daic115 opened 2 years ago

Daic115 commented 2 years ago

1. RQAlpha的版本

4.11.3

2. Python的版本

3.8.10

3. 是Windows/Linux/MacOS or others?

Windows

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

目前使用run_file的形式运行策略,并使用 rqalpha-mod-incremental进行策略持久化; 由于策略会每日读取一个文件,目前用如下方式:

run_file("./strategy/strategy_test.py",
         config={
             ...
             "extra": {
                 "log_level": "info",
                 "context_vars": {"file": "当日加载的文件路径"},
             },
             ...
         })

通过 context_vars 的形式进行传值给 ucontext 会被 persist_helper 中之前的内容覆盖 main.py#L205 ; 目前的解决方法就是直接固定死context_vars中需要读取的文件路径,然后每日进行覆盖,但感觉这种方式不太灵活;请问下有没有更好的方式对持久化的策略传参呢?

hzliu commented 1 year ago

策略内动态调整的参数应该在 before_trading 阶段读取。persisit的目的是保存策略运行状态。