保持敬畏之心
交易是一场持久战

MQL4编程

开篇语:MT4 EA策略开发 - 写在教学之前-图道交易
置顶

开篇语:MT4 EA策略开发 - 写在教学之前

近些年,外汇市场无疑成为了最吸引普通投资者的领域之一。全天24小时交易、灵活的杠杆、较低的入场门槛,这些特性给了我们普通人一个进入国际金融市场的机会。 而谈到外汇交易,几乎所有人都绕不开MetaTrader4(也就是我们常说的MT4)。它之...

MQL4(65):马丁格尔策略浅析-图道交易

MQL4(65):马丁格尔策略浅析

MQL4 马丁格尔策略怎么写才不失控?本文拆解马丁格尔的致命风险、反马丁思路,以及连续盈亏统计与手数倍增模块的实现方法,帮助你在 EA 开发中建立更稳健的仓位控制框架。

赞(0)学长学长阅读(651)去评论
MQL4(53):终端全局变量-图道交易

MQL4(53):终端全局变量

学习如何在 MQL4 中使用终端全局变量实现状态持久化,掌握 GlobalVariableSet()、GlobalVariableGet() 与 GlobalVariableDeleteAll() 的用法,避免 EA 重启后丢失交易计数和关键状态。

赞(0)学长学长阅读(571)去评论
MQL4(43):实现“每K线开盘时执行”的逻辑-图道交易

MQL4(43):实现“每K线开盘时执行”的逻辑

