新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1209

 
Oleg:

同事们,请告知为什么当蜡烛的理想音量时,声音会停止播放。

声音文件在SOUNDS文件夹中,当我设置警报时,文件在正常播放,但指示灯中没有声音。

或者,你需要一个专门的文件夹,里面有指标的声音吗?


/----指标计算的 主循环

for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
Range=(high[bar]-low[bar])/_Point;
IndBuffer[bar]=Range;

if(Range<5)
{
如果(prev_calculated > 0 && Flag==0)
{
Flag=1;
}
}
if(Range>=Threshold){
clr=0;
if (prev_calculated > 0 && Flag==1 )
{
Flag=0;

PlaySound("zummer");


}
}

for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
  Range=(high[bar]-low[bar])/_Point;
  IndBuffer[bar]=Range;

  if(Range<5)
  {
    if (prev_calculated > 0 && Flag==0)
    {
      Flag=1;
    }
  }

  if(Range>=Threshold) {
    clr=0;
    if (prev_calculated > 0 && Flag==1 )
    {
      Flag=0;
      ResetLastError();
      PlaySound("zummer");
      Print(__FUNCTION__, " Error #", GetLastError());
    }
  }
}



并在这里发表它所给出的错误。

 
Иван:
你好。问题:如果测试的账户是美元账户,在测试器中使用交叉盘(没有美元的货币对)时,测试器如何计算MT4中的平仓 结果?对于以美元为单位的头寸总额的重新计算,测试者是采用当前时刻还是测试区间时刻的交叉盘基础货币 对美元的汇率?我强烈怀疑,在目前的情况下是这样。如果是这样的话,是不是可以让它在间隔期的时候计算?

Taras Slobodyanik:

读取每个刻度 本身的MODE_TICKVALUE。

好吧,让我们说它确实算。但是,怎样才能 "要求 "测试人员在结果表中显示我所计算的数值,而不是其弯曲的计算结果?
 
Mihail Matkovskij:

仔细看看这个例子https://www.mql5.com/ru/forum/160683/page1208#comment_17279150 。 你在那里没有发现任何东西...?

这是该功能。

你应该更小心一点!

也许我们没有理解对方,也许我没有准确地表述我的问题,但是....,我仔细看了MQL4参考资料和MQL5 参考资料中的所有函数列表

我没有找到这个函数

searshValue(double & array2D[2][], const int _len, const int _index, const double _value)

我没有找到任何东西。我看了你链接上的例子。我看到了具有未知功能的代码。但我还没有找到我的问题的答案--这个功能来自什么语言。如果它在MQL4和MQL5,我想它会在它们的目录中的函数列表 中。

然后我就认为这是一个自定义函数。但Kovalev的文章说,自定义函数的计算是在start()
的下限之外进行的。而且我还读到,在MT中编写代码时,可以使用其他语言的函数,而不仅仅是MQL4和MQL5

带有标识符CONST的变量被列为该函数的参数。我在MQL4 中从未遇到过它们,这也让我感到困惑
我知道你的编程技能与我相差很多个数量级。我只是处于理解的开始阶段。我请求你们不要严格地评判我,如果我打算荒唐地问一些愚蠢的问题,请对我宽大处理。如果你能给我发一些我需要的信息的链接,或者告诉我在哪里可以阅读,我将非常感激。

还有一件事....我已经创建了一个新的EA,复制了你发给我的第一个代码,编译代码时没有出错。我没有做任何改动 ...我非常惊讶,在测试器中运行EA后,账本中缺少Print()函数。虽然它在我们的EA中已经执行了很多次。
再次感谢您的信息支持和宝贵信息。

 
ANDREY:

也许我们没有理解对方,也许我没有准确地表述这个问题,但....,我仔细看了手册中所有功能的清单......

安德烈,不要以为我在严厉地评判你。如果你不明白一个函数的来源,可以右击它并选择 "移动到Alt+G定义"。如果你不知道什么,也不要感到尴尬。这很正常。

如何学习如何编程。要做到这一点,你需要回答这个问题,它是为了什么?如果是用于创建交易机器人和技术分析程序,那就只有MQL中的相关例子、课程和文章。也许甚至是书。然而,当我熟悉了MQL后, 我已经学得很好了,所以我没有读过任何书,只是看了文档。我建议你首先要了解什么是程序。要做到这一点,就要从研究MQL事件模型开始:https://docs.mql4.com/ru/basis/function/events 。 这是一个基本模型。如果你已经掌握了它,你可以轻松地继续前进。也许这对你有帮助:MQL5入门:编写一个简单的专家顾问和指标(我用了搜索引擎)。更多:语言的基础知识.特别是:函数调用传递参数(你有问题的地方)。如果你在学习期间有问题(会有的),你可以使用谷歌搜索或YouTube。或者在这里提问。理想情况下,学习C++ 就好了。如果你在谷歌上搜索关于语法的东西,你也可以添加 "C++"

