外汇市场自动交易系统选型与使用指南

1.介绍

如今,在金融市场中,借助信息和交易平台实现高效交易已成为普遍需求。与传统交易方式相比,这类平台具备显著优势,例如:向终端用户传递信息的处理速度前所未有,数据提供商的整合水平较高,以及拥有大量技术分析工具可供使用。

然而,投资者在经纪商处开设账户后,往往无法同时兼顾实时分析,并在一周七天、全天候在多个市场中交易多种金融工具。因此,使用自动交易系统来管理运行时间、客户及服务器程序的需求日益凸显。

2. 问题区域对比分析

多种软件组件覆盖了目标领域的市场表格分析以及复杂的交易和管理预测。交易平台为各类客户(经纪商、交易员、金融分析师和顾问)提供服务,从昼夜访问信息的手机客户端,到主客户端中的多种移动交易选项,一应俱全。

软件市场提供了众多信息和交易平台,首先在客户实用性和服务器部分,金融公司会在开户后提供服务器列表。然而,真正包含自动交易组件的软件方案少之又少。

2.1. MetaTrader4-基础解决方案

全球应用最广泛的平台之一是由MetaQuotes软件公司开发的MetaTrader4,专用于外汇市场交易。该平台内置了完整的开发环境(IDE)MetaEditor,可编写被称为MetaQuotes语言(简称MQL4)的程序脚本。语言语法源于C语言,相比前代MQL II在逻辑流方面无明显改动。新的自动交易框架无疑是前代产品的进化版。两种语言均具备良好的实用性,既拥有最佳的内建交易设置,能完整执行基本交易功能,也支持自定义功能以处理非标准行为。

从编程角度看,MQL4比之前版本更为实用;它更偏向专业编程,而MQL II更适合金融专家构建他们自有的交易系统(在MetaQuotes术语中也称为交易顾问)。

2.2. Omega Research-基础解决方案

在当今世界,绝大多数公司使用由TradeStation Securities, Inc.开发的Omega Research平台。该平台已在全球市场得到验证,被专家视为最佳的技术分析系统之一。其IDE被称为OmegaResearch PowerEditor,用于创建EasyLanguage(简称EL)控制系统。

此语言的主要优点是下单和平仓命令简单直观。如果以自然语言向经纪商下单,可编写与之对应的程序指令。在MQL4中,开仓下单需要设定12个不同参数;而在EasyLanguage中,同一指令只需几个单词即可表达。处理技术指标也同样简便。但不应误以为开发者为了简化而牺牲了实用性,限制特殊功能,从而剥夺了用户实施自定义程序的机会。

TradeStation并未创建大范围的内嵌交易和实用工具,而是将基础设置作为核心。平台的高级功能可通过内部或第三方扩展实现,TradeStation仅将这些脚本列为用户自定义功能。最终,其功能丰富度并不逊于MetaQuotes产品。

PowerEditor提供了内嵌词典,方便用户搜索和获取帮助。另一个值得提及的便捷工具是策略构建器(strategy builder),它允许用户轻松创建交易系统的基本运算法则,并进行修改和调整。

EasyLanguage是股票市场自动交易系统领域的开创者,也是MQL II的开发基础。对于程序员而言,EasyLanguage是不错的选择,但对金融专家分析市场仍然更为有效。

2.3. ProTrader-基础解决方案

专业金融专家可选择ProTrader2或ProTraderFX平台作为交易工具,具体取决于金融市场类型(股票或外汇)。两款平台均由PFSoft LLC开发和支持。当描述ProTrader Language(PTL)的开发特色时,IDE提供者称为PTL Builder,它还支持在MQLII、MQL4和EasyLanguage中创建脚本。为此,程序文本会被翻译成独立语言编码。因此,脚本运行时的语言与编写时的语言无关。此技术不仅支持创建新脚本,还可用来免费收集许多经验丰富的交易者使用的脚本。

植入新脚本语言的主要思想是确保脚本运行的稳定性和可预测性最大化。PTL语言旨在降低用户脚本文本中的错误,在测试或公布前消除潜在危险脚本。

