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

1)策略中的variables变量会在停止策略时写入策略数据文件:cta_strategy_data.json 中
2)每次初始策略会先加载数据然后用cta_strategy_data.json文件的内容重置策略变量,代码如下:

        self.write_log(f"{strategy_name}开始执行初始化")

        # Call on_init function of strategy
        self.call_strategy_func(strategy, strategy.on_init)

        # Restore strategy data(variables)
        data = self.strategy_data.get(strategy_name, None)
        if data:
            for name in strategy.variables:
                value = data.get(name, None)
                if value:
                    setattr(strategy, name, value)

3)假设策略用到的交易高点被记录到变量中 variables = ['intraTradeHigh'],则可能引发问题如下:

  9月1号 开仓做多,成交价 = 98,停止策略时 记录 intraTradeHigh = 100
  9月2号 没有启动策略交易 当天最高价 = 110
  9月3号 开启策略时候会用策略文件中的 100 设置intraTradeHigh值,这样就漏掉了2号的最高价110,可能对交易策略产生一定影响。

粗略的分析,欢迎大佬拍砖指正~

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

是的,这里设计上考虑的是:正常跑量化策略的人,肯定每天盘中都开着系统,而不会今天跑一天明天不跑

Member
avatar
加入于:
帖子: 152
声望: 4

用Python的交易员 wrote:

是的,这里设计上考虑的是:正常跑量化策略的人,肯定每天盘中都开着系统,而不会今天跑一天明天不跑

请问一下假如我用的是no ui运行的,就是运行那个run.py。
里面好像没有停止策略的功能,假如直接将运行run.py的cmd窗口关闭了。

那还会将数据写入策略数据文件:cta_strategy_data.json 中吗?

谢谢。

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

2.0.7后,改为只要有成交随时会将数据写入json文件中,或者用户自己调用sync_data写入也行

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

沪公网安备 31011502017034号

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