MQL5编程文章

在众多发表的文章中研究 MQL5语言编程交易策略 的多数由您—我们 MQL5.community的会员所作。文章以类别分组来帮助您迅速找到任何有关MQL5编程问题的答案:集成,测试,交易策略等等。

Follow our 新发表讨论它们在 MQL5.community论坛

添加一个新的文章
最近 | 最佳

梯度提升(CatBoost)在交易系统开发中的应用. 初级的方法

在 Python 中训练 CatBoost 分类器,并将模型导出到mql5,以及解析模型参数和自定义策略测试程序。Python 语言和 MetaTrader 5 库用于准备数据和训练模型。

使用 DeMark Sequential 和 Murray-Gann 水平分析图表

Thomas DeMark Sequential (序列)擅长显示价格变动的平衡变化。如果我们把它的信号与水平指标例如 Murray 水平相结合,就更为明显。这篇文章主要是为初学者和那些仍然找不到他们的“圣杯”。我还将展示一些我在其他论坛上没有看到的构建水平的功能。因此,这篇文章可能对高级交易者也很有用。欢迎提出建议和合理批评。

神经网络在交易中的实际应用 Python (第一部分)

在本文中,我们将分析一个基于Python的深层神经网络编程的交易系统的分步实现。这将使用谷歌开发的 TensorFlow 机器学习库执行。我们还将使用 Keras 库来描述神经网络。

手工图表和交易工具包(第二部分)。 图表图形绘图工具

这是该系列的下一篇文章,在其中我展示了如何创建一个函数库来,从而看便利地用键盘快捷键手动绘制图表图形。 所用工具包括直线及其组合。 在这一部分中,我们将查看如何在绘图工具里应用第一部分中讲述的函数。 该函数库可连接到任何 EA 或指标,这将大大简化绘图任务。 此方案未使用外部 dll,而所有命令都是由内置 MQL 工具实现的。

模式搜索的暴力方法(第二部分):深入

在本文中,我们将继续讨论暴力方法。我将尝试使用我的应用程序的新改进版本来更好地解释这种模式。我还将尝试使用不同的时间间隔和时间框架来找出稳定性的差异。

神经网络变得轻松(第六部分):神经网络学习率实验

我们之前已研究过各种类型的神经网络及其实现。 在所有情况下,训练神经网络时都使用梯度下降法,为此我们需要选择学习率。 在本文中,我打算通过示例展示正确选择学习率的重要性,及其对神经网络训练的影响。

DoEasy 函数库中的时间序列(第五十四部分):抽象基准指标类的衍生

本文研究基于基准抽象指标衍生对象类的创建。 这些对象所提供功能,可访问创建的指标 EA,收集和获取各种指标和价格数据的数值统计信息。 同样,创建指标对象集合,从中可以访问程序中创建的每个指标的属性和数据。

开发和分析交易系统的最佳方法

在这篇文章中,我将展示在选择一个系统或信号来投资你的资金时所使用的标准,以及描述开发交易系统的最佳方法,并强调这个问题在外汇交易中的重要性。

DoEasy 函数库中的时间序列(第五十三部分):抽象基准指标类

本文研究创建一个抽象指标,其将进一步用作创建函数库标准指标和自定义指标对象的基类。

神经网络变得轻松(第五部分):OpenCL 中的多线程计算

我们早前已经讨论过某些类型的神经网络实现。 在所研究的网络中,每个神经元都重复相同的操作。 逻辑上进一步应利用现代技术提供的多线程计算功能来加快神经网络学习过程。 本文介绍了一种可能的实现方式。

网格和马丁格尔:它们是什么?如何使用它们?

在本文中,我将试图详细解释什么是网格和马丁格尔,以及它们的共同点。此外,我将试着分析这些策略到底有多可行。这篇文章同时包含了数学和实践部分。

模式搜索的暴力方法

在本文中,我们将搜索市场模式,根据确定的模式创建 EA 交易,并检查这些模式,如果它们保持有效的话,保持有效的时间有多少。

DoEasy 函数库中的时间序列(第五十二部分):多周期、多品种单缓冲区标准指标的跨平台性质

