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

 
novichok2018:

你好!

我在论坛上发现了一个函数,它可以计算在一定的秒数内价格已经过了多少点 int ItemsPerSecond(const int seconds,MqlTick&tick).我把它放到代码中并编译了它--一切正常,但当我试图调用它时,编译器生成了错误的参数计数。

我做错了什么?

你不知道。

Документация по MQL5: Основы языка
Документация по MQL5: Основы языка
  • www.mql5.com
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...
 
novichok2018:

发生了什么事?

大家都在睡觉,还是他们已经灭绝了

笑了:)

 
Artyom Trishkin:

你不读。

伊戈尔-马卡 努:为荒谬的问题写答案 是懒惰的行为

先生们,"聪明的家伙"!

你总是忘记你是在哪个论坛的主题。我可以提醒一下:这个分支叫做"新手的任何 问题......"。如果你认为你能帮助新手(你在这里不是为了炫耀,是吗?),那么就没有必要怯懦地回答那些在你看来很傻很荒唐的问题,而这些问题如果没有你的帮助,新手很难理解。

这没有用--我在《语言研究》中至少读了二十遍 "函数调用",但我仍然不明白在这种特殊情况下应该输入什么参数。

所以,也许有人会超越胆怯,给我一些具体建议?

谢谢你。

 
novichok2018:

先生们,"聪明的人" !

你总是忘记你是在哪个论坛的主题。我可以提醒你:这个主题叫做" 新手的任何 问题..."。如果你认为你能帮助新手(你在这里不是为了炫耀,是吗?),那么就没有必要怯懦地回答那些在你看来很傻很荒唐的问题,而这些问题如果没有你的帮助,新手很难理解。

这没有用--我在《语言研究》中至少读了二十遍 "函数调用",但我仍然不明白在这种特殊情况下应该输入什么参数。

所以,也许有人会超越胆怯,给我一些具体建议?

谢谢你。

如果这是我的分支机构,我怎么会忘记呢?:)

"任何事情 "并不意味着我们可以谈论饮料的强度...任何,相当 "有意义 "的问题。而你所问的是任何编程语言的基础知识,你刚才的问题把人问住了--我应该开始教你基础知识吗?但这已经超出了本主题和论坛本身的范围。

我给了你一个帮助的链接--你把你的鼻子竖起来。相应地,以这种态度对待那些给你指出通往知识的道路的人,而不是 "只为你做一切",你会长期摇动人们说 "你为什么沉默,没有人知道还是什么?

帮助是关于函数和它们的形式参数的全部内容。而且,对不起,CodeBase 里有大量的例子。 打开任何代码,寻找任何有正式参数的函数的定义,看看它是如何被调用的...

嗯,这很简单--只要不偷懒,不等待天上的甘露,至少要搅动自己的灰暗物质。

我没有从学院毕业......我退伍后对为XZ Spectrum编写程序感兴趣。在BASIC中......我到了用汇编程序为它写程序的地步,然后就一直这样下去了。

而且没有论坛,我们三个人共用网络(一个今天,另一个明天,我后天)。而互联网是昂贵的,而且是通过电话线的调制解调器。
我在一个无线电跳蚤市场上买了编程书。现在,我的弟弟毕业于编程专业,正在向我请教如何做,做什么。
但我想学习,我对它充满热情。你呢?而你,在我看来,需要有人为你做一切。

 
Artyom Trishkin:

我没有从学术界毕业...我退伍后对为XZ Spectrum编写程序感兴趣。在BASIC中......我到了用汇编程序为它写程序的地步,然后它就一直持续下去了。

当时没有论坛,我们三个人共享互联网(一个今天,另一个明天,我后天)。而互联网是昂贵的,而且是通过电话线的调制解调器。
我在一个无线电跳蚤市场上买了编程书。现在,我的弟弟毕业于编程专业,正在向我请教如何做,做什么。
但我想学习,我对它充满热情。 你呢?而你,在我看来,需要有人为你做一切。

为你的坚持和决心点赞。你所说的一切当然值得尊重,但要求其他人也这样做是毫无意义的。此外,并不是每个想编写自己的机器人的人都会尝试学习编程语言。正如我上面所说,我没有这样的目标。如果你有一个如何做这个或那个的问题,你会在参考书、教科书、论坛上寻找解决方案,而不会太深入地去研究这个问题。也许这就是为什么会出现这样的情况,当看起来很简单的事情突然不清楚时。当然,通过 "扭动灰色物质",我还是会找到一个解决方案。是的,也许是挖了 "CodeBase 中大量的例子",浪费了很多时间。但是,如果你不说对新手的帮助,而是让他们深入研究语言,那就不清楚你为什么要创建这个主题,为什么这样称呼它。你应该这样称呼它--"一起学习MKL4和MKL5"。我想没有人愿意被帮助,只要解释一下什么是什么,或者给一个具体的提示就够了,不要给一个教科书的链接。如果一个人需要别人为他/她做什么,他/她应该具体地说:请给我写点什么,等等。

那么,他应该是白做了。祝你在进一步发展中好运。

 
novichok2018:

