摘要

您可以在 MT4、MT5 和 cTrader 上使用 EA。MT4 使用的编程语言称为 MQL4,其基础为 C++;而 MT5 使用的编程语言为 MQL5,它是专门为交易开发、更加专业化的 C++ 版本。

一般而言,MQL4 被认为更适合编程初学者和刚接触交易的人士。cTrader 则使用 C# 编程语言。

在跨平台兼容性方面,MT4 或 MT5 的 EA 不能在 cTrader 上使用,反之亦然。MT5 EA 可以在 MT4 上使用,但 MT4 EA 不能直接在 MT5 上运行。若要使 MT4 EA 在 MT5 上运行,则需要将其从 MQL4 转换为 MQL5 语言。

我的 EA 在真实账户和模拟账户中的表现会完全一样吗?

EA 会根据众多条件和参数来执行开仓、平仓或修改交易。这些条件可能包括价格走势、账户指标(如回撤和净值)变化,也可能包含更复杂的指标阈值、趋势分析以及其他统计参考因素。这意味着,如果在模拟账户和真实账户中使用完全相同的 EA 设置和参数,并且账户条件完全一致,那么理论上其表现不应出现明显差异。但仍然存在一些需要注意的情况。

例外情况在于模拟环境与真实环境在流动性和订单执行机制方面存在差异。在模拟环境中,您实际上拥有无限流动性。不存在订单簿深度问题,最优报价适用于所有订单规模。无论您交易的是 0.1 手、1 手、10 手还是 100 手,订单发送时的价格都会被直接用于成交。因此,您不会遭遇 VWAP(成交量加权平均价格)滑点,而真实交易环境则并非如此。

在真实交易环境中,订单簿每个价格层级的流动性都是有限的,因此订单最终成交价格会受到订单规模的影响。同样一笔 10 手订单,在模拟账户中的结果可能与真实账户存在显著差异,因为真实市场未必有足够的流动性以最佳报价完全成交您的订单。您的入场价格和出场价格可能会比模拟环境更差,这将直接导致真实账户中的盈利减少或亏损增加。

两种环境之间的另一项差异在于订单执行机制。在真实环境中,订单会发送至服务器,并根据流动性提供商的报价进行撮合,每笔订单均按时间顺序处理。虽然我们的平均执行速度约为 30 毫秒*,已经属于较快水平,但从订单发出(无论来自交易平台还是挂单服务器)到最终被服务器接收并成交的过程中,价格仍有可能发生变化。因此,在真实环境中,订单仍可能因网络延迟而产生执行滑点。这是不断变化的在线市场交易过程中不可避免的现实情况。

然而,在模拟环境中,订单会立即执行,因此不存在与其他订单争夺流动性的情况。因此,模拟环境中的 EA 订单不会受到执行滑点或网络延迟滑点的影响。

最后需要注意的是,模拟平台和真实平台在接收报价的方式上可能存在细微差异,例如报价 Tick 的更新频率和接收时间。请记住,模拟环境本质上只是一个有限的模拟交易环境,因此其基础设施并不像真实交易环境那样复杂。