Функции обработки событий - Функции - Основы языка - Справочник MQL4
Функции обработки событий - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
В языке MQL4 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL4: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
 
Mihail Matkovskij:

安德烈,不要以为我在严厉地评判你。如果你不明白这个或那个功能是怎么来的,可以右击它,选择 "转到Alt+G定义"。如果你不知道什么,也不要感到尴尬。这很正常。

如何学习如何编程。要做到这一点,你需要回答这个问题,它是为了什么?如果是用于创建交易机器人和技术分析程序,那就只有MQL中的相关例子、课程和文章。也许甚至是书。然而,当我熟悉了MQL后, 我已经学得很好了,所以我没有读过任何书,只是看了文档。我建议你首先要了解什么是程序。要做到这一点,就要从研究MQL事件模型开始:https://docs.mql4.com/ru/basis/function/events 。 这是一个基本模型。如果你已经掌握了它,你可以轻松地继续前进。也许这对你有帮助:MQL5入门:编写一个简单的专家顾问和指标(我用了搜索引擎)。更多:语言的基础知识.特别是:函数调用传递参数(你有问题的地方)。如果你在学习期间有问题(会有的),你可以使用谷歌搜索或YouTube。或者在这里提问。理想情况下,学习C++ 就好了。如果你在谷歌上搜索关于语法的东西,也可以随意添加'C++'

谢谢你的建议和提示。对我来说,这一切都始于几年前我在莫斯科的Teletrade做了一个免费的外汇课程,出于无事可做和想把我的闲钱放在某个地方的愿望。但在完成课程后,我马上就明白了,胡乱交易是保证亏钱的......。尽管偶尔会有胜利。这就是为什么我做了一个坚定的决定,在我有一个系统之前,不要用自己的钱去赌博,在我毕业之前,我甚至没有一台PC。我不是一个数学家。自从我买了电脑和MT4后,我无法将自己从电脑和MT4上撕下来,直到这一刻。我在观察自己,不明白这种不可抗拒的非理性的渴望从何而来。我不认为这只是钱的问题。我对钱很有兴趣。我不工作,所有的时间都在我手上。而且我需要一些东西来占据它,这样它就不会拖得太长。我注意到,当我学习外汇和编程时,时间过得很快,而且不引人注意,所以,在我从课程毕业后,我花了很长时间来掌握计算机,同时我盯着MT上的图表,试图了解价格如何以及为什么向一个方向移动。可以说,我对这张图很着迷,也很陶醉,它在我的大脑中形成了强大的主导地位。随着我对计算机、互联网和外汇的理解不断深入,我了解到了算法交易,并决定阅读相关资料。而且它还吸引了我,以至于我甚至从科瓦列夫的教程中学习了一点编码。我越是理解书中的材料,并试图在编码时应用它,就有越多不同的想法出现在我的脑海中,我试图将其编码。但几个月前,我意外地看到一个模式,它在欧元-美元和美元对上出现得非常清楚。我设法对这个模式进行编码。而测试器中带有此代码的专家顾问自2008年以来一直在测试器中绘制平衡图,该图在可接受的缩减下不断向上移动。这是一个额外的强大动力,使我更加热衷于研究MQL4编程。目前,我还没有很好地掌握它,无法开始学习MQL5

再次感谢您的链接和评论。

这是一个平衡图

我有一些想法,如何使这个图表更加优化。但我还没有足够的经验来给它们全部编码。

 
ANDREY:

当你学习了MQL4并转到MQL5时,它将更多地拉动你。:)

 
Mihail Matkovskij:

当你学习了MQL4并转到MQL5时,它将更多地拉动你。:)

让我们看看它有多快发生...

 
Mihail Matkovskij:

如果你不明白一个函数是怎么来的,可以右击它并选择 "转到Alt+G定义"。如果你不知道什么,也不要感到尴尬。这很好。

这对我来说是一个有价值的菜单项目。我很高兴从你那里听说了它和它的功能。但由于某些原因,这个项目对我不起作用。我已经尝试了不同的选择。

将光标悬停在函数上(在其括号前的位置),然后右键点击。上下文菜单"Goto Alt+G "被激活我点击了它,但什么也没有发生。我在英语和 大写字母中按下Alt+G,没有任何 反应。

我想我应该被扔到帮助中,或者说在用鼠标右键描述功能的地方。
我有MT-4 build 1260
我读了MetaEditor的帮助,但没有找到任何关于这个功能的内容。而这个项目对我来说是非常有价值的。也许MetaEditor中缺少一些设置?
如果你能分享你的想法,为什么这个项目对我不起作用,我将非常感激。

这是我的MetaEditor的工具条。许多按钮并不活跃。会不会是关于这些按钮中的一个?


 
ANDREY:

谢谢你的建议和提示。对我来说,这一切都始于几年前我在莫斯科的Teletrade参加了一个免费的外汇课程,当时我无事可做,只是想把自己的闲钱放在某个地方。但在完成课程后,我马上就明白了,胡乱交易是保证亏钱的......。尽管偶尔会有胜利。这就是为什么我做了一个坚定的决定,在我有一个系统之前,不要用自己的钱去赌博,在我毕业之前,我甚至没有一台PC。我 不是一个数学家。 自从我买了电脑和MT4后,我无法将自己从电脑和MT4上撕下来,直到这一刻。我在观察自己,不明白这种不可抗拒的非理性的渴望从何而来。我不认为这只是钱的问题。我对钱很有兴趣。我不工作,所有的时间都在我手上。而且我需要一些东西来占据它,这样它就不会拖得太长。我注意到,当我学习外汇和编程时,时间过得很快,而且不引人注意,所以,在我从课程毕业后,我花了很长时间来掌握计算机,同时我盯着MT上的图表,试图了解价格如何以及为什么向一个方向移动。可以说,我对这张图很着迷,也很陶醉,它在我的大脑中形成了强大的主导地位。随着我对计算机、互联网和外汇的理解不断深入,我了解到了算法交易,并决定阅读相关资料。而且它还吸引了我,以至于我甚至从科瓦列夫的教程中学习了一点编码。我越是理解书中的材料,并试图在编码时应用它,就有越多不同的想法出现在我的脑海中,我试图将其编码。但几个月前,我意外地看到一个模式,它在欧元-美元和美元对上出现得非常明显。我设法对这个模式进行编码。而测试器中带有此代码的专家顾问自2008年以来一直在测试器中绘制平衡图,该图在可接受的缩减下不断向上移动。这是一个额外的强大动力,使我更加热衷于研究MQL4编程。目前,我还没有很好地掌握它,无法开始学习MQL5

再次感谢你的链接,感谢你让我走上正确的道路。

这是一个平衡图

我有一些想法,如何使这个图表更加优化。但我仍然缺乏经验来编纂这些想法。

对于一个程序员来说,最重要的是能够设定一个任务,并找到解决它的方法。而这就定义了一种数学思维方式。如果你能改变你的心态,上帝保佑。

而如果你想用mql4写作,会一直看mql5的文档 来寻找语言之间的相似性,那么考虑到处理了mql4,你就已经处理了mql5。这些语言是如此相似,以至于列出差异比列出相似之处更容易。

科瓦廖夫的教科书是很久以前写的,在大多数情况下,在你写东西之前,你需要找到现代的方法,尽管教科书中的例子所使用的方法在一段时间内会有效。

这篇文章 可能有很大的帮助,不仅是转换到mql5,而且还能理解Sergei Kovalev描述的mql4和现代mql4之间的区别。
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
Alexey Viktorov:

对于一个程序员来说,最重要的是能够设定一个问题并找到解决问题的方法。而这正是数学思维方式的定义。如果你能够改变你的心态,上帝会帮助你。

而如果你试图用mql4写作,不断地翻阅mql5的文档 以寻找语言的相似性,那么考虑到处理过mql4后你已经处理过mql5了。这些语言是如此相似,以至于列出差异比列出相似之处更容易。

科瓦廖夫的教科书是很久以前写的,在大多数情况下,在你写东西之前,你需要找到现代的方法,尽管教科书中的例子所使用的方法在一段时间内会有效。

谢谢你提供的宝贵信息。

关于数学思维方式。由于我是从零开始....虽然太长....我对科瓦廖夫的教科书有些熟悉,甚至还学会了写一些原始的代码,这些代码在编译时不会出错,甚至还编了一些类似于 "grail "的代码.....,这说明我的思维方式正在向我需要的方向转变.....,在我看来是这样。
请告诉我是否可以...你能在MetaEditor 4中运行MQL5函数吗?

谢谢你