对方正在输入...... 小伙伴们: 你们好,很高兴又见面了。 工欲善其事必先利其器。学习量化策略研发,首先要选择合适的工具。工具的选择涉及两点:编写语言的选择与量化研发平台(软件)的选择。 这一节课,先讲讲如何选择策略编写语言。 小K老师 Easy Language(EL)及其衍生语言 EL是TradeStation于1991年推出的专门用于编写技术指标和交易策略的序列语言,已有近30年的历史。曾是国际上近乎标准的行业语言。 EL是一种类自然语言,语法和英语接近,学习难度较低,容易上手。同时,它在几十年的应用中积累了丰富的经典指标和策略资源,很适合没有编程基础的初学者作为入门语言。富有经验的投资者,也可以从EL类语言几十年积累的资源中获取灵感。 EL的优点是编写和运行效率高,擅长处理固定时间间隔周期的数据,如开、高、低、收、量、额六种序列,以及由此扩展计算出来的序列数据。在某些场景下,比如,研发一个基本只涉及到使用序列数据的交易策略时(如期货类交易策略),使用EL及其衍生语言效率较高。 其弱点是缺少遍历整个市场、处理离散财务数据的能力,因此在应对股票多因子类策略时较困难(不同股票的财务数据发布时间并不一致,与K线时间无法一一对应)。 中量软件的金语言为EL类语言。它继承了Easy Language的优点,还支持中文编程,兼容国内传统股票软件(通达信、大智慧等)的公式语言。 Python 目前广泛应用于多领域的解释型高级编程语言,在量化研发领域也相当流行。学习难度小,无编程基础也容易上手。 Python平衡性好,兼具灵活的数据处理能力和较高的编写效率,提供大量可直接使用的金融和统计工具包,可快捷实现策略研发和交易执行。尤其适合股票交易这类经常使用各种因子进行选股的策略(EL类序列语言则难以应对这种需求)。 虽然在某些情况下,Python效率不如其他语言(例如期货策略效率不如EL类语言,运行速度不如C类语言),但Python可以满足大多数策略研发场景,是当前流行的策略研发语言,适合大多数人学习使用。 C / C++ / C# C类语言功能强大,应用范围广,可用于编写非常复杂的策略。但其规则复杂,概念艰深,缺少专门用于量化策略研发的工具,学习门槛高,不适合新手学习。 C类语言开发敏捷度较低,研发策略的效率不如EL、Python等语言,但编译后运行效率高,在高频策略、套利策略等对速度有更高要求的场景下有优势。因此,那些拥有强大的开发团队、对策略运行速度要求较高、策略需求稳定的专业机构会更倾向于使用C类语言或者多种语言混合使用。 Matlab / R语言 其内置的数学工具包可用于交易策略的数学建模,包含大量成熟的数学和绘图工具。在需要频繁绘制图表进行教学、演示的场景中,Matlab和R语言更显身手。有一定的学习难度,适合有一定编程基础的使用者。 我们先来看看案例。 【例一】 以实现MACD金叉死叉策略为例,这个策略主要应用序列数据,EL及其衍生语言实现效率很高。 △使用金语言,只需几行代码即可完成 △使用Python,代码量大,语法更为复杂 【例二】 以基础财务策略为例,因为用到了财务数据,使用Python可以轻松实现,EL类语言则无法实现。 △Python编写的基础财务策略例子,序列语言基本无法实现 【例三】 以兼容公式语言写法的Python策略为例,Python具有很强的扩展性,加载了talib库之后,可以使用类似公式语言写法的函数,提高编写效率。 △一个融合了公式语言与Python的例子,使用MA、CLOSE等公式语言写法的函数,简化代码,提高编写效率(以中量软件为例) 由此可见,没有一种语言是完美的,每种策略编写语言各有特长,也各有局限。我们应该根据自身情况和应用场景,选择恰当的策略编写语言。 列表对比一下这些常见策略语言的特点和适用场景: △常用策略编写语言介绍 △常用策略编写语言适用场景 好了,关于如何选择策略编写语言就先讲到这里~下节课,我们将为大家讲解如何选择量化研发平台(软件)。一起期待吧。 ![]() ![]() 风险提示 股市有风险,入市须谨慎。任何技术指标和策略都只是辅助决策的工具,不是绝对准确;示例与结果仅供研习参考,不构成任何投资建议。同时,文中所提及的任何方法和工具,在实际使用中,均需结合其他工具、根据自身以及具体情况进行综合判断。 · end · 总指导 | 徐小明 主编 | 海菱 编辑 | Winder、潘潘、晓璇 |
|