量化投资平台是什么?

5年多的量化学习、研究的经历,接触了很多可以用于量化分析、研究、交易的平台,对于量化投资平台是什么,反而越发模糊。

尝试对目前市场上现有的接触过的可对量化有帮助的平台,做一个梳理:

  1. 行情延伸平台:在行情软体的基础上,开发了一些可用于量化分析的简单的功能模块。以通达信、大智慧、飞狐为代表,通过他们的自有的easyLanguage的语言,一般可以实现条件选股、预警、基于技术指标的回测。功能简单,易学易用。
  2. 回测框架:可以通过历史数据来验证自己的投资理念、投资方法是否合适,只能用于回测,不能用于实盘交易。以一些人员开发的开源的回测框架为代表,如quantdigger(后期会不会接实盘,不清楚),pyalgotrade(目前已支持实盘);
  3. 交易框架:主要用于实盘自动化交易为主要目的,后期可能兼顾回测,以vnpy等为代表。
  4. 回测实盘交易框架:目前市场上也有一些是回测实盘都可以进行的量化平台,如开源的quantaxis,vnpy,商业化的平台,优矿,聚宽,米筐,国外的quantpian,quantconnect,mt4,mt5,multicharts,tradestation,文华财经,金字塔,TB等。

所以,一个量化投资平台应该集行情数据管理、策略回测、自动交易为一体的平台,为了控制投资风险,提高收益风险比,一般还都需要风险管理、投资组合、绩效分析的功能。

市面上其实已经有不少满足这些功能的量化平台了,有些甚至是完全开源的,所以,对平台要求不高的,可以直接用这些平台。

为什么要创造一个自己的量化投资平台呢?

既然市面上,已经有那么多的可以使用的相对比较完善的平台了,为什么还要自己造一个呢?重复造轮子,是一件吃力不讨好的事情。

这个世界上,已经有波音飞机了,你还需要去创造一个xxx牌子的飞机?姑且不论,能不能创造出来,买一台波音飞机和从头搞科研,发明创造一台波音飞机,哪个需要付出的代价更高?

这个世界上,已经有其他国家制造出来原子弹了,为什么还有那么多国家偷偷摸摸研究制造原子弹呢?

波音飞机,原子弹都只是工具,工具对于使用者的意义不同,使用者就会有不同的态度,是自己开发一个自己的?还是购买使用别人制造的。

量化平台也是,对于一个quant来说,量化平台就是他在这个市场上披荆斩棘、浴血奋战的武器,是选择商业化的制式刀剑还是创造一把最适合自己自己团队的武器呢?

每个人都有自己的选择,强求不得。如果想要开发一个量化投资平台,我觉得,在这个过程中,可以学到很多很多的东西:

  1. 编程能力就不说了,很显然的事情。
  2. 提高对量化投资的认识:对行情数据的理解,对技术指标的理解,对回测缺陷的理解,对自动化交易的理解,对风险管理的理解,对投资组合的理解,对绩效分析的理解。我认为,这恰恰是最大的收获。
  3. 对于平台的细节了然于胸,实盘的时候,只需要考虑投资理念、投资策略方面的问题。
  4. quant最好的名片之一(另外的是实盘业绩、Paper、名校Phd等)
  5. 如果走了狗屎运,你写的平台不错,那么,似乎还可以商业化运营。

给自己编了这么多的理由,就是给自己一个决心,这次不开发出来完善的量化投资平台决不罢休,不撞南墙不回头。

准备用10-20年的时间,完善这个平台。作为quant的职业生涯,将会有一部分精力开发平台,有一部分精力开发策略,有一部分精力管理实盘交易了。颇有些雄霸的「三分归元气」的感觉。

如何开发?

核心原则:

  1. 以实际为第一原则。在数据处理、回测、模拟、实盘交易当中,一切以投资活动当中实际会发生的状况为首要考虑的问题。
  2. 基于需求为导向,所有的开发都是为了满足量化投资过程当中的某些需要,不做所谓的无用功。
  3. 以逻辑简单、简洁、易用为标准。逻辑要尽可能简单、清晰,这样可以避免很多逻辑上的错误。策略编写过程要尽可能实现易用,因为可能会使用这个平台编写很多很多的策略。
  4. 由简到繁的进化历程。初始的框架只需要实现基本的功能就可,后续在这个基础上不断进行完善。

开发的详细计划

  1. 先考虑要实现的所有的基本功能。
  2. 选择使用哪种语言开发?(先用python,后期可能把底层用效率更高的C++进行重写)
  3. 基于需要实现的功能,写一份逻辑图,这个框架的逻辑在今后尽可能不变。
  4. 写一份比较详细的文档。
  5. 按照文档的要求,编写、完善需求、调整开发进度。

推荐阅读:

相关文章