同花顺 MindGo,请不要拿个垃圾平台出来给大学生打比赛好吗

同花顺 MindGo,请不要拿个垃圾平台出来给大学生打比赛好吗

James SwinesonJames Swineson

鉴于我团队决定放弃比赛,这篇文章可能不再更新。所有所述问题基于我在文章初次发布时的使用体验,今后可能有所变化。昨天同花顺的工作人员跟我说,他们正在进行人事调整,系统也打算重新好好做。我还是很希望这个平台越做越好的。

==========

我感觉啊,现在有一个潮流,就是随便一家公司,做出来一个随便什么东西,就扔给大学生用用,一方面显得自己很高大上很互联网很创业,另一方面跟学校合作就有免费的强制的用户量嘛,数据也好看。比如敝校已经买了至少五个网课系统,不同的老师用不同的系统,那叫一个酸爽。但是这类东西至少基础功能是正常的,不是那么容易出 bug;这次拿来做比赛用的平台,我觉得已经成为设计失败级别的存在了。

同花顺这个量化交易平台(quant.10jqka.com.cn)的糟糕程度,我觉得只要你们做平台的人自己去上面写两天代码就能知道。各种匪夷所思的问题,任何一个智力正常的程序员只要认真用了都能发现。

函数的参数格式混乱

大概一半函数的日期参数格式是 YYYYMMDD,另一半是 YYYY-MM-DD。一半的读数据库的函数是把每个查询值写到函数的某个命名参数里面,另一半是创建一个 SqlAlchemy Query 对象然后传进函数。

给我根绳子我要去二次元。

程序内不能搜索文本

在程序编辑器里面连 Ctrl+F 都不能用。你们有没有写过超过一屏幕高度的程序???是不是就写了个十行的例程觉得没问题就把平台发布了???

日志没有自动换行并且不能横向滚动

WHAT THE FXCK,你们公司一人发一个带鱼屏的?调试的时候打个 list 结果要看后面一半还得去审查元素……

没有版本管理

算了算了复制粘贴也算版本管理又不是不能用是吧。

Silent Fail

比如说做多因子的时候有一行的值是空的(此事常有,因为从数据库里面读出来的数据就是空着的,pandas 运算完以后默认也还是空着的),直接拿去跑自定义因子,回测不会失败或者报错,但是会全程没有结果。

何况数据库里面的公司财务历史数据为什么会是空着的呢……细思极恐。

回测显示数据混乱

经常一次回测到一半突然发现出来的数据比回测完成的百分比多很多,仔细一看发现上次回测的数据被显示到这次回测的图上来了……

逼死强迫症

以及可以看看题图……

网页性能问题

回测期间疯狂从服务器拉数据然后疯狂重绘图,网页滚动都卡。

=====================

最近写了个框架把平台的一些坑包装起来,自用,很多功能不全,但是提供了一些比较好的思路。代码见:Jamesits/MindGoWrapper

这个平台其实是两部分,一部分是调用自己写的代码的回测框架,另一部分是可以让你读取数据的 API。API 一来文档不全,二来特定 API 在读取特定位置数据的时候可能会出错。回测框架的坑呢一方面在回测功能里面 stdout 和 stderr 都不能用,另一方面只要你自己写的代码(包括读数据的 API)出了异常,回测框架会有一个全局 catch 把它抓出来然后抛出一个完全没有必要而且非常莫名其妙的新异常(这还是在 Jupyter 里面看到的,如果在回测功能里面的话,直接一行你的代码在第几行出错了然后就停止运行,完全看不到其实异常发生在平台 API 内部。)

所以我自己写的框架也是两部分。一部分包装几个常用 API 做成更加容易使用的版本。另一部分插在回测框架和自己写的代码之间,一方面即使在回测功能里面也能顺利地把错误信息以及完整的调用栈打出来以便推锅,一方面提供了一个即使出错仍然继续执行的功能,方便参赛等对于稳定性要求高的环境使用。以及,我这个框架基于调度器设计,不同时间单位的调度任务互不干扰,可以在平台 API 导致异常的情况下最小化对程序的影响。

「炒股有风险,投资需谨慎。」
还没有人赞赏,快来当第一个赞赏的人吧!
文章被以下专栏收录
29 条评论
推荐阅读