You have decided to study MQL5 trading strategies' programming language, but you know nothing about it? We have tried to examine MQL5 and MetaTrader 5 terminal from the newcomers' point of view and have written this short introductory article. In this article, you can find a brief idea of the possibilities of the language, as well as some tips on working with MetaEditor 5 and the terminal.
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих". - Страница 9 - Категория: статьи и техническая библиотека по автоматическому трейдингу
该 ExpertAdvisor 无法在 MT5 712 版本上运行,至少我无法运行。
出现了 "无法复制指标缓冲区 "的错误信息。
此外,该指标在编译时也会出现警告、
第 53 行" 类型转换可能 导致数据丢失"、
第 54 行 "可能使用了未初始化的变量'day_n'"。
第 62 行的 "可能在未初始化的变量'h_day'上使用"。
第 63 行的 "可能使用未初始化的变量'l_day'"。
能否请您纠正这些问题?
对于我们这些除了 MT5 还有其他软件背景的人来说,这本来是一个很好的例子。
这是一篇非常好的文章,适合初学者和来自 mql4 的用户,其中有一个很好的交易策略示例。
虽然代码中存在一些小缺陷(错误检查并不总是能实现),但如果按照作者的建议在分钟时间框架 内使用,EA 的运行效果会非常好。编译指标时的警告只是警告,并不妨碍您使用它和 EA。
谢谢。
向人们解释 mql5 并不容易。(就像编程书籍一样,90% 的人都不知道如何开始。例如,他们打开这本关于 C 语言编程的书,第一个 "简单示例 "就用很小的字体写了整整一页。在我的一生中,我只读过一本好的编程书,它可以教任何人编程。究其原因,这些书的作者可能都是优秀的程序员,但不幸的是,他们都是非常糟糕的老师。编程其实可以很简单,当我有更多时间的时候,我就会为MQL4 编程语言编写一个简单的教程来证明这一点。它适合所有人,甚至是完全的初学者。最大的错误是教人们语言的细节,他们的大部分工作应该是ctrl+C和ctrl+v,使用谷歌搜索命令,最重要的是--保持一切都非常简单。我懂 10 多种编程语言(我从 7 岁开始编程),但我仍然被这个 11KB 的 "简易示例"(!!!)的解释方式吓坏了。我想知道有没有真正的编程初学者通过这个例子学会了 MQL5。我对此表示怀疑,如果有的话,用一只手的手指就能数过来。
向人们解释 mql5 并不容易。(就像编程书籍一样,90% 的人都不知道如何开始。例如,他们打开这本关于 C 语言编程的书,第一个 "简单示例 "就用很小的字体写了整整一页。在我的一生中,我只读过一本好的编程书,它可以教任何人编程。究其原因,这些书的作者可能都是优秀的程序员,但不幸的是,他们都是非常糟糕的老师。编程其实可以很简单,当我有更多时间的时候,我就会为MQL4 编程语言编写一个简单的教程来证明这一点。它适合所有人,甚至是完全的初学者。最大的错误是教给人们语言的细节,他们的大部分工作应该是ctrl+C 和 ctrl+v,使用谷歌搜索命令,最重要的是--保持一切都非常简单。我懂 10 多种编程语言(我从 7 岁开始编程),但我仍然被这个 11KB 的 "简易示例"(!!!)的解释方式吓到了。我想知道是否有真正的编程初学者通过这个例子学会了 MQL5。我对此表示怀疑,如果有的话,用一只手的手指就能数过来。
你说程序员一般都不是好老师是对的。
但我不同意您说 mql5 是如此难学,主要是对于一个尝试过 10 多种语言的程序员来说。
在实践中,就我的记忆而言,可以改变仓位的一个水平(SL 或 TP),而其他水平保持不变,甚至当保持不变的水平比SYMBOL_TRADE_STOPS_LEVEL 参数中指定的水平更接近当前价格 时也是如此。在创建程序时,我不建议改变头寸参数(水平),使新的头寸参数(水平)不符合检查头寸数据正确性的要求,因为这种情况没有记录,将来可能会得到不同的结果。
大家好!
只有当
request.type_filling=ORDER_FILLING_IOC;
request.type_time =ORDER_TIME_DAY;
https://www.mql5.com/ru/forum/1156/page9#comment_2359257 也有类似情况
这是我的经纪商 FxPro 的特殊情况吗?
我是mql5 编程 方面的新手。
我想通过这个示例来学习,但我对建立指标末尾的循环有点迷茫。他到底在哪里给 day_n 变量赋值?
因为循环会检查day_n<day_t。程序如何知道 day_n 的值?
它又是如何计算出来的?让我们假设 rate_total = 10,并且还没有计算过的条形图。因此 prev_calculated = 0
day_t=time[0] (今天!因为是倒数)/PeriodSeconds......因为是从 1970 年开始计算,所以假设是从 10 天前开始计算。
所以 day_t=10.现在检查 dayt 是否大于 dayn。我不知道 dayn,但我知道 dayt=10。因为没有值,所以我会假设 dayn 为零。
那么 dayn 也就变成了 10。好的。
prev_calculated + 1= 1。
DayT=time[1](昨天)/period......记住,是从 10 天前开始计算......但现在只计算到昨天,应该是 9,对吗?
但现在 dayN < dayT 是假的。然后开始执行 else 表达式。好吧,我明白了。我明白了。
然后计算所有的 bu[] 和 bd[]。好的。当 prev < 总比率为假时,循环结束。
但是,当新的条形图出现,并且它再次变为 true 时,我会再次从零开始计算吗?还是从 10 开始,直接进入 else 部分?
谢谢!!!!