如何让你的炒外汇的EA不那么“激动”,不是一有风吹草动(每个微小的价格变动)就去分析和做决定,而是更有“耐心”,只在每根新的K线蜡烛图(比如每小时一根、每4小时一根或每天一根)刚开始的时候才去思考和行动一次。 想象一下: 默认情况(每个ti...

赞(0)学长学长阅读(619)去评论
MQL4(42):创建简单的交易定时器-图道交易

MQL4(42):创建简单的交易定时器

日期时间变量实际上是基于从1970年1月1日开始计算的秒数。比如,2009年6月15日凌晨0点会被记录为1245024000。这种日期时间格式的好处是,它使过去和将来时间的比较及数学运算变得相当简便。 例如,若想判断一个日期是在另一个日期之...

赞(0)学长学长阅读(651)去评论
MQL4(41):比较K线的值来判断金叉/死叉-图道交易

MQL4(41):比较K线的值来判断金叉/死叉

在构建交易策略时,我们往往不仅需要知道指标当前的值,还需要了解它相较于过去是如何变化的。例如,判断移动平均线 (MA) 是正在上升还是下降,或者一个震荡指标(如随机指标)是否刚刚穿越了某个关键水平(如超买/超卖线)。这都需要比较当前或最近完...

赞(0)学长学长阅读(613)去评论
MQL4(40):if...else操作符与运算符-图道交易

MQL4(40):if...else操作符与运算符

在 MQL4编程中,我们使用条件运算符 if 和 else 来构建和评估交易系统的入场、出场及其他管理逻辑。您在本书的前面部分可能已经见过它们的应用,但为了照顾初学编程的读者,这里我们快速回顾一下它们的基本用法。 1. if 运算符 if ...

赞(0)学长学长阅读(627)去评论
MQL4(39):MQL4中常用的指标常量-图道交易

MQL4(39):MQL4中常用的指标常量

在 MQL4编程中,调用技术指标函数(如 iMA(), iStochastic(), iCustom() 等)以及某些价格数据函数时,经常需要传入一些特定类型的参数,例如时间周期、应用价格类型、移动平均线的计算方式等。MQL 为这些常用的参...

赞(0)学长学长阅读(641)去评论
MQL4(38):调用自定义指标 - iCustom()-图道交易

MQL4(38):调用自定义指标 - iCustom()

网络上有成百上千可用于 MetaTrader 平台的自定义指标。如果您决定在您的EA中使用这类非平台内置的自定义指标,那么就需要进行一些额外的工作。 获取源代码的重要性:在使用自定义指标时,如果能拥有其 .mq4 源代码文件无疑是最佳情况。...

赞(0)学长学长阅读(652)去评论
MQL4(37):利用技术指标创建交易信号-图道交易

MQL4(37):利用技术指标创建交易信号

技术指标 绝大多数交易系统都会利用各种技术指标来辅助判断市场状况和产生交易信号,MetaTrader 平台内置了超过 20 种常见的技术指标,例如: 移动平均线 (MA) 平滑异同移动平均线 (MACD) 相对强弱指数 (RSI) 随机震荡...

赞(0)学长学长阅读(663)去评论
MQL4(36):在EA中获取K线/指标数据-图道交易

MQL4(36):在EA中获取K线/指标数据

在过去的几章中,我们致力于创建一系列用于执行订单处理机制的函数。这些函数是几乎所有EA都通用的基础模块,设计它们的初衷是希望它们能在各种交易场景中被复用,并尽可能保持灵活性。这样做的目的是让我们能够从繁琐的订单操作细节中解放出来,从而更专注...

赞(1)学长学长阅读(640)去评论
MQL4(35):进一步升级EA程序-图道交易

MQL4(35):进一步升级EA程序

现在我们来修改均线交叉EA的 OnTick() 函数,以便应用我们新创建的那些功能。首先,在建立新的买单前,我们会检查当前是否已经有买单持仓。我们不再是去平掉单个卖单,而是直接调用一个函数来平掉所有卖单。这种方法不需要用到订单号。 // 买...

赞(0)学长学长阅读(604)去评论
MQL4(34):风险管理 - 盈亏平衡止损-图道交易

MQL4(34):风险管理 - 盈亏平衡止损

盈亏平衡止损 除了追踪止损外,另一种常用的订单风险管理技术是盈亏平衡止损 。它的核心逻辑相对简单:当一笔订单的浮动盈利达到或超过预先设定的一个最小盈利点数后,就自动将该订单的止损位移动到其开仓价格。 这样做的目的是,一旦交易向有利方向发展并...

赞(0)学长学长阅读(611)去评论
MQL4(33):风险管理 - 追踪止损的实现-图道交易

MQL4(33):风险管理 - 追踪止损的实现

追踪止损的实现 追踪止损是一种动态调整止损位的风险管理技术。其核心思想是:当订单产生浮动盈利时,自动将止损位朝着盈利方向移动,以“锁定”已获得的利润,并在价格反向回调时保护这些利润。 工作原理: 设置距离: 首先设定一个追踪距离,通常以pi...

赞(0)学长学长阅读(620)去评论
MQL4(32):订单管理和统计-图道交易

MQL4(32):订单管理和统计

在开发 EA 时,经常需要知道当前由本EA管理的、符合特定条件的订单数量。例如,统计总共有多少订单、有多少买单、多少卖单、多少挂单等。这对于执行某些策略逻辑(如限制最大持仓数、判断是否已有同向订单)或进行信息展示都非常有用。我们可以创建一系...

赞(0)学长学长阅读(652)去评论
MQL4(31):通过for循环遍历订单-图道交易

MQL4(31):通过for循环遍历订单

在前面已经接触过 OrderSelect() 函数。本节我们将探讨如何结合使用 OrderSelect() 函数与 MQL 中的循环运算符(for 循环和 while 循环),来实现对订单池(即当前所有持仓订单和挂单的集合)的遍历操作,以便...

赞(0)学长学长阅读(607)去评论
​MQL4(26):封装 SL/TP 计算函数-图道交易

​MQL4(26):封装 SL/TP 计算函数

封装SL/TP价格计算函数 为了将 SL/TP 的计算逻辑与验证逻辑分离,并提高代码复用性,我们可以创建专门的函数来根据开仓价和用户指定的点数 (pips) 计算出目标的 SL 或 TP 价格。 函数设计要点: 输入: 函数接收交易品种 (...

赞(0)学长学长阅读(624)去评论
​MQL4(25):封装平仓/删除挂单函数-图道交易

​MQL4(25):封装平仓/删除挂单函数

封装平仓函数 最后,我们将订单平仓的逻辑也封装成一个可重用的函数。这个函数将专注于关闭单个指定的市价订单。当您需要精确地关闭某一个特定的订单时(例如,基于订单号)这时下面这个函数就很有用,同时加入了必要的检查和错误处理。 关闭指定买单 (C...

赞(0)学长学长阅读(564)去评论
​MQL4(24):封装市价单/挂单函数-图道交易

​MQL4(24):封装市价单/挂单函数

封装市价买单函数 (OpenBuyOrder()) 现在我们来创建一个用于开立市价买单的可重用函数。在设计这个函数时,我们与之前直接在 OnTick() 函数中编写的代码有所不同,主要出于以下考虑: 这个下单函数只负责发送开仓指令。它不包含...

赞(0)学长学长阅读(620)去评论
​MQL4(23):封装手数计算与验证函数-图道交易

​MQL4(23):封装手数计算与验证函数

在前面的章节中,我们逐步构建了包含下单、错误处理、价格验证、手数计算等功能的代码逻辑。现在,我们将学习如何将这些代码块封装成可重用的函数。这样做的好处是: 将复杂的细节(如手数计算、价格验证等)隐藏在函数内部,使得 OnTick() 等核心...

赞(0)学长学长阅读(527)去评论
​MQL4(22):逐渐完善 - 为EA结构添砖加瓦-图道交易

​MQL4(22):逐渐完善 - 为EA结构添砖加瓦

现在我们将把本章学习到的所有高级功能——包括订单修改、交易上下文检查、预定义变量刷新以及动态手数计算与验证等等整合到之前那个简单的移动平均线交叉 EA 中。 修订后 EA 的结构与代码片段: 文件头部与全局设定: #property cop...

赞(0)学长学长阅读(588)去评论
​MQL4(21):EA交易环境与并发控制-图道交易

​MQL4(21):EA交易环境与并发控制

MetaTrader平台为所有运行在上面的EA提供了一个单一的交易执行线程。这意味着,在同一时刻,只有一个EA能够成功地执行交易相关的操作(如下单、平仓、修改订单等),无论您在终端中同时运行了多少个 EA 实例。这种机制是为了保证订单处理的...

赞(0)学长学长阅读(638)去评论
​MQL4(20):资金管理与动态手数计算-图道交易

​MQL4(20):资金管理与动态手数计算

在构建交易策略时,除了精心设计入场、出场、止损和止盈规则外,确定每次交易使用多大的手数是风险管理中至关重要的一环。最简单直接的方法是设置一个固定的手数(例如,通过 extern 变量让用户输入),并在所有交易中都使用这个固定值。然而,这种方...

赞(0)学长学长阅读(634)去评论
​MQL4(19):验证止损、止盈和挂单价格-图道交易

​MQL4(19):验证止损、止盈和挂单价格

在计算出目标止损价和止盈价之后,我们必须验证它们是否满足经纪商的最小距离要求(即 MODE_STOPLEVEL 对应的价格距离)。需要注意的是,对市价单和挂单的止损验证,其考虑因素略有不同。 止盈验证规则: 买单止盈价必须 >= As...

赞(0)学长学长阅读(597)去评论

登录

找回密码

注册