Python还是C++?您的期货量化策略应该用哪种编程语言

2019-04-11 10:48:55    来源:真格量化    作者:

您是否需要为了写个简单的策略就死磕半本 C++ Primer 呢?

我们已经了解了中国期货交易所与投资者之间通讯模式,在这种模式下一个高效的量化交易系统应当采用“事件驱动”式设计,即系统需要订阅行情并监听各种“事件”(或者“消息”,比如成交回报或账户的资金状况等)并作出相应的响应。

在事件驱动的设计模式下,为了实现我们的交易策略,我们需要选定一个编程语言。到底是用一种编写方便、但是需要解释器的脚本语言,比如Python,还是用比较传统的、编写复杂、需要编译的编程语言,比如C++呢? 这是刚踏上量化交易征程的投资者们经常面临的问题。

语言问题

为了比较这两类编程语言的优劣,我们可以考虑以下因素:

1,开发敏捷性:

用脚本语言来描述策略思想更加容易,实现同样的逻辑所需要的代码量会更少。当您有一个还不是很成熟的想法时,使用脚本语言可以很方便地去修改和测试这个想法。您也不需要为了很小的一点改动而重新编译整个系统。在开发敏捷性上,脚本语言,如Python更胜一筹。

2,执行速度:

编译后执行的C++速度更快,在对速度要求更高的场景下有优势。

3,可靠性:

C++为取得更快执行速度往往也伴随着大量使用指针而带来的内存泄露问题,容易造成整个系统的崩溃。而Python自带“垃圾回收”机制,一个设计良好的程序不会因为任何一行语句而使整个系统崩溃。在可靠性上,Python更有优势。

4,资源开销:

在专业的量化交易机构中,策略分析师通常只需要研究策略的思想,公司还会专门配备IT开发团队来用C++来实现策略交易的执行。而小型机构或个人投资者就没法这么奢侈,他们有限的资源和时间通常需要同时兼顾策略的开发和交易的执行。Python,借助一些现成的平台工具,比如真格量化,可以比较快捷地实现策略研发和交易执行,对资源有限、“身兼数职”的投资者来说是更好的选择。

5,学习曲线:

C++学习曲线过长,里边不少艰深的概念,比如指针、虚函数、模板等让初学者一头雾水,即使是科班出身的专业人士也时常面临挑战。很可能投资者在真正能够着手用C++设计策略前,需要学习大量与策略毫无关系的计算机理论。在这个过程中的各种挫折可能就让投资者打了退堂鼓。而与之相比Python非常简单易学,即使是非计算机专业人士稍作努力就能迅速上手,能够集中精力去设计策略。

综合看来,除非对执行速度有绝对高的要求,对于中小投资机构和个人投资者,Python这个脚本语言多数时候是更好的选择。即便是专门针对高频策略,需要将其逻辑用C++编码以获取更高的执行速度,在策略研发和小规模实盘测试阶段,Python也能为您节约大量的时间和人力成本。而提供海量数据和高性能交易服务器的真格量化还能将用Python进行策略研发和量化交易执行的过程变得更加简单。

“人生苦短,我用Python”。

本文标签: 期货量化