在本文中,研究创建多品种、多周期标准指标的“建仓/派发”。 略微改进指标依托的函数库类,以便从老旧的 MetaTrader 4 平台切换到 MetaTrader 5 时,基于该函数库开发的程序均可正常运行。

神经网络变得轻松(第四部分):循环网络

我们继续研究神经网络的世界。 在本文中,我们将研究另一种类型的神经网络,循环网络。 此类型建议与时间序列配合使用,其在 MetaTrader 5 交易平台中由价格图表呈现。

外汇交易的基础数学

本文旨在尽可能简单、快速地描述外汇交易的主要特点,并与初学者分享一些基本的想法。它还试图回答交易界最诱人的问题,同时展示一个简单指标的开发。

如何从算法交易中赚取$1,000,000?使用MQL5.com服务!

所有交易者都以赚取第一个百万美元为目标来访问市场。如何在没有过多风险和启动预算的情况下实现这个目标?MQL5服务为来自世界各地的开发人员和交易者提供了这样的机会。

并行粒子群优化

本文介绍了一种基于粒子群算法的快速优化方法。本文还介绍了MQL中的方法实现,它既可以在EA交易内部的单线程模式下使用,也可以作为在本地测试人员代理上运行的附加组件在并行多线程模式下使用。

DoEasy 函数库中的时间序列(第五十一部分):复合多周期、多品种标准指标

在本文中,会完成多周期、多品种标准指标对象的开发。 以 Ichimoku Kinko Hyo 标准指标为例,分析复合自定义指标的创建,该指标含有辅助绘制缓冲区,可在图表上显示数据。

DoEasy 函数库中的时间序列(第五十部分):多周期、多品种带位移的标准指标

在文章里,我们将改进函数库的方法,以便正确显示多品种、多周期的标准指标,即那些在当前品种图表上显示曲线,并可在设置中指定位移的指标。 同样,我们按照标准指标的操纵方法进行排序,并在最终的指标程序里将多余的代码移至函数库区域。

开发交易算法的科学方法

本文探讨了开发交易算法的方法,即使用一致的科学方法来分析可能的价格模式,并基于这些模式构建交易算法。开发的理念是通过实例来展示的。

神经网络变得轻松(第三部分):卷积网络

作为神经网络主题的延续,我建议研究卷积神经网络。 这种类型的神经网络通常用来分析视觉成像。 在本文中,我们将研究这种网络在金融市场中的应用。

DoEasy 函数库中的时间序列(第四十九部分):多周期、多品种、多缓冲区标准指标

在本文中,我将改进库类,从而满足需要多个缓冲区来显示其数据的多品种、多周期标准指标的开发能力。

连续前行优化 (第八部分): 程序改进和修复

根据本系列文章的用户和读者的评论和要求,程序已进行了修改。 本文包含一个自动优化器的新版本。 该版本实现了所需的功能,并提供了其他改进,这些是我运用该程序操作时发现的。

DoEasy 函数库中的时间序列(第四十八部分):在单一子窗口里基于一个缓冲区的多周期、多品种指标

本文研究了一个示例,该示例使用单个指标缓冲区来创建多品种、多周期标准指标,以便在指标子窗口中进行构造和操作。 我会准备库类,以便在程序主窗口中与标准指标一起操作,并有多个缓冲区来显示其数据。

神经网络变得轻松(第二部分):网络训练和测试

在第二篇文章中,我们将继续研究神经网络,并研究在智能交易系统当中调用我们所创建 CNet 类的示例。 我们将操控两个神经网络模型,它们在训练时间和预测准确性方面都表现出相似的结果。

自定义品种(符号):实践基础

本文专门介绍了程序化生成自定义品种(符号),这些自定义品种可用来演示一些显示报价的流行方法。 它描述的是一种建议的微创智能交易系统改编方案,可用在派生的自定义品种图表上,如同真实品种一样。 MQL 源代码随附于文后。

什么是趋势,行情结构是基于趋势还是横盘?

交易者经常谈论趋势和横盘,但很少有人真正了解趋势/横盘是什么,甚至很少能够清楚地解释这些概念。 讨论这些基本术语通常会受到一系列顽固偏见和误解的困扰。 然而,如果我们想赚钱,就需要了解这些概念的数学和逻辑含义。 在本文中,我将仔细研究趋势和横盘的本质,并尝试定义行情结构是基于趋势/横盘,亦或其他。 我还将研究在趋势和横盘行情上获利的最佳策略。

