许多作者认为,如果没有大量的自动化交易,要在外汇市场中取得成功几乎是不可能的。这种自动化可能涉及市场分析工具、信号指标、自动化执行(智能交易系统)以及绩效分析工具。这些方面中任意一项的自动化都会增强交易过程的可验证性、可重复性及可靠性——这些都是在外汇市场中实现盈利的重要因素。 当交易者首次决定将他们正在进行的操作(或计划的操作)自动化时,他们会遇到交易平台提出的限制。这些限制也适用于那些用来创建设想脚本、指标或智能交易系统的编程语言。大多数交易者拒绝更换交易平台,并继续使用他们往常交易的平台进行自动化交易。这导致行业中最流行的编程语言及工具也由最流行的交易平台提供。这反过来又增加了平台受欢迎的程度(因此 MT4 成为了主流平台)。 然而,交易平台本身的质量并不总是与它编程语言及开发环境的质量相匹配。例如,到目前为止,TradingView 与它的 Pine 脚本就明显不在一个层次。 下文简要介绍了目前外汇交易者在选择自动交易编程语言时可选的范围:
- MQL4——最早的专门为自动外汇交易开发的编程语言之一,同时也可能是零售外汇交易中最受欢迎的编程语言。自 2005 年发布初始版本以来,它已演进为变化很大的版本。这门语言与 C 语言相似,但现在也可以使用类,可以通过 DLL 导入进行扩展,并且几乎可以执行任何任务。在 MQL4 中编程非常简单,但是会受到 MT4 平台的限制。
- MQL5——这是比 MQL4 更新的兄弟版本,具备更多的功能以及面向对象编程的内在偏向。用 MQL5 完成一些简单操作可能是一个复杂的过程,但它的海量标准库简化了大部分工作。它的功能比 MQL4 的更丰富,因为 MT5 平台 是作为一款通用交易工具而创建的。
- cAlgo——cTrader 平台的编程语言基于 C#,并扩展了许多与平台相关的类。一位目前的 C# 编程人员切换至 cAlgo 比一位目前的 C++ 编程人员切换至 MQL4 或 MQL5 更简单。不过,cAlgo 在与平台交互的可用功能方面仍然有很大的欠缺。尽管如此,官方社区依然有许多 cAlgo 编程人员。而且,您也可以通过我们的指标和机器人教程学习 cTrader。
- NinjaScript——NinjaScript 比 MQL4 更晚推出,与 cAlgo 相似并且也可以扩展 C#。它很受 NinjaTrader 用户的欢迎。不过, NinjaTrader 本身不太受即期外汇交易者的欢迎,它更像是一个以期货为中心的平台。
- Pine 脚本——这是本文中最新的交易平台语言。Pine 脚本用于为目前最受欢迎的图表平台之一 TradingView 创建指标及自动策略。TradingViewPine 脚本肯定缺少上述语言所包含的功能,因为它非常简单。但它的简单性使那些有意向将一部分交易策略自动化的非编程者能够轻松地使用它。
- 通用编程语言(例如 Python、Go、R 甚至是 C++)可以并且已经被交易员用于自动化分析和交易执行过程。 这要求经纪商服务器与开发者创建的程序之间建立某种形式的连接。这种连接是通过一种 API (应用程序编程接口)实现的。当然,并非所有经纪商都提供可访问其服务器的 API,也并非所有交易者都有能力开发出行之有效的应用程序。
- Excel(或它的 LibreOffice 对手)被广泛地用于根据由经纪商通过 API 提供的数据进行市场分析。通过简单的 DDE 访问,您甚至可以将 Excel 电子表格连接至在您计算机上运行的 MetaTrader 平台。这只需要少量的实际编码知识,也是 Excel 专业人士进入外汇交易自动化领域的好方法。
大多数外汇交易者对 MQL4/MQL5、cAlgo 及 Pine 脚本的编程经验有限。但是,越来越多的人在尝试通过 API 将 Python、Go 及 Excel 连接至交易服务器。 你为外汇平台编写过代码吗?您可以使用我们的论坛分享更多细节,例如:您是如何学习的?它有多难?您出于交易或分析目的而开发的最复杂的程序是什么?在您看来,哪个零售外汇平台提供的编程语言及开发环境最好呢?
如果您有兴趣学习 MQL4 编程,您可以参考我们专门为 MQL4 编写的指南。如果您需要将某些操作自动化,却又不想花时间学习,您可以查看可用的定制编程服务。