MQL5 编程示例的文章

icon

访问海量文章以及代码实例集合,演示如何使用 MQL5 语言 为 MetaTrader 平台创建指标和交易机器人。源代码已附加在文章之中,因此您可以在 MetaEditor 中打开并运行它们,看看应用程序如何工作。

这些文章对那些刚开始探索自动交易的人,以及具有编程经验的职业交易员都极其有用。它们的特色不仅是例子,而且也蕴含着新的想法。

添加一个新的文章
最近 | 最佳
preview
种群优化算法:模拟退火(SA)。第 1 部分

种群优化算法:模拟退火(SA)。第 1 部分

模拟退火算法是受到金属退火工艺启发的一种元启发式算法。在本文中,我们将对算法进行全面分析,并揭示围绕这种广为人知的优化方法的一些常见信仰和神话。本文的第二部分将研究自定义模拟各向同性退火(SIA)算法。
preview
在 MQL5 中重新构想经典策略(第二部分):富时 100 指数(FTSE100)与英国国债(UK Gilts)

在 MQL5 中重新构想经典策略(第二部分):富时 100 指数(FTSE100)与英国国债(UK Gilts)

在本系列文章中,我们探索了流行的交易策略,并尝试使用人工智能(AI)对其进行改进。在今天的文章中,我们将重新审视基于股市与债市之间关系的经典交易策略。
preview
重思经典策略(第八部分):基于美元兑加元(USDCAD)探讨外汇市场与贵金属

重思经典策略(第八部分):基于美元兑加元(USDCAD)探讨外汇市场与贵金属

在本系列文章中,我们将重新审视一些广为人知的交易策略,看看是否能够利用人工智能(AI)来改进它们。请加入我们今天的讨论,一起测试贵金属与货币之间是否存在可靠的关系。
preview
开发回放系统(第 46 部分):Chart Trade 项目(五)

开发回放系统(第 46 部分):Chart Trade 项目(五)

厌倦了浪费时间搜索应用程序工作所需的文件吗?在可执行文件中包含所有内容如何?这样,你就不用再去找东西了。我知道很多人都使用这种分发和存储形式,但还有一种更合适的方式。至少在可执行文件的分发和存储方面是这样。这里将介绍的方法非常有用,因为您可以将 MetaTrader 5 本身用作优秀的助手,也可以使用 MQL5。此外,它并不难理解。
preview
MQL5 交易管理面板开发指南(第六部分):交易管理面板(续篇)

MQL5 交易管理面板开发指南(第六部分):交易管理面板(续篇)

在本文中,我们对多功能管理面板的“交易面板”进行升级。我们引入一个强大的辅助函数,大幅简化代码,提高可读性、可维护性与运行效率。同时演示如何无缝集成更多按钮,并优化界面,以支持更广泛的交易任务。无论是持仓管理、订单调整,还是简化交互,本文将助您打造稳健且易用的交易管理面板。
preview
开发回放系统(第 49 部分):事情变得复杂 (一)

开发回放系统(第 49 部分):事情变得复杂 (一)

在本文中,我们将把问题复杂化。通过前面文章中展示的内容,我们将开始打开模板文件,以便用户可以使用自己的模板。不过,我将逐步进行修改,因为我还将改进指标,以减少 MetaTrader 5 的负载。
preview
开发回放系统(第 58 部分):重返服务工作

开发回放系统(第 58 部分):重返服务工作

在回放/模拟器服务的开发和改进暂停之后,我们正在恢复该工作。现在我们已经放弃使用终端全局变量等资源,我们将不得不完全重组其中的一些部分。别担心,我们会详细解释这个过程,这样每个人都可以关注我们服务的发展。
preview
开发回放系统(第 70 部分):取得正确的时间(三)

开发回放系统(第 70 部分):取得正确的时间(三)

在本文中,我们将了解如何正确有效地使用 CustomBookAdd 函数。尽管它看起来很简单,但它有许多细微差别。例如,它允许您告诉鼠标指标自定义交易品种是否正在竞价、交易或市场是否关闭。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
数据处理的分组方法:在MQL5中实现组合算法

数据处理的分组方法:在MQL5中实现组合算法

在本文中,我们将继续探索数据处理家族分组算法,在MQL5中实现组合算法(Combinatorial Algorithm)及其优化版本——组合选择算法(Combinatorial Selective Algorithm)。
preview
头脑风暴优化算法(第一部分):聚类

头脑风暴优化算法(第一部分):聚类

在本文中,我们将探讨一种受自然现象“头脑风暴”启发的新型优化方法——头脑风暴优化(Brain Storm Optimization,简称BSO)。我们还将讨论BSO方法所应用的一种解决多模态优化问题的新方法。该方法能够在无需预先确定子种群数量的情况下,找到多个最优解。此外,我们还会考虑K-Means和K-Means++聚类方法。
preview
跨邻域搜索(ANS)

跨邻域搜索(ANS)

本文揭示了跨邻域搜索(ANS)算法的潜力,作为重要的一步,旨在开发灵活且智能的优化方法,使其能够在搜索空间中考虑问题的具体特性和环境的动态变化。
preview
从基础到中级:操作符

从基础到中级:操作符

在本文中,我们将介绍主要的操作符。虽然这个主题很容易理解,但在代码格式中包含数学表达式时,有一些要点非常重要。如果不充分了解这些细节,经验很少或没有经验的程序员最终会放弃尝试创建自己的解决方案。
preview
从基础到中级:数组(三)

从基础到中级:数组(三)

在本文中,我们将介绍如何在 MQL5 中使用数组,包括如何使用数组在函数和过程之间传递信息。目的是为您准备在本系列后续材料中演示和解释的内容。因此,我强烈建议您仔细研究本文将展示的内容。
preview
头脑风暴优化算法(第二部分): 多模态

头脑风暴优化算法(第二部分): 多模态

在文章的第二部分,我们将继续讨论BSO算法的实际应用,对测试函数进行测试,并将BSO的效率与其他优化方法进行比较。
preview
开发回放系统(第 38 部分):铺路(II)

开发回放系统(第 38 部分):铺路(II)

许多认为自己是 MQL5 程序员的人,其实并不具备我在本文中将要概述的基础知识。许多人认为 MQL5 是一个有限的工具,但实际原因是他们尚未具备所需的知识。所以,如果您有啥不知道,不要为此感到羞愧。最好是因为不去请教而感到羞愧。简单地强制 MetaTrader 5 禁用指标重叠,并不能确保指标和智能系统之间的双向通信。我们离这个目标还很远,但指标在图表上没有重叠的事实给了我们一些信心。
preview
使用Python与MQL5进行多个交易品种分析(第二部分):主成分分析在投资组合优化中的应用

使用Python与MQL5进行多个交易品种分析(第二部分):主成分分析在投资组合优化中的应用

交易账户风险管理是所有交易者面临的共同挑战。我们如何在MetaTrader 5中开发能够动态学习不同交易品种的高、中、低风险模式的交易应用?通过主成分分析(PCA),我们可以更有效地控制投资组合的方差。本文将演示如何从MetaTrader 5获取的市场数据中,训练出这三种风险模式的交易模型。
preview
精通日志记录(第一部分):MQL5中的基础概念与入门步骤

精通日志记录(第一部分):MQL5中的基础概念与入门步骤

欢迎开启另一段探索之旅!本文是一个特别系列的开篇之作,我们将逐步创建一个专为MQL5语言开发者量身定制的日志操作库。
preview
开发回放系统(第 52 部分):事情变得复杂(四)

开发回放系统(第 52 部分):事情变得复杂(四)

在本文中,我们将修改鼠标指针,以实现与控制指标的交互,确保可靠、稳定地运行。
preview
使用MQL5中的动态时间规整进行模式识别

使用MQL5中的动态时间规整进行模式识别

在本文中,我们探讨了动态时间规整(Dynamic Time Warping,DTW)作为识别金融时间序列中预测模式的一种方法。我们将深入了解其工作原理,并在纯MQL5语言中展示其实现方法。
preview
开发回放系统(第 43 部分):Chart Trade 项目(II)

开发回放系统(第 43 部分):Chart Trade 项目(II)

大多数想要或梦想学习编程的人实际上并不知道自己在做什么。他们的活动包括试图以某种方式创造事物。然而,编程并不是为了定制合适的解决方案。这样做会产生更多的问题而不是解决方案。在这里,我们将做一些更高级、更与众不同的事情。
preview
重构经典策略(第十三部分):最小化均线交叉的滞后性

重构经典策略(第十三部分):最小化均线交叉的滞后性

在我们交易者社区中,均线交叉策略已是广为人知,然而,自该策略诞生以来,其核心思想却几乎一成未变。在本次讨论中,我们将为您呈现对原策略的一项微调,其目的在于最小化该交易策略中存在的滞后性。所有原策略的爱好者们,不妨根据我们今天将要探讨的见解,来重新审视并改进这一策略。通过使用两条周期相同的移动平均线,我们可以在不违背策略基本原则的前提下,显著减少交易策略的滞后。
preview
如何使用 MetaTrader 和 Google Sheets 创建交易日志

如何使用 MetaTrader 和 Google Sheets 创建交易日志

使用 MetaTrader 和 Google Sheets 创建交易日志!您将学习如何通过 HTTP POST 同步您的交易数据,并使用 HTTP 请求来获取它。最后,您有一个交易日志,可以帮助您有效地跟踪您的交易。
preview
开发回放系统(第 68 部分):取得正确的时间(一)

开发回放系统(第 68 部分):取得正确的时间(一)

今天,我们将继续努力,让鼠标指针告诉我们在流动性较低期间,一根柱形上还剩下多少时间。尽管乍一看似乎很简单,但实际上这项任务要困难得多。这涉及一些我们必须克服的障碍。因此,为了理解以下部分,您必须很好地理解子系列第一部分的材料。
preview
开发回放系统(第 69 部分):取得正确的时间(二)

开发回放系统(第 69 部分):取得正确的时间(二)

今天我们将看看为什么我们需要 iSpread 功能。同时,我们将了解当没有可用的分时报价时,系统如何通知我们柱形的剩余时间。此处提供的内容仅用于教育目的。在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
自适应社会行为优化(ASBO):Schwefel函数与Box-Muller方法

自适应社会行为优化(ASBO):Schwefel函数与Box-Muller方法

本文深入探讨了生物体的社会行为及其对新型数学模型——自适应社会行为优化(ASBO)创建的影响,为我们呈现了一个引人入胜的世界。我们将研究生物社会中观察到的领导、近邻和合作原则如何激发创新优化算法的开发。
preview
HTTP和Connexus(第2部分):理解HTTP架构和库设计

HTTP和Connexus(第2部分):理解HTTP架构和库设计

本文探讨了HTTP协议的基础知识,涵盖了主要方法(GET、POST、PUT、DELETE)、状态码以及URL的结构。此外,还介绍了Conexus库的构建起点,以及CQueryParam和CURL类,这些类用于在HTTP请求中操作URL和查询参数。
preview
开发回放系统(第 57 部分):了解测试服务

开发回放系统(第 57 部分):了解测试服务

需要注意的一点是:虽然服务代码没有包含在本文中,只会在下一篇文章中提供,但我会解释一下,因为我们将使用相同的代码作为我们实际开发的跳板。因此,请保持专注和耐心。等待下一篇文章,因为每一天都变得更加有趣。
preview
开发回放系统(第 61 部分):玩转服务(二)

开发回放系统(第 61 部分):玩转服务(二)

在本文中,我们将研究使回放/模拟系统更高效、更安全地运行的修改。我也不会对那些想要充分利用这些类的人置之不理。此外,我们将探讨 MQL5 中的一个特定问题,即在使用类时降低代码性能,并解释如何解决它。
preview
Connexus的头(第三部分):掌握HTTP请求头的使用方法

Connexus的头(第三部分):掌握HTTP请求头的使用方法

我们继续开发Connexus库。在本章中,我们探讨HTTP协议中请求头的概念,解释它们是什么、它们的用途以及如何在请求中使用它们。我们将涵盖用于与API通信的主要头信息,并展示了如何在库中配置它们的实例。
preview
开发回放系统(第 48 部分):了解服务的概念

开发回放系统(第 48 部分):了解服务的概念

学习些新知识怎么样?在本文中,您将了解如何将脚本转换为服务,以及为什么这样做很有用。
preview
MQL5 中的 SQLite 功能示例:按交易品种及 Magic 编码展示交易统计信息的仪表盘

MQL5 中的 SQLite 功能示例:按交易品种及 Magic 编码展示交易统计信息的仪表盘

本文将介绍如何创建一个指标型仪表盘,按账户、交易品种及交易策略展示交易统计信息。我们将以官方文档及数据库相关文章中的示例为基础,逐步实现完整程序。
preview
种群优化算法:改变概率分布的形状和位移,并基于智能头足类生物(SC)进行测试

种群优化算法:改变概率分布的形状和位移,并基于智能头足类生物(SC)进行测试

本文研究了改变概率分布形状对优化算法性能的影响。我们将进行的实验,会用到智能头足类生物(SC)测试算法,从而评估优化问题背景下各种概率分布的效能。
preview
在MQL5中创建交易管理员面板(第三部分):通过视觉样式设计增强图形用户界面(1)

在MQL5中创建交易管理员面板(第三部分):通过视觉样式设计增强图形用户界面(1)

在本文中,我们将专注于使用MQL5为交易管理员面板的图形用户界面(GUI)进行视觉样式设计与优化。我们将探讨MQL5中可用的各种技术和功能,这些技术和功能允许对界面进行定制和优化,确保它既能满足交易者的需求,又能保持吸引人的外观。
preview
基于Python和MQL5的特征工程(第一部分):为长期 AI 模型预测移动平均线

基于Python和MQL5的特征工程(第一部分):为长期 AI 模型预测移动平均线

移动平均线无疑是我们的 AI 模型进行预测的最佳指标。然而,我们可以通过严谨数据变换来进一步提高其准确性。本文将展示如何构建能够预测更远范围的AI模型,超越您目前所实现的水平,同时不会显著降低准确率。移动平均线的实用性确实令人惊叹。
preview
开发回放系统(第 51 部分):事情变得复杂(三)

开发回放系统(第 51 部分):事情变得复杂(三)

在本文中,我们将研究 MQL5 编程领域最困难的问题之一:如何正确获取图表 ID,以及为什么对象有时不会绘制在图表上。此处提供的材料仅用于教学目的,在任何情况下,除了学习和掌握所提出的概念外,都不应出于任何目的使用此应用程序。
preview
特征向量和特征值:MetaTrader 5 中的探索性数据分析

特征向量和特征值:MetaTrader 5 中的探索性数据分析

在这篇文章中,我们将探索特征向量和特征值在探索性数据分析中的不同应用方式,以揭示数据中的独特关系。
preview
开发回放系统(第 34 部分):订单系统 (三)

开发回放系统(第 34 部分):订单系统 (三)

在本文中,我们将完成构建的第一阶段。虽然这部分内容很快就能完成,但我将介绍之前没有讨论过的细节。我将解释一些许多人不理解的问题。你知道为什么要按 Shift 或 Ctrl 键吗?
preview
使用MQL5和Python构建自优化的EA(第四部分):模型堆叠

使用MQL5和Python构建自优化的EA(第四部分):模型堆叠

今天,我们将展示如何构建能够从自身错误中学习的AI驱动的交易应用程序。我们将展示一种称为堆叠(stacking)的技术,我们使用2个模型来做出1个预测。第一个模型通常是较弱的学习器,而第二个模型通常是更强大的模型,它学习较弱学习器的残差。我们的目标是创建一个模型集成,以期获得更高的准确性。
preview
种群优化算法:鲸鱼优化算法(WOA)

种群优化算法:鲸鱼优化算法(WOA)

鲸鱼优化算法(WOA)是一种受座头鲸行为和捕食策略启发的元启发式算法。该算法的核心思想在于模仿所谓的“气泡网”捕食方法,即鲸鱼在猎物周围制造气泡,然后以螺旋运动的方式攻击猎物。
preview
DoEasy.服务函数(第 3 部分):外包线形态

DoEasy.服务函数(第 3 部分):外包线形态

在本文中,我们将开发 DoEasy 库中的外包线(Outside Bar)价格行为形态,并优化访问价格形态管理的方法。此外,我们将修复在库测试中发现的错误和缺点。