无论选择哪种程序语言,平台在运行脚本时会使用认证的托管代码。这一源自微软的技术能在脚本运行前预防错误,从而避免系统因临界错误或其他程序的干扰而失败或执行非预期行为。

PTL Builder IDE凭借对多种编程语言的支持以及测试器(tester)和调试器(debugger)等工具,成为金融专家和程序员的得力助手。

2.4.方案对比

上述IDE各具特色。下表简要对比了每种方案。

3. 创建自动交易系统的方法与使用建议

无需多言,选择信息和交易平台应慎之又慎。对于打算使用自动交易系统的读者,以下建议基于个人经验,供参考。

3.1. 选择工作环境

首先,明确自动交易系统需执行的任务类型,通常包括:

真实交易:在所选品种中开仓和平仓。

二级支持功能:如下保护订单、创建和发送通知报告。

运用自有算法,结合不同分析工具进行市场分析。

在参考网络评论、咨询经纪商后,对提供的产品形成初步印象。强烈建议不仅做粗略查看,还应花一两天时间测试系统,好在多数大型公司都允许注册模拟账户。重点关注IDE的实用性和附加工具,以及系统创建的稳定性和安全性。

3.2. 创建控制系统

若计划创建自有脚本,请投入时间研究程序语言和IDE文档。当然,专业级的自动交易系统脚本应由编程和金融领域的专家编写。若打算借鉴经典程序,请记住它们大多经过验证,适合作为测试自动交易系统或自主开发的起点,但作为独立、可立即使用的方案,其用途有限。

如果决定采用第三方开发者的程序,应明白优质方案需付出成本。一种创新策略的价格通常在$300至$500之间,而采用先进技术、精度高且回报率高的策略,特别是自动交易大赛获奖作品,其价格可能超过$1,000。

3.3. 测试脚本

使用自动交易系统时,始终进行脚本测试。建议流程如下:

1.在脚本测试器中(若IDE提供此功能)多次测试脚本,变化图表周期、交易品种和程序设置,尽量模拟接近真实市场的环境。

2. 在模拟账户中测试(若可用)。此阶段让系统运行足够长的时间至关重要(取决于图表周期)。即使出现大幅收益或亏损,也不应中途停止。脚本效能只有在持续运行后才能真正评估。

3. 在真实环境中运行脚本。此时,避免干预脚本(例如手动平掉脚本建仓或修改设置),否则可能破坏程序的内部逻辑。

3.4. 选择脚本时如何避免被误导

切记,不存在绝对完美的顾问。因此,不要轻信天花乱坠的宣传。如果真有能带来惊人收益的系统,谁会轻易出售呢?唯一的建议是:进行全面而精确的测试,才能对脚本有客观评价。

通常,脚本销售方以他们自身的测试结果来描述产品。但在大多数情况下,这些结果带有明显偏差。请记住,测试应在不同周期下反复执行,否则可能仅调整到某个周期面板,以显示极高收益。根据NFL定律,公平而言,任何脚本都无法在所有工具上表现最佳。

一些专业程序员采用复杂数学工具,赋予程序人工神经网络、预测或演化算法,但这并不稀奇。我不建议对此类系统抱有过高期望——复杂的预测算法对错误和参数设置非常敏感,而简单设计虽难以提升信号捕捉能力,却可能仅成为提高脚本价格的噱头。

4. 总结

本文中,我并未深入讨论创建交易顾问的具体编程规则,也未详细说明某种语言编写的脚本细节,这些话题已有大量专著和文章。EBC Financial Group我的出发点在于分享我认为重要、却在现有资料中常被忽视的观点。

那么,自动交易系统是盟友还是对手?当谨慎使用、不仓促决策时,自动交易系统能提升金融专家的工作效率,并带来一定收益。但若使用不当、未经充分测试或频繁更改设置,则可能导致亏损。

请牢记,自动交易系统并非万能工具,仍需投入管理。它能解决现有问题,但不应制造新的麻烦。

5. 参考

1. MetaQuotes — MetaTrader、MQL2和MQL4的开发者

2. TradeStation — TradeStation和EasyLanguage的开发者

3. PFSoft — ProTraderFX、ProTrader2和ProTraderLanguage的开发者