关于量化协作平台部分服务升级 Python 大版本的说明

尊敬的米筐用户:

Ricequant 在线量化协作平台已于近期开始逐步升级部分服务的 Python 版本——这些 Python 解释器被用来执行您的代码。本次升级跨越多个 Python 大版本,部分第三方包的版本也会进行大幅升级,这可能会对您的使用产生一定影响。在此过程中,我们会以金融系统级别的稳定性和兼容性要求自己、尽可能为您提供平缓的升级和过渡方案,但依然可能需要劳烦您做一些工作——我们对此深表歉意。在此之前,恳请您抽出时间阅读以下内容(尤其是“如何平滑过渡到新版本”部分)。

升级的范围和版本

  • 投资研究、回测和模拟交易将会升级
  • 上述服务中运行用户代码的 Python 解释器将统一升级至3.9版本
  • 上述服务中部分供用户调用的第三方包将会升级,如 Pandas 将会升级到 1.x,tensorflow 将会升级到 2.x 版本

升级的时间表

  • 投资研究:已于2021年6月24日更新加入 Python3.9 新环境
  • 回测和模拟交易平台:已于2021年7月29日更新加入 Python3.9 环境
  • 上述两个平台将于2021年9月29日下线 Python3.5/3.6 环境,请您根据下述的方法,调整您的策略,避免中断。

为何要升级

当前回测和模拟交易仍在使用 Python3.5,该版本的官方支持已于去年下半年到期,众多第三方包已默认不再提供 python3.5 版本的更新;研究平台所使用的 Python3.6 也将于今年年底面临同样的问题。Python3.5 已经是近六年前发布的版本,在这几年间,Python 以及众多第三方包为用户带来了大量非常有价值的新特性,我们希望米筐用户同样能享受 IT 行业飞速发展所带来的红利,利用新技术新特性写出激动人心的代码,而不是长期囿于六年前的 Python 为我们划下的牢笼。

升级可能对您的代码带来的影响

您在旧环境写下的代码在新环境中运行时可能会出现兼容性问题,您可能需要手动对原有代码做出微调。兼容性问题主要来自第三方包的不兼容更新——如 Pandas 将不再支持 Panel 类型,若您在处理多维数据时用到了 Panel,您可以考虑使用更直观好用的 MultiIndex DataFrame 代替。

关于第三方包 API 变更的具体情况,您需要查看这些包官方提供的文档或变更记录。若您遇到了难以解决的问题,米筐的技术支持同学也很乐于为您提供帮助。

如何平滑过渡到新版本

在更新初期,我们会采用双版本并行的方案,给您足够的缓冲期来进行代码的调整和调试。

  • 研究平台

您可以通过选择 kernel 的方式选择您想要启动的 Python 环境。我们会默认为您启动 Python3.9 的新环境,但如果您的代码存在兼容性问题,您仍可以回到 Python3.6 环境中进行您的日常投研工作,同时抽空进入新环境调试代码的兼容性。

需要注意,为了满足用户多样化的需求,降低第三方依赖包发生版本冲突的可能性,我们缩减了新环境默认包含的第三方包的数量。但如果您有需要,仍可通过 %pip install –user xxxx 的方式手动安装第三方包。

  • 回测平台

我们会在策略参数处为您提供运行环境的选择,您可以在 Python3.5 和 Python3.9 环境间选择一个执行您的策略代码,如下图所示:

  • 模拟交易平台

您现有的模拟交易会继续在 Python3.5 环境下运行,但新创建的模拟交易将会在 Python3.9 环境运行

您现有的模拟交易可以通过更换代码功能切换到 Python3.9 环境——您可以在新的 Python3.9 环境中调试并运行该模拟交易对应的回测,然后在模拟交易的更换代码处选择在新环境下执行的回测,您的模拟交易即会改为使用此次回测的代码在新的环境中执行。

如下图所示,在模拟交易详情页中,点击设置——更换代码,已经在Python 3.9环境中运行过回测的策略会显示“python版本:py3.9”的标签,选择该策略即可更换对应的策略代码,并在Python 3.9环境中运行模拟交易:

新Python环境相关说明

Python 模块列表:Ricequant的线上Python环境中现在支持多种强大的Python模块,您需要手动引入。目前支持的Python模块可在 Python模块中查看。

Python模块安装:在 Python 3.9 环境中,除了上述支持的 Python 模块之外,您还可以将自己需要使用的 Python 模块安装到该环境中,具体可参考Python模块安装

常见不兼容问题:Python版本的升级会出现部分不兼容的情况,具体内容可参考常见不兼容问题

如您在使用过程中有任何问题,欢迎致电0755-22676337,感谢您对米筐科技的支持。