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

 
leonerd:


我的代码中current_chart_id是1662429437,first_chart_id是1859831371,如何在终端浏览所有图表ID?ChartNext()已经返回-1。什么是ChartFirst()?

它首先意味着什么?先打开的?为什么它的ID大于当前图表的ID(顺便说一下,是后来打开的)?

很明显,这是因为长->int的转换。

 
Artyom Trishkin:

谢谢你,是的,它曾经是这样的。

 
谁知道如何创建for while循环等,我想用我的技术创建一个循环,我可以学习什么?
 
leonerd:

显然,这是因为长->int的转换。

没有这样的逻辑,见帮助https://www.mql5.com/ru/docs/chart_operations/chartnext 的例子。

图表ID数字的形成没有逻辑,也许它们是Windows手柄或其他数字,要在终端中查看所有的图表ID,帮助中的例子就足够了,我在kodobase中发布了建立第二个TF的指标,我使用了帮助中的例子--一切都像时钟一样工作--我找到了我的自定义图表--我记住了它的图表ID并在其上生成了ticks。


塞里奇29
谁知道while等的循环是如何创建的,我想用我的技术创建一个循环,我可以学到什么?

嗯,看到你的问题有几天了,你想听什么答案?- 这些是语言操作符,它们按照开发者的定义和帮助中的规定工作。在任何编程语言中,语言操作符都是 "按原样 "描述的--语言操作符总是 "按原样 "提供--不多也不少

这里是MQL4语言的操作符https://docs.mql4.com/ru/basis/operators- 它们 "就像这样" - 这是任何编程语言基础

 
Igor Makanu:

嗯,好几天了,我看到你的问题,你想听什么答案?- 这些都是语言操作符,它们按照开发者的定义工作,这在帮助中有所说明,语言操作符在任何编程语言中都不是 "按照安排 "描述的--语言操作符总是 "按照原样提供"--不多也不少

这里是MQL4语言的操作符https://docs.mql4.com/ru/basis/operators- 它们 "就像这样" - 这是任何编程语言基础

因此,他们没有被描述,一半的必要信息被隐藏起来,这很糟糕。我对它们的结构感兴趣。我想创建我自己的循环,结果发现在mql中至少有3个循环存在于c++和pascal中,这些循环也可以减轻工作,以减少检查和初始化不必要的标志和变量的数量,但我想创建我自己的,但我不能理解这些迭代是如何发生的,它是如何在任何代码块中完成的,你可以写一个循环和开放括号,这也包含代码。非常有趣的家伙,如果有人愿意写什么,请告诉我。

 
Seric29:

另外,事实证明,mql至少有3个循环是在c++和pascal中进行的

我在大学里同时学习了Pascal和C++,它仍然在那里。

C++ : for , while , do...while

Pascal:for,while,repeat

MQL: for , while , do...while

????


塞里奇29

因此,没有对它们进行描述,一半的必要信息被隐藏起来,这很糟糕。我想知道他们是如何工作的。

我甚至不知道如何解释你的问题的荒谬性,但我还是会尝试。

你: - "我在学习俄语,我需要知道字母表的工作原理"

我:"字母表没有结构,只有字母,它们组成了单词"(在MQL中,有大约十几个运算符,它们组成了程序https://docs.mql4.com/ru/basis/operators

你:"不可能!我知道津巴布韦语中的字母有很多含义!"

我:"不幸的是,我不懂这门语言,但在俄语中,一个字母的意思就是它是一个字母,你当然可以进行语音分析,但这并不能阻止一个字母成为单词的一个基本元素。

你说:"嗯,很奇怪,但在津巴布韦语中,如果你说'a'就是一个字母,如果你说'A'就意味着对你的房子的和平,如果你说'aaaaaah!'"- 这意味着我有最大的小弟弟!"- 你不可能不知道俄罗斯语言中的字母是如何排列的!- .... 中有隐藏的技术


这就是我对我们的对话的看法,对我的英语感到抱歉--我无法用其他方式来表达。

)))

 
Igor Makanu:

那里没有这样的逻辑,请看帮助实例https://www.mql5.com/ru/docs/chart_operations/chartnext

图表ID号码的形成没有逻辑,也许它们是Windows手柄或其他数字。 要在终端搜索所有的图表ID,帮助中的例子就足够了,我在kodobase中使用了一个建立sec-tF的指标。

ChartFirst()返回开放图表的最小ID?

 
leonerd:

ChartFirst()从打开的图表中返回最小的ID?

再次拒绝!- ChartFirst()的数字值没有意义

PZS: ......也许是错的,但我在某处读到,ChartFirst()返回的是首先打开的图表的ID,而不是你的图表序列中的第一个(你可以移动它),而是在客户终端中首先打开的那个 - 嗯,我不确定我这个说法是否正确


ChartFirst()给你一个起点,你可以用ChartNext()滚动浏览图表。 它看起来是这样的:获得第一个ChartFirst()的ID--记住这个值并把这个值传送给ChartNext()--以此类推,直到第一个ChartFirst()的值被重复--这意味着你已经滚动浏览了所有可能的图表。

这是KB中我的指标的代码--我在帮助中找到了它,检查后用它来寻找我的图表。

//+------------------------------------------------------------------+
//| поиск  идентификатора графика                                    |
//+------------------------------------------------------------------+
long CheckChart(string sym,int period,int &wh)
  {
   long result=0,id=ChartFirst();
   while(id>=0)
     {
      if(ChartSymbol(id)==sym && ChartPeriod(id)==period && ChartGetInteger(id,CHART_IS_OFFLINE))
        {
         result=id;
         ChartSetInteger(id,CHART_AUTOSCROLL,true);
         ChartSetInteger(id,CHART_SHIFT,true);
         ChartNavigate(id,CHART_END);
         ChartRedraw(id);
         wh=WindowHandle(sym,period);
         PrintFormat("Найдено окно графика: [%s,%d]",sym,period);
         break;
        }
      id=ChartNext(id);
     }
   return(result);
  }
//+------------------------------------------------------------------+
 
Igor Makanu:

还是不行!- ChartFirst()的数字值没有意义

SZY: ......也许是错的,但我在某处读到,ChartFirst()返回首先打开的图表的ID,不是你的图表序列中的第一个图表(你可以移动它),而是在客户终端首先打开的图表--一般来说,我不确定我对这个问题的看法是否正确。


ChartFirst()给你一个起点,你可以用ChartNext()滚动浏览图表。 它看起来是这样的:获得第一个ChartFirst()的ID--记住这个值并把这个值传送给ChartNext()--以此类推 直到第一个ChartFirst()的值被重复--这意味着你已经滚动浏览了所有可能的图表。

这是KB中我的指标的代码--我在帮助中找到了它,检查后用它来寻找我的图表。

很奇怪。在帮助中并没有提到 "直到第一个ChartFirst()值被重复 "的内容。在图表列表的最后,它返回 -1

返回的值

该图表的标识符。 如果图表列表已经结束,该函数返回-1。

Документация по MQL5: Операции с графиками / ChartNext
Документация по MQL5: Операции с графиками / ChartNext
  • www.mql5.com
Операции с графиками / ChartNext - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:

很奇怪。帮助中并没有说 "直到第一个ChartFirst()值被重复 "的内容。当图表列表结束时,它返回 -1

对不起--我是个罪人!我没有看,我在这个论坛上写东西的时候已经喝醉了!"。

原因: