![基于 CChartObject 类设计和实施新 GUI 组件](https://c.mql5.com/2/0/Design_Widgets_MQL5.png)
![基于 CChartObject 类设计和实施新 GUI 组件](https://c.mql5.com/i/articles/overlay.png)
基于 CChartObject 类设计和实施新 GUI 组件
在我撰写了关于通过 GUI 界面实现半自动“EA 交易”的前作后,结果表明针对更复杂的指标和“EA 交易”,最好使用新的功能来改善界面。在熟悉 MQL5 标准库类后,我实施了一些新的组件。本文介绍新 MQL5 GUI 组件的设计和实施过程;这些组件可用于指标和“EA 交易”。本文中介绍的组件包括:CChartObjectSpinner、CChartObjectProgressBar 和 CChartObjectEditTable。
![基于预定义的风险和风险/回报比建立互动式半自动拖放“EA 交易”](https://c.mql5.com/2/0/z5491084X.png)
![基于预定义的风险和风险/回报比建立互动式半自动拖放“EA 交易”](https://c.mql5.com/i/articles/overlay.png)
基于预定义的风险和风险/回报比建立互动式半自动拖放“EA 交易”
部分交易人员选择自动执行所有交易,而另外一些交易人员基于多个指标的输出混合使用自动和手动交易。作为后者中的一员,我需要一个互动式工具以直接从图表动态地评估风险和回报价格水平。本文将介绍通过预定义的资产净值风险和风险/回报比实施互动式半自动“EA 交易”的方法。“EA 交易”风险、风险/回报和手数参数可于运行时期间在 EA 面板上更改。
![以峰谷指标和 ATR 指标为例说明作为类来实施指标](https://c.mql5.com/2/0/indicator_boxed.png)
![以峰谷指标和 ATR 指标为例说明作为类来实施指标](https://c.mql5.com/i/articles/overlay.png)
以峰谷指标和 ATR 指标为例说明作为类来实施指标
有关指标计算的最佳方式的争论无休无止。我们应在何处计算指标值 - 在指标本身内还是嵌入使用该指标的 EA 交易的整个逻辑之中?本文说明在 EA 交易或脚本的代码中移动自定义指标 iCustom 的源代码的一种情形,并对计算和 prev_calculated 值的建模进行优化。
![基于成交历史的交易播放器](https://c.mql5.com/2/0/MQL5_Trade_Player.png)
![基于成交历史的交易播放器](https://c.mql5.com/i/articles/overlay.png)
基于成交历史的交易播放器
交易播放器。仅仅五个字,无需解释。一个带有按钮的小对话框出现在您的脑海中。按一个按钮 - 它开始播放,移动控制杆 - 播放速度改变。事实上,它非常类似。在本文中,我想展示我编写的以几乎与实时交易完全相同的方式播放交易历史的程序。本文使用指标和管理图表来介绍 OOP 的某些细节。
![不使用额外的缓冲区,为中间计算进行系列价格的平均化](https://c.mql5.com/2/0/averages_MQL5__1.png)
![不使用额外的缓冲区,为中间计算进行系列价格的平均化](https://c.mql5.com/i/articles/overlay.png)
不使用额外的缓冲区,为中间计算进行系列价格的平均化
本文要讲述的是封装于最简单的单型类中的传统与非寻常平均线算法。它们旨在实现于几乎所有指标的开发过程中的普适用途。我希望建议的这些类,会成为那些自定义与技术指标“笨重”调用的一个很好的替代。
![例解 MQL5 中的面向对象编程:处理警告和错误代码](https://c.mql5.com/2/0/mistake.png)
![例解 MQL5 中的面向对象编程:处理警告和错误代码](https://c.mql5.com/i/articles/overlay.png)
例解 MQL5 中的面向对象编程:处理警告和错误代码
本文以一个例子说明创建一个类用于处理 MQL 程序运行期间交易服务器返回的代码以及所有错误的类。阅读本文之后,您将学习到如何在 MQL5 中处理类和对象。同时,这是一个方便的错误处理工具;并且您可以依据您的具体需要进一步更改此工具。
![针对市场分析的数据库的具体应用](https://c.mql5.com/2/0/dar.png)
![针对市场分析的数据库的具体应用](https://c.mql5.com/i/articles/overlay.png)
针对市场分析的数据库的具体应用
处理数据成为现代软件的主要任务 - 独立应用程序和网络应用程序都是如此。为解决此问题而创建了专业软件。这些软件被称为数据库管理系统 (DBMS),能够针对它们的计算机存储和处理对数据进行构建、系统化和组织。对于交易,大多数分析师并不在他们的工作中使用数据库。但是对于一些任务,必须使用此类解决方案。本文提供了一个在客户端-服务器和文件-服务器架构中都能将数据保存到数据库或从数据库加载数据的指标例子。
![将指标从 MQL4 迁移到 MQL5](https://c.mql5.com/2/0/migrate_indicators_mql4_to_MQL5__1.png)
![将指标从 MQL4 迁移到 MQL5](https://c.mql5.com/i/articles/overlay.png)
将指标从 MQL4 迁移到 MQL5
本文旨在说明将用 MQL4 编写的价格构建迁移到 MQL5。为了让将指标计算从 MQL4 迁移到 MQL5 的过程更加容易,建议使用 mql4_2_mql5.mqh 函数库。依据 MACD、随机动量指标和 RSI 指标说明其用途。
![利用标准库类创建您自己的“市场报价”](https://c.mql5.com/2/0/visual.png)
![利用标准库类创建您自己的“市场报价”](https://c.mql5.com/i/articles/overlay.png)
利用标准库类创建您自己的“市场报价”
新型 MetaTrader 5 客户端与 MQL5 语言提供了向交易者展示可视信息的新机遇。本文中,我们会讲到一系列通用且可扩展的类,处理图表上方任意文本信息的组织与显示工作。“市场报价”指标的示例亦有提供。
![MQL5 向导:无需编程即可创建 EA 交易程序](https://c.mql5.com/2/0/editor_wizard.png)
![MQL5 向导:无需编程即可创建 EA 交易程序](https://c.mql5.com/i/articles/overlay.png)
MQL5 向导:无需编程即可创建 EA 交易程序
您想试试不用浪费时间来编程的交易策略吗?利用 MQL5 向导,您只需要选择交易信号的类型,添加追踪仓位和资金管理模块,您的工作就完成了!创建自己的模块实现,或是通过“任务”服务订购 - 再将您的新模块合并到现有模块。
![生长型神经气:MQL5 中的实施](https://c.mql5.com/2/0/neural_gas_MQL5.png)
![生长型神经气:MQL5 中的实施](https://c.mql5.com/i/articles/overlay.png)
生长型神经气:MQL5 中的实施
本文会举例说明如何开发一个可以实施名为“生长型神经气” (GNG) 自适应聚类算法的 MQL5 程序。本文针对已研究过语言文档、且已具备一定编程能力和神经信息学基础知识的用户。
![一个用于通过 Google Chart API 构建图表的库](https://c.mql5.com/2/0/Google_Chart_API_MQL5__1.png)
![一个用于通过 Google Chart API 构建图表的库](https://c.mql5.com/i/articles/overlay.png)
一个用于通过 Google Chart API 构建图表的库
构建各种类型的图表是分析市场情形及测试交易系统的一个基本部分。通常,为了构建一个精致的图表,必须将数据输出到一个文件,然后在 MS Excel 等应用程序中使用该文件。这样并不是非常方便,并且使我们无法动态更新数据。Google Charts API 通过向服务器发送特别请求,提供了在线创建图表的方式。在本文中,我们将尝试让创建此类请求和从 Google 服务器获得图表的过程实现自动化。
![New Bar (新柱)事件处理程序](https://c.mql5.com/2/0/new_bar_born.png)
![New Bar (新柱)事件处理程序](https://c.mql5.com/i/articles/overlay.png)
New Bar (新柱)事件处理程序
MQL5 编程语言处理问题的能力已达到一个全新的水平。即便是那些已有此类解决方案的任务,也因为面向对象编程而进阶到一个更高的水平。本文中,我们会举一个检查图表中新柱的特别简单的例子,而且,它已经转化成为一种相当强大且用途多样的工具。什么工具?到文中找答案吧。
![查找错误和记录](https://c.mql5.com/2/0/filter_Log_MQL5.png)
![查找错误和记录](https://c.mql5.com/i/articles/overlay.png)
查找错误和记录
MetaEditor 5 具备调试功能。但是在编写 MQL5 程序时,您通常都希望不要显示个别的值,而是测试与在线工作期间出现的所有信息。如果日志文件内容庞大,所需信息快速便捷检索自动化的重要性就显而易见了。本文中,我们会研究 MQL5 程序中查找错误的方式以及记录方法。我们也会简单地记录到文件中,并了解一款方便日志查看的简单程序 - LogMon。
![“EA 交易”运行期间平衡曲线斜率的控制](https://c.mql5.com/2/0/Balance_Angle_Control_MQL5.png)
![“EA 交易”运行期间平衡曲线斜率的控制](https://c.mql5.com/i/articles/overlay.png)
“EA 交易”运行期间平衡曲线斜率的控制
找到交易系统的规则,再于“EA 交易”中进行编程,任务就完成一半了。随着交易结果的累积,您需要通过某种方式纠正“EA 交易”的操作。本文讲述一种方法,通过创建平衡曲线斜率的测量反馈,改善“EA 交易”的性能。
![通过指定的幻数计算总持仓量的最佳方法](https://c.mql5.com/2/0/calculate_volume_MQL5__1.png)
![通过指定的幻数计算总持仓量的最佳方法](https://c.mql5.com/i/articles/overlay.png)
通过指定的幻数计算总持仓量的最佳方法
本文探讨了与指定交易品种和幻数有关的总持仓量的计算问题。所提议的方法仅请求交易历史记录的最少必要部分,在总持仓量等于零时查找最接近的时间,并用最新的交易进行计算。还考虑了客户端全局变量的处理。
![一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案](https://c.mql5.com/2/0/Named_Pipes_MetaTrader5.png)
![一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案](https://c.mql5.com/i/articles/overlay.png)
一个使用命名管道在 MetaTrader 5 客户端之间进行通信的无 DLL 解决方案
本文说明如何使用命名管道在 MetaTrader 5 客户端之间实施进程间通信。为使用命名管道而开发了 CNamedPipes 类。为了测试其使用以及测量连接吞吐能力,提供了价格变动指标、服务器和客户端脚本。命名管道的使用足以应对实时报价。
![用 MQL5 创建交易活动控制板](https://c.mql5.com/2/0/panel__2.png)
![用 MQL5 创建交易活动控制板](https://c.mql5.com/i/articles/overlay.png)
用 MQL5 创建交易活动控制板
本文介绍用 MQL5 开发活动控制板所遇到的问题。接口元件通过事件处理机制来管理。此外,还提供控制元件属性的灵活设置选项。活动控制板允许处理仓位,以及设置、修改和删除市场和挂单。
![用 MQL5 创建“贪吃蛇”游戏](https://c.mql5.com/2/0/snake__2.png)
![用 MQL5 创建“贪吃蛇”游戏](https://c.mql5.com/i/articles/overlay.png)
用 MQL5 创建“贪吃蛇”游戏
本文描述一个“贪吃蛇”游戏编程的例子。在 MQL5 中,游戏编程变为可能主要是因为事件处理功能。面向对象编程大大简化了这个过程。在本文中,您将学习事件处理功能,标准 MQL5 库类的使用例子以及定期函数调用的详细信息。
![在单一工具上使用不同的 EA 交易进行交易时 ORDER_MAGIC 的使用](https://c.mql5.com/2/0/order_magic_MQL5__1.png)
![在单一工具上使用不同的 EA 交易进行交易时 ORDER_MAGIC 的使用](https://c.mql5.com/i/articles/overlay.png)
在单一工具上使用不同的 EA 交易进行交易时 ORDER_MAGIC 的使用
本文考虑有关使用不同 EA 交易的自动交易的魔法标识以及分隔、组合与同步进行信息编码的问题。初学者和经验更多的交易者会对本文感兴趣,因为它解决虚拟仓位的问题,这在实施由 EA 交易的同步和各种策略组成的复杂系统时非常有用。
![中测试移动平均线计算的性能](https://c.mql5.com/2/0/moving_averages_performance_MQL5__1.png)
![中测试移动平均线计算的性能](https://c.mql5.com/i/articles/overlay.png)
中测试移动平均线计算的性能
在创建第一个移动平均线指标之后,已经出现了若干指标。其中很多指标使用类似的平滑方法,但是还没有研究不同的移动平均线算法的性能。在本文中,我们将考虑在 MQL5 中使用移动平均线的若干可能方式并比较它们的性能。
![用 Delphi 为 MQL5 编写 DLL 指南](https://c.mql5.com/2/0/delphi_DLL_MQL5__1.png)
![用 Delphi 为 MQL5 编写 DLL 指南](https://c.mql5.com/i/articles/overlay.png)
用 Delphi 为 MQL5 编写 DLL 指南
本文说明在 Delphi 编程环境中使用流行编程语言 ObjectPascal 创建 DLL 模块的机制。本文提供的材料主要针对初学者而设计,这些初学者面临因为连接外部 DLL 模块而突破了嵌入式编程语言 MQL5 边界的问题。
![使用若干中间指标缓存创建多货币指标](https://c.mql5.com/2/0/Multicurrency_Indicator_MQL5.png)
![使用若干中间指标缓存创建多货币指标](https://c.mql5.com/i/articles/overlay.png)
使用若干中间指标缓存创建多货币指标
最近对 FOREX 市场进行群集分析的兴趣越来越高。MQL5 提供了研究货币对运动趋势的新可能。MQL5 不同于 MQL4 的一个新特点是能够使用数量不受限制的指标缓存。本文描述了一个创建多货币指标的例子。
![从 MQL4 迁移到 MQL5](https://c.mql5.com/2/0/logo__4.png)
![从 MQL4 迁移到 MQL5](https://c.mql5.com/i/articles/overlay.png)
从 MQL4 迁移到 MQL5
本文是 MQL4 语言函数的快速指南,帮助您将您的程序从 MQL4 迁移到 MQL5。介绍了每个 MQL4 函数(交易函数除外)的说明和 MQL5 实施,从而让您显著减少转换时间。出于方便起见,MQL4 函数被分为组,类似于 MQL4 参考。
![“傻瓜式”MQL:如何设计和构建对象类](https://c.mql5.com/2/0/cube__1.png)
![“傻瓜式”MQL:如何设计和构建对象类](https://c.mql5.com/i/articles/overlay.png)
“傻瓜式”MQL:如何设计和构建对象类
我们将通过创建视觉设计的样本程序,介绍如何在 MQL5 中设计和构建类。本文为使用 MT5 应用程序的初学者编程人员所编写。我们提出一种简易明了的抓取技术用于创建类,无需深刻理解面向对象编程的理论。
![面向初学者的创建具有多个指标缓冲区的指标](https://c.mql5.com/2/0/P2054.png)
![面向初学者的创建具有多个指标缓冲区的指标](https://c.mql5.com/i/articles/overlay.png)
面向初学者的创建具有多个指标缓冲区的指标
复杂代码由一组简单代码组成。如果您熟悉简单代码,复杂代码看上去就不那么复杂了。在本文中,我们将讨论如何创建具有多个指标缓冲区的指标。我们将 Aroon 指标作为示例进行详细分析,并给出两个不同的代码版本。
![MetaTrader 5 和 MATLAB 交互](https://c.mql5.com/2/0/matlab.png)
![MetaTrader 5 和 MATLAB 交互](https://c.mql5.com/i/articles/overlay.png)
MetaTrader 5 和 MATLAB 交互
本文将详细介绍 MetaTrader 5 和 MatLab 数学包之间的交互。文中说明了数据转换机制,以及开发通用库以与 MatLab 交互的过程。文章还介绍了对 MatLab 环境生成的 DLL 的使用。本文面向掌握了 C++ 和 MQL5 的经验丰富的读者。
![创建具有图形控制选项的指标](https://c.mql5.com/2/0/macd__1.png)
![创建具有图形控制选项的指标](https://c.mql5.com/i/articles/overlay.png)
创建具有图形控制选项的指标
熟悉市场情绪的人都知道 MACD 指标(其全称为平滑异同移动平均线)- 自计算机分析方法面世以来即已被交易人员用于分析价格变动的强大工具。在本文中,我们将讨论 MACD 可能的变型,并在可图形切换变型的指标中实施这些变型。
![MQL5 中的事件处理:快速更改 MA 周期](https://c.mql5.com/2/0/How_Change_Period_Moving_Average_on_the_fly_MQL5__1.png)
![MQL5 中的事件处理:快速更改 MA 周期](https://c.mql5.com/i/articles/overlay.png)
MQL5 中的事件处理:快速更改 MA 周期
假设有周期为 13 的简单 MA(移动平均线)指标应用至图表。而我们希望将周期更改为 20,但我们不想转到指标属性对话框去把将数字 13 更改为 20:我们就是对这些使用鼠标和键盘执行的乏味操作感到厌倦。尤其是,我们不希望打开指标代码进行修改。我们只想按一下按钮 - 与数字小键盘相邻的“向上箭头”- 就完成这一切。在本文中,我将给出实现方法。
![交易报告及短信通知的创建和发布](https://c.mql5.com/2/0/trade_reports_SMS_MQL5.png)
![交易报告及短信通知的创建和发布](https://c.mql5.com/i/articles/overlay.png)
交易报告及短信通知的创建和发布
交易者往往不能、也不想接连多少个小时被拴在交易终端那里。如果交易系统再或多或少地正规化、而且可以自动识别一些市场状态的时候,就更是如此。本文会讲述如何生成一份 HTML 文件格式的交易结果报告(利用“EA 交易”、指标或脚本),并通过 FTP 将其上传到 WWW 服务器。我们还会考虑以短信形式向手机发送交易事件通知。
![MQL5:在 MetaTrader 5 中分析和处理商品期货交易委员会 (CFTC) 报告](https://c.mql5.com/2/0/trader_mql5__1.png)
![MQL5:在 MetaTrader 5 中分析和处理商品期货交易委员会 (CFTC) 报告](https://c.mql5.com/i/articles/overlay.png)
MQL5:在 MetaTrader 5 中分析和处理商品期货交易委员会 (CFTC) 报告
在本文中,我们将开发用于 CFTC 报告分析的工具。我们将解决下述问题:开发可直接使用委员会提供的数据文件的 CFTC 报告数据而无需进行中间处理和转换的指标。此外,该指标可用于不同目的:作为指标绘制数据、处理其他指标中的数据、在脚本中用于自动分析、在“EA 交易”的交易策略中使用。
![初学者以 MQL5 实现对数字滤波器的实际实施](https://c.mql5.com/2/0/Filter.png)
![初学者以 MQL5 实现对数字滤波器的实际实施](https://c.mql5.com/i/articles/overlay.png)
初学者以 MQL5 实现对数字滤波器的实际实施
数字信号滤波的理念在有关构建交易系统的论坛主题中被广泛讨论。而不以 MQL5 编写数字滤波器的标准代码是不明智的。在本文中,笔者介绍了将出自其文章《面向新手的 MQL5 自定义指标》的简单 SMA 指标的代码转换成更复杂和通用的数字滤波器的代码。本文是笔者上一篇文章的逻辑延续。文章中还介绍了如何在代码中更换文本,以及如何修正编程错误。
![用 MQL5 连接 EA 交易程序和 ICQ](https://c.mql5.com/2/0/icq.png)
![用 MQL5 连接 EA 交易程序和 ICQ](https://c.mql5.com/i/articles/overlay.png)
用 MQL5 连接 EA 交易程序和 ICQ
本文描述 EA 交易程序和 ICQ 用户之间的信息交换方法,并提供了几个例子。通过他们的手机或 PDA 中的 ICQ 客户端,从一个客户端远程接收交易信息的人会对提供的材料感兴趣。
![指标间的数据交换:易如反掌!](https://c.mql5.com/2/0/v5__1.png)
![指标间的数据交换:易如反掌!](https://c.mql5.com/i/articles/overlay.png)
指标间的数据交换:易如反掌!
我们希望创建这样一个环境,即能够提供对附加于图表的指标的数据访问,并具有以下属性:没有数据复制;只需稍加修改我们需要使用的可用方法的代码;MQL 代码优先(当然,我们必须使用 DLL,但我们将只使用一些 C++ 代码字符串)。本文介绍了为 MetaTrader 终端开发程序环境的简易方法,这将提供从其他 MQL 程序访问指标缓冲区的方法。
![使用 WCF 服务将报价从 MetaTrader 5 导出至 .NET 应用程序的方法](https://c.mql5.com/2/0/mql_net__1.png)
![使用 WCF 服务将报价从 MetaTrader 5 导出至 .NET 应用程序的方法](https://c.mql5.com/i/articles/overlay.png)
使用 WCF 服务将报价从 MetaTrader 5 导出至 .NET 应用程序的方法
想要从 MetaTrader 5 导出报价到您自己的应用程序?MQL5-DLL 组合可给出这样的解决方案!本文介绍将报价从 MetaTrader 5 导出至以 .NET 编写的应用程序的方法。对我而言,使用该平台实施报价的导出要更为有趣、合理和容易。遗憾的是版本 5 仍然不支持 .NET,因此和以往一样,我们将使用 .NET 支持的 win32 dll 作为中间层。
![用 MQL5 绘制指标的喷发](https://c.mql5.com/2/0/avataar__1.png)
![用 MQL5 绘制指标的喷发](https://c.mql5.com/i/articles/overlay.png)
用 MQL5 绘制指标的喷发
在本文中,我们将讨论指标的喷发 - 一种市场研究的新方法。喷发的计算基于不同指标的相交:在每次价格跳动后,将出现越来越多的带不同颜色和各种形状的点。它们形成了众多的集群,如星云、云团、轨迹、直线、弧线等。这些形状有助于发现影响市场价格变动的无形的跳跃力和驱动力。
![如何交换数据:10 分钟为 MQL5 创建 DLL](https://c.mql5.com/2/0/mql5_dll_sample__1.png)
![如何交换数据:10 分钟为 MQL5 创建 DLL](https://c.mql5.com/i/articles/overlay.png)
如何交换数据:10 分钟为 MQL5 创建 DLL
现在很多开发人员不知道如何编写简单的 DLL,而这是不同系统绑定的特殊特性。我将通过多个示例,展示在 10 分钟内创建简单 DLL 的整个过程,并讨论我们绑定实施的一些技术细节。我将给出 Visual Studio 中的 DLL 创建的分步过程,以及交换不同变量类型的示例(数字、数组、字符串等)。此外,我还将说明在自定义 DLL 中如何使您的客户端免于崩溃。