价格序列离散化,随机分量和噪音

我们通常使用烛条或条形图来分析行情,将价格序列切分成规则间隔。 这样的离散化方法不会扭曲行情走势的真实结构吗? 将音频信号离散化为规则间隔是可以接受的解决方案,因为音频信号是随时间变化的函数。 信号本身是取决于时间的幅度。 该信号属性是基本的。

利用外部应用程序进行加密

在本文中,我们研究在 MetaTrader 和外部应用程序中进行对象加密/解密。 我们的目的是判断以相同初始数据获得相同结果的条件。

检测超买/超卖区域的方法。 第一部分

超买/超卖区域是某种市场状态的特征,可由证券价格的疲软变化来区分。 这种负面变化会明显发生在任何尺度趋势发展的最后阶段。 由于交易中的利润价值直接取决于尽可能覆盖更广趋势幅度的能力,因此在任何证券交易中,探测此类区域的准确性是一项关键任务。

DoEasy 函数库中的时间序列(第四十七部分):多周期、多品种标准指标

在本文中,我着手开发操控标准指标的方法,最终能够基于函数库类创建多品种、多周期的标准指标。 此外,我将在时间序列类中添加“跳过柱线”事件,并将函数库的预备函数移至 CEngine 类,从而消减主程序代码中的过多负载。

用于交易事件和信号的语音通知系统

现如今,语音助手在人类生活中起着举足轻重的作用,因为我们会经常使用导航、语音搜索和翻译。 在本文中,我将尝试为各种交易事件、市场状态、或由交易信号生成的信号开发一个简单,且用户友好的语音通知系统。

概率论与数理统计示例(第一部分):基础与初级理论

交易总是需要在面对不确定性时做出决定。 这意味着在做出这些决策时,其结局并不十分明朗。 如此看出建立数学模型的理论方法的重要性,它能够令我们以有意义的方式描述这种情况。

DoEasy 函数库中的时间序列(第四十六部分):多周期、多品种指标缓冲区

在本文中,我将继续改进指标缓冲区对象类,从而可在多品种模式下操作。 这为自定义程序中创建多品种、多周期指标提供了途径。 我会在计算缓冲区对象里添加缺失的功能,从而令我们可创建多品种、多周期的标准指标。

快捷手动交易工具箱:持仓和挂单操控

在本文中,我们将扩展工具箱的功能:我们将添加在特定条件下平仓功能,并将创建控制市价和挂单的表格,且能编辑这些订单。

计算数学表达式(第二部分)。 普拉特和分流场解析器

在本文中,我们基于运算符优先级的解析器,研究数学表达式解析和评估的原理。 我们将实现普拉特(Pratt)和分流场解析器,字节代码的生成和代码计算,查看如何在表达式中将指标用作函数,以及如何基于这些指标在智能交易系统中设置交易信号。

DoEasy 函数库中的时间序列(第四十五部分):多周期指标缓冲区

在本文中,我将着手改进指标缓冲区对象和集合类,从而可在多周期和多品种模式下操作。 我打算在当前品种图表上的任何时间帧内接收和显示数据缓冲区对象的操作。

计算数学表达式(第一部分)。 递归下降解析器

本文研究数学表达式解析和计算的基本原理。 我们基于预建语法树,实现运行于解释器和快速计算模式的递归下降解析器。

快捷手动交易工具箱:基本功能

如今,众多交易者切换至自动交易系统,这类系统可能需要附加设置,或是能够完全自动化并准备就绪。 然而,有相当一部分交易者更喜欢以旧有方式进行手动交易。 在本文中,我们将创建快速手动交易工具箱,用热键来一键执行典型交易操作。

神经网络在交易中的实际应用。 是时候进行实践了

本文提供了在 Matlab 平台上实际运用神经网络模块的讲述和指南。 它还涵盖了运用神经网络模块创建交易系统的主要方面。 为了能够在一篇文章中厘清复杂内容,我必须对其进行修改,从而在一个程序中组合若干个神经网络模块函数。