为你的坚韧和决心点赞。你所说的一切当然值得尊重,但我认为对每个人提出同样的要求是没有意义的。此外,并不是每个想编写自己的机器人的人都倾向于学习编程语言。正如我上面所说,我没有这样的目标。如果你有一个如何做这个或那个的问题,你会在参考书、教科书、论坛上寻找解决方案,而不会太深入地去研究这个问题。也许这就是为什么会出现这样的情况,当看起来很简单的事情突然不清楚时。当然,通过 "扭动灰色物质",我还是会找到一个解决方案。是的,也许是挖了 "CodeBase 中大量的例子",浪费了很多时间。但是,如果你不说对新手的帮助,而是让他们深入研究语言,那就不清楚你为什么要创建这个主题,为什么要这样称呼它。你应该这样称呼它--"一起学习MKL4和MKL5"。我想没有人愿意被帮助,只要解释一下什么是什么,或者给一个具体的提示就够了,不要给一个教科书的链接。如果一个人需要有人为他做什么,他们会特别说:请给我写某某某。

那么,他应该是白做了。祝你在进一步发展中好运。

你的话里有很多怨恨的成分。但你甚至还没有展示你的功能。
 
Artyom Trishkin:
字里行间充满了怨恨。但你甚至还没有展示你的功能。

这不是怨恨,而是挫折感。我还是个孩子的时候,已经很久没有被冒犯了。而且没有人要求提供这个功能,你却讽刺我。

好吧,这里的功能是。

int ItemsPerSecond(const int seconds,MqlTick &tick)
{
//---
   static MqlTick rates[];
   datetime time_start;
   int count=0,size;
   bool insert=false;
   double price_start=0;
   long msc=0;
//---
   time_start=TimeCurrent()-seconds;
   
   for(int i=0;i<ArraySize(rates);i++)
   {
      if(rates[i].time>0 && rates[i].time<time_start)
      {
         ZeroMemory(rates[i]);
      }
      else if(!insert && rates[i].time==0)
      {
         rates[i]=tick;
         insert=true;
      }
      if(rates[i].time_msc>0 && (rates[i].time_msc<msc || msc==0))
      {
         price_start=rates[i].bid;
         msc=rates[i].time_msc;
      }
      
   }
   if(!insert)
   {
      size=ArraySize(rates);
      ArrayResize(rates,size+1,300);
      rates[size]=tick;
   }
   if(price_start>0)count=(int)((tick.bid-price_start)/Point);
   
   Comment("size: "+IntegerToString(ArraySize(rates))+"\r\n"+"count: "+IntegerToString(count));
//---
   return(count);   
} 

而这里是我试图调用它的方式。

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

3是3秒(我想)。

 
novichok2018:

我在论坛上找到了一个函数,它可以计算在一定的秒数内价格通过了多少点 int ItemsPerSecond(const int seconds,MqlTick&tick),把它放在代码中,编译了它--一切正常,但当我试图调用它时,编译器给我一个错误的参数计数。

我做错了什么?


novichok2018

下面是我想叫它的方式。

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

阅读https://www.mql5.com/ru/docs/basis/functionhttps://www.mql5.com/ru/docs/basis/variables/formal 的帮助

你在调用的函数中有多少个参数?

int ItemsPerSecond(const int seconds,MqlTick &tick)



novichok2018

此外,并不是每个想编写自己的机器人的人都倾向于学习编程语言。正如我上面所说,我没有这样的目标。如果你有一个如何做这个或那个的问题,你会在参考书、教科书、论坛上寻找解决方案,而不会太深入地去研究这个问题。也许这就是为什么会出现这样的情况,当看起来很简单的事情突然不清楚时。 当然,通过 "扭动灰色物质",我还是会找到解决办法。

不幸的是,你还没有掌握MQL的东西,这不是自己写程序,你还没有学会手指上的任何东西..........你已经学会了英文字母 "Hey, B, C, D..."。现在你试图在论坛上用英语写 "Horosho",你被告知这不是英语知识,这是关于什么都没有....。你又开始得罪人了,这里是一个论坛,这里有一个支持新手的话题,我都看了!!!又是一圈,嘿,你真聪明!为什么是这个话题!我不是那种得罪人的人!!!。

 
Igor Makanu:


阅读帮助https://www.mql5.com/ru/docs/basis/functionhttps://www.mql5.com/ru/docs/basis/variables/formal

你在调用的函数中有多少个参数?



不幸的是,你甚至没有掌握MQL的东西,这甚至不是自己写程序,不幸的是,你没有学会手指上的任何东西....。你已经学会了英语字母 "嘿,B,C,D..."现在你试图在论坛上用英语写 "Horosho",你被告知这不是英语知识,这是关于什么都没有....。你又得罪了,这里是一个论坛,这里有一个支持新人的话题,我都看了!!!又是一圈,嘿,你们这些聪明人!为什么是这个话题!我不是那种得罪人的人!!!。

大量的信件,除了自恋和对对话者的羞辱之外,什么都没有。而第二个参数应该以什么形式插入?我把第二个参数问成一个数字,结果也一样。为什么有这么多 "字"?在我的例子上显示解决方案,预编译和测试。还是你膨胀的自尊心不允许?

 
novichok2018:

还是你膨胀的自尊使你无法这样做?

好吧,我行使不与你交流的权利(幸运的是你不能强迫我这样做),你行使在论坛上写作的权利,但不阅读提供给你学习的材料?

void OnTick()
  { 
  MqlTick t;
// судя по исходнику в t нужно скопировать тики и вызывать так:
ItemsPerSecond(3,t); 
  }

novichok2018

我按编号询问第二个参数,结果也是如此。为什么这么多字?给我看看我的例子上的解决方案,预编译和测试。

这是你的例子中 ItemsPerSecond()函数的 正确调用,我还没有编译、测试,也不打算运行终端--我已经回答了你的问题

原因: