
MT4 EA策略开发 - 写在教学之前
近年来,外汇市场已快速崛起为最热门的交易领域之一。凭借其 24小时不间断交易、高杠杆比例 和 低保证金门槛 等特点,吸引了成千上万的普通投资者投身其中。 MetaTrader 4(简称 MT4)作为外汇交易的主流平台,由 Me...
近年来,外汇市场已快速崛起为最热门的交易领域之一。凭借其 24小时不间断交易、高杠杆比例 和 低保证金门槛 等特点,吸引了成千上万的普通投资者投身其中。 MetaTrader 4(简称 MT4)作为外汇交易的主流平台,由 Me...
本节展示的EA源码相比于上一版,增加了更多高级功能:手数计算的改进、错误处理机制、交易环境繁忙检测、止损止盈的改进、订单管理的改进(分两步开单,先开仓再设置止损止盈,然后验证并调整止损止盈价格,确保符合经纪商要求)、手数规范化处理。 这些改...
本节展示的是一款采用挂单(止损单)方式进行交易的基础版EA。 和第55篇里的基础版源码的区别:使用挂单来开仓。 MQL4(55):基础版EA交易程序源码 #property copyright "tudaojiaoyi" // ===== ...
MQL4系列教学结束了。 从这篇文章开始,我们温习下整个系列教学里EA开发的过程。从最简单的基础版EA源码到进阶版,来感受一下我是如何给一个EA添砖加瓦、完善其功能的。这款EA是否盈利不重要,它的作用是来给大家演示一个EA的成型过程。 #p...
在交易过程中,有时需要查询某个持仓订单的当前浮动盈亏,或者一个已平仓订单的最终盈亏。通常有两种方式来获取这些盈利信息。若要得到以账户存款货币(例如美元)计价的盈利,可以使用 OrderProfit() 函数。但在此之前,必须先通过 Orde...
在之前的讨论中,我们提及的“全局变量”通常指的是在EA程序代码内部具有全局作用域的变量。然而,MetaTrader平台自身提供了一套函数,用于设置一种特殊类型的变量——“终端级别全局变量”。这些变量一旦被设定,就可以被当前在该终端上运行的所...
在某些交易策略中,您可能需要针对同一个入场信号(或持仓)下达多个订单,这些订单可以拥有各自不同的止损、止盈水平以及手数大小。实现这一需求有多种途径,最直接的一种方法是,发出的每一笔订单都单独编写一条 OrderSend() 指令。这种方式的...
MetaTrader 平台内置了相关函数,允许您在提交订单之前,检查当前的可用保证金或账户的强制平仓水平。强制平仓水平通常指可用保证金低于某一预设百分比或特定金额时,您将无法再建立新的头寸。不过,值得注意的是,即便您不手动执行此项检查,当保...
在此前的讨论中,我们一直采用“魔术号”作为订单的唯一标识符,用以区分某个特定EA所发出的订单。然而,如果您的EA需要同时管理多个订单,并且您希望对这些订单进行差异化处理(例如,应用不同的管理策略),那么订单注释可以作为一种有效的辅助标识手段...
我们始终强调在尝试发出交易指令前,预先检验订单的各项参数。这样做是为了尽可能避免因参数设置错误或价格不当而引发的常见错误提示。然而,即便如此,实际交易中仍可能遭遇重新报价、交易环境繁忙或服务器通讯故障等问题。这些问题并非总能完全规避,但当它...