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

学长的文章

你好,我是Mr. Chen,朋友们也叫我学长。 我是一名全职交易员,我的微信:u31u31。
MQL4(52):订单管理 - 处理多个订单-图道交易

MQL4(52):订单管理 - 处理多个订单

在某些交易策略中,您可能需要针对同一个入场信号(或持仓)下达多个订单,这些订单可以拥有各自不同的止损、止盈水平以及手数大小。实现这一需求有多种途径,最直接的一种方法是,发出的每一笔订单都单独编写一条 OrderSend() 指令。这种方式的...

MQL4(51):交易前检查 - 保证金和点差-图道交易

MQL4(51):交易前检查 - 保证金和点差

一个成功的交易策略,不仅仅在于何时入场,更在于何时不该入场。专业的交易员会主动规避那些高风险、低胜率的“垃圾时间”。今天我们就来为我们的EA安装上两套至关重要的“风险过滤器”,教会它这项宝贵的交易纪律。 我们将在下单前的最后一步,执行这套“...

MQL4(50):利用订单注释作为辅助标识符-图道交易

MQL4(50):利用订单注释作为辅助标识符

在此前的课程中,我们一直使用“魔术号”作为EA的唯一标识,来区分EA自己下的订单和手动订单。但如果你的EA变得更复杂,需要在同一个图表上,同时运行多个不同的、独立的子策略,那该怎么办? 比如,你的EA中既有一个长线的趋势跟踪策略,又有一个短...

MQL4(49):错误处理 - 订单重试机制-图道交易

MQL4(49):错误处理 - 订单重试机制

我们始终强调在尝试发出交易指令前,预先检验订单的各项参数。这样做是为了尽可能避免因参数设置错误或价格不当而引发的常见错误提示。然而,即便如此,实际交易中仍可能遭遇重新报价、交易环境繁忙或服务器通讯故障等问题。这些问题并非总能完全规避,但当它...

MQL4(46):EA演示版或账户使用限制-图道交易

MQL4(46):EA演示版或账户使用限制

当你投入了大量心血,终于开发出一款能稳定盈利的EA时,你可能会考虑将它商业化,或者至少,希望能安全地分享给朋友测试。这时,我们就必须为EA加上一把“锁”,以确保它不会被随意复制和滥用。 今天,我们就来学习如何为我们的EA打造一套简单而有效的...

MQL4(45):检查EA运行所需的配置选项-图道交易

MQL4(45):检查EA运行所需的配置选项

想象一下,你精心聘请了一位顶级的交易员(你的EA)来管理账户。你把他带到了交易大厅,却忘记给他办理进入交易室的“门禁卡”。他空有一身本领,却什么也做不了。 在MetaTrader平台中,“允许实时交易”、“允许导入DLL”这些选项,就是我们...

MQL4(44):转义字符和图表注释-图道交易

MQL4(44):转义字符和图表注释

从本章开始,我们将学习一些在开发EA时可能会非常实用的一些附加功能和技巧。 转义字符 在MQL4的字符串常量(即用双引号括起来的文本)中,如果您希望包含某些特殊字符,如双引号本身、单引号或反斜杠符号,您需要在这些特殊字符前加上一个反斜杠 (...

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

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

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

MQL4(41):比较K线的值来判断金叉/死叉-图道交易

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

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

MQL4(40):if...else操作符与运算符-图道交易

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

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

MQL4(38):调用自定义指标 - iCustom()-图道交易

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

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

MQL4(36):在EA中获取K线/指标数据-图道交易

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

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

MQL4(35):进一步升级EA程序-图道交易

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

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

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

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

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

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

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

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

MQL4(32):订单管理和统计-图道交易

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

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

​MQL4(25):封装平仓/删除挂单函数-图道交易

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

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

​MQL4(23):封装手数计算与验证函数-图道交易

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

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

DXY:美指大周期来到上升通道下沿-图道交易

DXY:美指大周期来到上升通道下沿

这是个月线级的上升通道,早期在通道上沿时发过一个观点,当时走成一个深蟹模式 经过漫长的一个N字形下跌,现在来到了通道下沿,美指可能会在下沿这条线进行筑底 与美指对应的EURUSD月线走势同样也来到了压力线附近,并且有明显阻力 更多盘中分析,...

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

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

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

​MQL4(20):资金管理与动态手数计算-图道交易

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

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

​MQL4(15):MarketInfo() - 检索信息函数-图道交易

​MQL4(15):MarketInfo() - 检索信息函数

到目前为止,我们的EA已经学会了如何用一个固定的点数去下单。但这还远远不够。一个专业的EA,应该能适应不同的市场环境,能根据市场的结构来动态调整自己的行为。 要实现这一点,我们的EA首先需要拥有一双能观察市场的“眼睛”,以及能审视自身的“意...

​MQL4(14):计算止损与止盈价格-图道交易

​MQL4(14):计算止损与止盈价格

我们已经学会了如何下单,但现在面临一个更精细的问题:如何精确地设置我们的止损(SL)和止盈(TP)? 最常见的方式,就是基于开仓价设置一个固定的“点数(Pips)”距离。比如,一个50 Pips的止损。听起来很简单,但在编程世界里,这背后藏...

​MQL4(10):局部变量与全局变量-图道交易

​MQL4(10):局部变量与全局变量

在我们的EA程序这栋“房子”里,每一份需要储存的数据,都需要一个“家”(变量)。现在,我们需要做出一个最基础也最重要的建筑决策:是给这份数据一间私密的、用完就走的“客房”(局部变量),还是把它放在一个谁都能看到的“公共大厅”(全局变量)? ...

​MQL4(9):外部变量详解-图道交易

​MQL4(9):外部变量详解

想象一下,你精心打造了一款均线交易EA,想分享给朋友使用。你用的是20周期均线,而他想试试50周期。难道你每次都要为他修改代码、重新编译、再发一个新文件吗? 当然不用。这正是**外部变量(External Variables)**要解决的问...

​MQL4(8):什么是预处理指令-图道交易

​MQL4(8):什么是预处理指令

在我们写的MQL4代码被正式“烹饪”(编译)成可执行的EA之前,我们可以先给“厨师”(编译器)递上一份“备餐说明书”,这份说明书,就是预处理指令。 它们都以井号#开头,不是我们之前学的那些交易逻辑语句。它们是编译器在处理我们代码之前,最先执...

​MQL4(7):什么是变量作用域-图道交易

​MQL4(7):什么是变量作用域

我们已经知道如何使用变量这个“小抽屉”来存东西了,但现在有一个新问题:这个抽屉应该放在哪里?是放在某个房间里,还是放在客厅中央? 放在不同的地方,决定了谁能用它、谁看不见它。这就是变量的作用域,也就是变量的“有效范围”或“活动区域”。 为了...

登录

找回密码

注册