错误、漏洞、问题 - 页 604

 
Urain:

符号和周期不一定要与图表相等,你可以从其他时间框架和符号中选择。

我只是对这个问题感到惊讶(这就是为什么我不明白),它在iCustom()的描述中

PS 获取计算指标的数据是通过CopyBuffer()函数 进行的,你需要指定它的句柄和缓冲区的编号(描述在手册中)。

PPS iCustom启动指标计算流程,CopyBuffer接收指标数据。

对不起,我已经注意到 "CCFp_2 "和 "CCFp__2 "在拼写上的差异,很烦人。问题删除。
 
sergeev:

那又怎样?

你是否有义务把这个指标扔给某种货币。

总之,别费劲了--去看看吧。

就我个人而言,一切都对我有效。我从专家顾问中调用它,甚至把它扔在图表上。

烦请原谅,没有立即注意到 "CCFp_2 "和 "CCFp__2 "的书写区别。问题被驳回。
 
我不明白为什么在Comment(第114行)ArrayMaximum和ArrayMinimum 不断显示199,尽管 "c"(第三个参数ArrayMaximum/minimum)不断增加...
附加的文件:
 
Graff:
我不明白为什么在Comment(第114行)中ArrayMaximum和ArrayMinimum总是显示199,尽管 "c"(第3个参数ArrayMaximum/minimum)不断增加。

如果第110行。

      while(wcond && y>=0 && c>=0 && !IsStopped())

用来代替。

      if(wcond && y>=0 && c>=0 && !IsStopped())

...那里开始有一些漫画...

一般来说,我怀疑很多嵌入式循环(包括ArrayMaximum的隐式循环),以及指标中的嵌入式循环,在每一个tick 上都会挂起终端!我认为这是不可能的。然而,如果Comment输出的不是极值的结果,而是一些变量c,那么在while的情况下就不会挂起。

此外,看看帮助。

int  ArrayMaximum(
   double  array[],               // массив для поиска
   int     start=0                // с какого индекса начинаем поиск
   int     count=WHOLE_ARRAY,     // количество проверяемых
   );

这里开始总是=199,而计数从0增加到200--因此所有的后果。例如,当i和c互换时,它开始移动。

         hm=ArrayMaximum(h,c,i);
         lm=ArrayMinimum(l,c,i);
直到它进入负数,出现终端错误:阵列超出范围。
 
Graff:
我不明白为什么在Comment(第114行)ArrayMaximum和ArrayMinimum不断显示199,尽管 "c"(第三个参数ArrayMaximum/minimum)不断增加...
   for(int i=calc_bars-1;i>=0;i--)// peaks loop//i=199
     {
      double pips_lh=0,pips_hl=0;
      int y=i,c=1;
      bool wcond=true;
      while(wcond && y>=0 && c>=0 && !IsStopped())
        {
         int hm=ArrayMaximum(h,i,c);//от 199
         int lm=ArrayMinimum(l,i,c);
         Comment(hm+" "+lm);
         double max_high=h[hm],min_low=l[lm];
         //Comment(max_high+" "+min_low);
         if(fabs(max_high-min_low)>min_pips)
           {
            HighestBuffer[hm]=h[hm];
            LowestBuffer[lm]=l[lm];
           }
         c++;// if h-l<min pips => add next bar
         y--;// new i
        }
      i=y;//цикл for где-та тут и заканчивается, т.е. выполняется 1 раз, когда i=199.
     }
 

下午好,请告诉我可以和谁联系以下问题--MT5在我的第二台电脑上无法工作--我已经尝试了所有可能的方法--我更换了操作系统和供应商,但就像一个邪恶的命运让我无法在我的电脑上看到终端...

moby_dick:

帮助我,请理解 - MT5在我的台式电脑上工作,但它不想在我的笔记本电脑上工作 - 说没有连接到MetaQuotes-Demo...我无法从MT5的第一个版本开立新的模拟账户,也无法连接到在另一台电脑上创建的模拟账户...两台电脑都是Windows XP Pro SP3,我的互联网连接是一样的,禁用杀毒软件和防火墙也没有帮助......也许有一些需要安装的强制性组件?

提前感谢 - 我99.9%的时间都在用我的笔记本电脑...


什么是厄运以及如何应对厄运?

正如我在上面写的(帖子11.01.2010 14:03),MT5从第一个版本到最后一个版本都顽固地不想在我的笔记本电脑上工作...我最近买了一台新的笔记本电脑,它坏了,我又买了一台新的,有多核芯片等......我希望能够让MT5在本地工作,而不是像过去两年那样从VPS上工作,但安装MT5时,我得到了一个代理提示,我无法绕过......我记得MT5应该不用安装,所以我从VPS复制了MT5目录并尝试运行...运行时没有任何问题,但立即像以前一样崩溃了......管他呢,鞋匠不是没有靴子,但他只在地球另一端的万国邮联的照片上看到自己的靴子......可以做什么?

 
moby_dick:

下午好,请您告诉我可以就以下问题与谁联系--MT5在我的第二台电脑上无法工作--我尝试了一切--我更换了操作系统和供应商,但就像被一只邪恶的手,我无法在我的电脑上看到终端...

给服务台一份申请。你需要详细资料,我们会努力解决。
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 

嗨!标准库 MovingAverages.mqh

//+------------------------------------------------------------------+
//| Simple Moving Average |
//+------------------------------------------------------------------+
double SimpleMA(const int position,const int period,const double &price[])
{
//---
double result=0.0;
//--- check position
if(position>=period && period>0)
{
//--- calculate value
for(int i=0;i<period;i++) result+=price[position-i];
result/=period;
}
//---
return(result);
}

事实证明,SimpleMA函数不能得到整个数组的平均值!这是不可能的。假设有一个有100个元素的price[]数组。我需要得到它的平均值。我把它传到函数中。

SimpleMA(99, 100, price)。

我得到0,因为99<100。是什么阻止了我将周期(在代码中突出显示)纠正为(周期-1)?

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
向开发者提问。新构建的功能包括CHART_EVENT_MOUSE_MOVE事件。

是否会引入CHART_EVENT_MOUSE_DOWN和CHART_EVENT_MOUSE_UP事件?

没有它们,你就不可能有全面的拖放。

 
Vigor:
向开发商提问。新构建的功能包括CHART_EVENT_MOUSE_MOVE事件。

你会添加CHART_EVENT_MOUSE_DOWN和CHART_EVENT_MOUSE_UP事件吗?

没有它们,拖放就不是一个完整的解决方案。

我支持这一要求。

现在我们必须使用GetCursorPos+GetKeyState函数。
有了EVENT_MOUSE_MOVE的出现,我们就不需要GetCursorPos,有了MOUSE_DOWN和MOUSE_UP,我们也就不需要GetKeyState。

MQL5程序将首先提高互动性和对用户行动的响应能力。第二--将能够在市场上出售,因为他们将不再使用DLL。


请给servicedesk写一份申请(你可以用这个帖子的说明)。我相信在你发布新的建设时,会有时间来添加。实施起来并不困难。
特别是由于这已经符合开发者的利益--因为标准 控件 的开发正在进行中。

PS。

我非常高兴公司自己决定创建一个控件库,并意识到(遇到)给予这些功能是根本必要的。
我希望在功能和可用性方面的改进将继续下去。