# 常见问题
# 常见错误
在日回测的功能里,Ricequant 为您提供了在线编辑器的功能,当您运行策略的过程中遇到问题的时候,您可以在运行时错误 tab 中您获得错误详情。
譬如,如下图所示,您的代码在运行时抛出异常,那么在运行时错误 tab 中,您将看到异常发生在策略代码的那一行,以及具体的异常详情。请注意,如果您没有捕获异常的话,策略将会中止。
如果你已经遇到了出错,那么在这里您将了解到常见的错误场景,以及应对的办法。如果您遇到无法解决的问题,请联系我们协助您解决。
常见错误如下:
- 所选股票不存在。
- 描述:
表示您所选的股票不在我们的日回测历史数据中,因此无法启动该回测。如下图所示:
- 解决办法
您当前可以使用一些其他的股票资讯网站来查询股票代号,如果您发现我们有遗漏的股票,我们将非常规感谢您联系我们,帮助我们解决您的问题。
- 策略代码抛出异常。
- 描述:
您的策略代码抛出异常且没有被捕获,因此导致策略运行中止。在运行时错误 tab 中,您可以看到抛出的异常的详情。如下图所示。
- 解决办法
通过查看抛出异常的详情,您需要可以定位到抛出异常的策略代码中的位置,修复问题,必要时候您可以通过 log 来打印可能出问题的变量或相关信息。
- 所选股票在所选时间段内无法交易。
- 描述:
这是因为所选择的股票在所选的时间范围内没有历史交易数据,因此无法运行您的策略进行回测。 - 解决办法:
遇到这个错误的原因有多种,后续我们会快速对错误提示进行更细致的调整,改善这个错误的引导提示。如果您遇到这个问题而不知道怎么定位,我们欢迎您联系我们协助。
- 系统繁忙,请稍后重试,如果仍然不行请联系我们。
- 描述:
ricequant 运行您的策略的时候需要使用到硬件资源有限,为了保证服务质量,我们对同时可以运行的策略数量有限制,同时运行的每个用户的回测数上限目前是 6 个。当系统负荷达到阀值的时候,我们将拒绝新的回测请求。 - 解决办法:
如果您有运行回测的需求,但是却遇到该问题,那么请联系我们协助。
- 编译错误。
- 描述:
您的代码中共包含语法错误,在运行时错误的 tab 中,您可以查询到发生编译错误的策略代码的行号以及错误详情。如下图所示:
- 解决办法:
根据编译错误的提示,您可能需要检查是否按照规范使用 Ricequant 提供的 API,或者您需要检查是否存在 python 语法错误。如果仍然难以定位问题所在,我们欢迎您联系我们协助。
- 运行超时。
- 描述:
为了防止恶意的策略常驻在我们的平台上耗费计算资源,我们限制了一个回测最长的生命周期时间。目前限制为 8 个小时,如果您的策略在 8 小时内没有能够完成,则会被平台强制停止。而每个事件循环handle_bar
在回测中的限时是3分钟
,实盘模拟中是5分钟
。 - 解决办法:
请您不要担心,通常复杂度的策略在平台负载不重的情况下,可以在 10-20s 内完成。如果您的回测策略确实需要运行比较久的时间,我们欢迎您联系我们协助。
- 其他错误。
- 描述:
这通常是因为系统内部错误导致。 - 解决办法:
欢迎联系我们,我们将第一时间协助您解决这类问题。
# 隐私及安全
您的策略代码是您宝贵的私有财产。我们非常重视您的安全和隐私,会非常严肃地解决安全隐患,Ricequant 使用各种措施来保证用户的策略代码及其它私有内容的安全。
除非您自己选择分享您的策略代码,否则它们在通过 https 加密进入 Ricequant 平台的一瞬间就会保持加密,其他人不能查看到您的策略,包括 Ricequant 也不会查阅、分享或以其它方式使用它们。
通常情况下,您会以下列的两种方式授权他人去查看您选择被看到的信息:
在 Ricequant 平台公共处分享您的策略或策略的表现结果
我们不久将推出策略分享的功能,允许您分享自己的策略或策略表现结果,与他人进行研究探讨。您要求 Ricequant 协助您解决代码中出现的问题
当您的策略出现问题并无法独立解决时,您可以选择让 Ricequant 协助您去定位问题。如果在提供技术支持或本服务其他维护的过程中,有必要让 Ricequant 查看您的私有内容,这样的检阅将被限制在非常具体的技术目的,并且我们会向您披露我们的做法。
在 Ricequant,我们通过一系列的措施来保护您的策略安全:
- https 通信加密:
您的浏览器与 Ricequant 平台之间的通信都经过 https 加密,这代表着您的策略代码以及代码运行期间产生的所有信息都会被加密,第三者无法窥探。我们全站都使用了 https,当您登录我们的网站后,在浏览器的地址栏会提示您正在使用 https 访问 Ricequant。
加密保存:
您的策略通过加密网络传输到 Ricequant 的服务器,我们会对其进行加密,并存放在内网的数据库中。隔离策略运行:
您的策略在运行的过程中会被放置在一个安全的隔离环境,平台上运行的其他策略无法进入该独立的环境,所以也不能候窥探您的任何信息。在技术上我们通过 Java security policy, separete class loader, linux namespace, linux cgroup, linux seccomp, selinux 等手段来构建这个隔离环境。如果您对我们使用技术感兴趣的话,可以通过阅读这个安全 blog 文档获得更多相关内容。
- 云端储存
我们的所有后台运算和储存都在非常出色的云服务商腾讯云上进行,他们有很专业的安全保护。
如您有对我们的安全保护有任何的疑问,请不要犹豫联系我们。