ATC冠军访谈:无指标盈利真相
从VSA到MQL5实战,解密自动化交易思路
受访者背景与交易经历
Egidijus Bockus(网名Egidijus)来自立陶宛,拥有经济学学位,在企业管理系统的安装、编程与咨询领域有15年经验,曾为制造型企业开发并适配财务模块。他接触外汇市场四年,期间审查过超过1000种各类外汇指标与机器人,最终提炼出一套有利可图的自动化交易原则,并开发了名为ForexTraderisPro的多策略程序。在2012年自动化交易锦标赛(ATC 2012)中,他的EA从第三周起稳居第三,账户权益超过32000美元。这一成绩让他关于“指标未必必要”的观点具备了说服力。
他的交易启蒙来自大学时期的股票与期权课程,曾通过立陶宛某银行提供的平台交易本国股票。约2008年他转向流动性更高的外汇市场,选择MetaTrader 4并熟练掌握了MQL4。MT5发布初期缺少策略测试器,他为了用新语言开发机器人还专门学习了Java。这段跨语言经历,为他后来在锦标赛中快速应变埋下伏笔。
为何首次参加锦标赛与参赛动机
这是Egidijus第一次参加ATC。他透露,上一年得知比赛时已经太迟,因此2012年决定不再错过。ATC作为MetaTrader社区最高规格的算法交易赛事,提供统一环境、初始虚拟资金与实时排名,是验证EA鲁棒性的公开试验场。对于独立开发者,参赛不仅是曝光机会,更是压力测试:排名靠前的策略往往会被社区与潜在客户关注。
需要注意的是,锦标赛使用固定起始资金与统一品种(当时主要为EURUSD等),不允许人工干预,这迫使参与者把全部逻辑写成可执行代码。Egidijus认为,这种环境能快速暴露策略在极端行情下的弱点。
EA设计哲学:不用指标也能赚钱
访谈中最具冲击力的观点是:“我研究过很多指标,然后意识到它们在外汇赚钱上并非必要。”他的参赛EA并未使用传统技术指标,而是基于VSA(Volume Spread Analysis,量价散布分析)思路,但仅采用K线的开盘价、收盘价与成交量(tick volume)。他认为,价格行为本身已包含足够信息,叠加过多指标只会增加拟合噪声。
VSA原本为股票市场设计,核心是通过价格扩散(spread)与成交量关系判断主力意图。外汇市场没有真实的交易所成交量,只能使用平台 tick volume(报价笔数)。Egidijus指出,在较高时间框架如H1上,tick volume与真实成交量存在一定相关性,足以支撑策略。他的EA在H1运行,优化表现稳定,未出现因切换平台导致成交量结构断裂的问题。
- 仅使用 Open、Close 与 Volume,逻辑透明
- 趋势跟随为主,依赖长而可靠的趋势
- 测试仅需31秒,一次通过,因结构极简
- 实盘会用2-3个指标辅助,参赛版刻意纯化
从Java到MQL5的迁移实战
Egidijus熟悉MQL4,原以为用一天就能把Java写的程序重写成MQL5。但他在钻研MQL5两小时后发现,时间来不及,于是改用另一套简单趋势策略提交参赛。这反映出MQL5与MQL4在架构上的本质差异:MQL5采用事件驱动模型、支持多币种、持仓以订单与持仓分离的方式管理,且原生集成策略测试器与云优化。
对于从MQL4迁移的开发者,关键差异包括:OnTick替代start函数;使用CTrade类下达指令;历史数据通过CopyRates系列函数获取;持仓通过PositionSelect而非OrderSend后的全局变量追踪。如果原Java逻辑依赖复杂面向对象结构,直接平移并不现实,应先抽象核心信号再重写。
// 简化的MQL5趋势跟随示例(基于Open/Close与Volume)
#include <Trade/Trade.mqh>
CTrade trade;
input double lotSize = 0.1;
void OnTick()
{
MqlRates rates[2];
if(CopyRates(_Symbol, PERIOD_H1, 0, 2, rates) < 2) return;
double open0 = rates[0].open, close0 = rates[0].close;
double open1 = rates[1].open, close1 = rates[1].close;
if(close1 > open1 && close0 > open0 && PositionsTotal() == 0)
trade.Buy(lotSize, _Symbol);
else if(close1 < open1 && close0 < open0 && PositionsTotal() > 0)
trade.PositionClose(_Symbol);
}
锦标赛专属风控与资金管理
他的参赛EA相当激进:单次入场手数达7-8手,且当时全部为多头,因为系统尚未发出卖出信号。他坦承,锦标赛中采用了最大风险模式,否则难以登顶。这与实盘逻辑完全不同——实盘追求回撤可控,而竞赛排名按绝对收益,激励参与者放大暴露。
这种分化提醒中文交易者:看到排行榜EA切勿直接用于实盘。竞赛参数往往过拟合虚拟环境,且忽略滑点、断网与流动性枯竭。正规产品化前,必须在实盘模拟与多品种压力测试中验证。
对MQL5市场与信号服务的看法
访谈发生时,MQL5 Market刚上线不久,允许参与者售卖EA。Egidijus表示关注到该服务,认为方便且有吸引力,但自己的主力程序尚不稳定,不敢上架。他计划若改进为可靠算法再出售,否则就在个人网站免费发布。他也体验了Signals信号服务,认为复制交易对普通交易者非常便利。
从今天视角看,Market与Signals已成为MT5生态核心。开发者上架需通过审核、设置激活次数与租金;信号提供者需连接实盘账户并公开历史。Egidijus当年的犹豫,恰恰说明负责任的开发者重视策略稳健性甚于短期变现。
- Market适合已验证的成熟EA,需提供描述与截图
- Signals适合有实盘业绩的交易者,按月订阅
- 免费发布可作为社区信誉积累手段
- 产品化前必须完成多周期压力测试
给中文交易者与开发者的建议
Egidijus在结尾感谢赛事组织方,并祝参与者好运。结合全文,可提炼出对中文用户的实操指引:第一,广泛试用指标后学会做减法,聚焦价格与量;第二,掌握MQL5事件模型,不要假设它只是MQL4升级版;第三,明确竞赛与实盘的目标差异,不盲目跟单排名;第四,利用Market与Signals前,先以免费或模拟方式建立信用。
对于想参加ATC类赛事的用户,建议提前三个月准备:用云测试器做多品种优化,写好日志模块,分离竞赛参数与实盘参数。对于只想使用现成EA的用户,应优先筛选有长期信号记录、回撤透明的产品,而非锦标赛新星。