Summary
您可以在 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,且账户具备完全相同的特征,那么两者的交易表现理应不会出现显著差异。不过,其中也有一些需要注意的事项。
例外情况在于,模拟环境与实盘环境在流动性状况及订单执行动态方面存在差异。在模拟环境中,您实际上拥有无限的流动性。这里不存在订单簿(order book)的概念,无论订单规模大小,统一采用“盘口最优价”(top-of-book price)作为成交价。无论是交易 0.1 手、1 手、10 手还是 100 手任何品种,订单发送时的可用价格即为最终成交价。这意味着您的订单不会产生 VWAP(成交量加权平均价)滑点,而这在实盘环境中是不可避免的。
在实盘交易环境中,订单簿每一价位的流动性都是有限的,因此订单的成交价格将取决于订单规模。正因如此,如果“最佳报价”(top-of-book price)处的流动性不足以完全满足您的订单需求,那么在模拟账户中执行的同一笔 10 手订单,其最终结果可能与实盘环境中的结果大相径庭。您的入场和出场价格可能会比模拟环境中的更差——在模拟环境中,订单通常能以当时的最优价格成交。与模拟账户交易相比,这种价格差异将直接导致实盘账户交易的利润减少或亏损增加。
实际交易环境与模拟环境的另一个不同之处在于执行机制。在实盘交易中,订单会被发送至服务器,与相应流动性提供商的报价进行撮合,并按时间顺序依次处理。尽管我们的平均执行速度约为 30 毫秒*(这已属于较快水平),但从订单发出(对于挂单而言,则是指从服务器发出)到服务器接收并执行期间,价格仍可能发生变动。这意味着在实盘交易中,由于延迟的存在,订单可能会出现滑点。这是在瞬息万变的在线市场中进行交易时不可避免的客观事实。
然而,在模拟环境中,订单会立即执行,因此不存在争抢在桥接端(bridge)成交的情况。正因如此,模拟环境中的 EA 订单不会受到与执行或延迟相关的滑点影响。
最后需要注意的是,模拟平台与实盘平台在接收报价的方式上可能存在细微差异,例如报价(tick)的频率和接收时间。请记住,模拟环境仅仅是一个有限的模拟交易环境,因此其基础设施的复杂程度不及实盘环境。