错误、漏洞、问题 - 页 279

 
Rosh:
没有。
这就是为什么不能组织同步访问的原因:(()
 
Olegts:
这就是为什么不能组织同步访问的原因:(()。

你可以,在MT5中打开的带有分享标志的文件也可以用于任何其他程序,包括MT4。

请看这里 是如何做到的。

也就是说,如果文件已经在MT4中打开,Shaare标志将允许它在MT5中打开,不会有问题。MT4照常工作,而MT5可以允许其他程序使用它已经打开的文件,或者打开别人打开的没有shahre标志的文件。

 
Urain:

你可以,在MT5中打开的带有分享标志的文件也可以用于任何其他程序,包括MT4。

请看这里 是如何做到的。

谢谢你,我现在就去看看...
 
Olegts:
谢谢,我现在就去看看...
我看了一下,MT5写,MT4读,是可以的,但是如果MT4写,MT5不能读,因为文件被封锁了,至少对我来说是不行的......
 
数据类型描述中的帮助部分说。
<br / translate="no">

正因为如此,我们断然不建议将两个实数相互比较以求得相等,因为这种比较是不正确的。

并提出了一种特殊的比较方法。

如果你仍然需要比较两个实数是否相等,你可以...

但随之而来的一个逻辑结论是,不建议通过更大/更小的操作来比较实数,因为在上述意义上,这种操作只有在特殊方法首先正确地确定检查值不等于机器零时才是正确的。

也就是说,事实证明,实数的>和<运算符也不能以纯形式使用。我说对了吗?如果是这样,我为什么不在帮助中加入相应的评论?


但是,如果一个操作,例如>,只有在正确检查不等式之后才能使用,那么我们如何安排检查>=?是否有必要使算法更加复杂,即先检查平等,然后用一个特殊的函数(在使用>之前)检查不平等?


也许有人已经开发了一个库,适用于双数 和浮点数类型 的所有比较情况?我已经勾画出了一些双倍类型的东西--我不知道它是否正确。

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на равенство двух вещественных чисел типа double
bool EqualDoubles(const double d1, const double d2)
   {  
      const double epsilon=2.2204460492503131 e-016;//DBL_EPSILON
      if(d1-d2>epsilon) return false;
      if(d1-d2<-epsilon) return false;
      return true;
   }
// Конец функции проверки на равенство двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на неравенство двух вещественных чисел типа double
bool NotEqualDoubles(const double d1, const double d2)
   {      
      return !EqualDoubles(d1, d2);
   }
// Конец функции проверки на неравенство двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на меньшинство первого из двух вещественных чисел типа double
bool LessDoubles(const double d1, const double d2)
   {  
      if (NotEqualDoubles(d1, d2)&&(d1<d2))
      {
         return true;
      }
      return false;
   }
// Конец функции проверки на меньшинство первого из двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на большинство первого из двух вещественных чисел типа double
bool GreaterDoubles(const double d1, const double d2)
   {  
      if (NotEqualDoubles(d1, d2)&&(d1>d2))
      {
         return true;
      }
      return false;
   }
// Конец функции проверки на большинство первого из двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на меньшинство первого или равенство двух вещественных чисел типа double
bool LessEqualDoubles(const double d1, const double d2)
   {  
      if (LessDoubles(d1, d2)||EqualDoubles(d1, d2))
      {
         return true;
      }
      return false;
   }
// Конец функции проверки на меньшинство первого или равенство двух вещественных чисел типа double
//+++++++++++++++++++++++++++++++++++++++++++++++++
// Функция проверки на большинство первого или равенство двух вещественных чисел типа double
bool GreaterEqualDoubles(const double d1, const double d2)
   {  
      if (GreaterDoubles(d1, d2)||EqualDoubles(d1,d2))
      {
         return true;
      }
      return false;
   }
// Конец функции проверки на большинство первого или равенство двух вещественных чисел типа double

P.S. 如果prevcalculated==0的话,又可以照常工作。漂浮虫?

 

下午好!

我需要在交易信号模块中使用一个自定义指标

为此,据我所知,我需要在 "指标集合(timeseries?) "中添加一个指向该指标对象的指针,正如例子中所做的那样。

indicators.Add(GetPointer(m_MA)))

其中m_MA是CiMA类的一个对象。

iCustom和IndicatorCreate函数返回创建的指标句柄的整数值,但我需要这个指标的一个对象,按照我的理解。

请告知如何摆脱这种情况?

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 
lVlaxim:

下午好!

我需要在交易信号模块中使用一个自定义指标

为此,据我所知,我需要在 "指标集合(timeseries?) "中添加一个指向该指标对象的指针,正如例子中所做的那样。

其中m_MA是CiMA类的一个对象。

iCustom和IndicatorCreate函数返回创建的指标句柄的整数值,但我需要这个指标的一个对象,按照我的理解。

请告知如何摆脱这种情况?

据我所知,我应该在CiCustom 的基础上编写自己的指标对象(类似于CiMA的编写方式)。

我不能提供详细的建议,因为我没有与诱导剂一起工作过,但我认为你会明白,或者人们会告诉你正确的认识。

PS

顺便说一下,开发人员,请在CiCustom 的部分添加实例...

 
-Alexey-:

并提出了一种特殊的比较方法。

但这样一来,从逻辑上讲,即使通过大/小运算来比较实数,也是不推荐的,因为在上述意义上,这种运算只有在事先用特殊方法正确确定被检查的数值在机器零的意义上不相等时才是正确的。

也许我没有完全理解这一点,但是如果两个实数被比较,比如说,在"<"操作的帮助下,被检查的实数 "在机器零的意义上是相等的","<"操作将直接返回错误。这意味着 "第一个实数不比第二个实数少"。
 
lVlaxim:

下午好!

我需要在交易信号模块中使用一个自定义指标

为此,据我所知,我需要在 "指标集合(timeseries?) "中添加一个指向该指标对象的指针,正如例子中所做的那样。

其中m_MA是CiMA类的一个对象。

iCustom和IndicatorCreate函数返回创建的指标句柄的整数值,但我需要这个指标的一个对象,按照我的理解。

能否请您告知如何摆脱这种情况?

现在,以这个文件为例。

CSignalCustomMACD类与CSignalMACD绝对相同,除了它是基于标准交付的指标的 "自定义 "版本。

不要忘记在专家顾问的源代码中添加一行。

#property tester_indicator "Examples\MACD.ex5"

否则,它将无法在测试器中工作。

如果在Indicators/Examples文件夹中没有MACD.ex5文件,则必须对该指标进行编译。

在不久的将来,将在帮助中增加一个例子。

附加的文件:
 
Yedelkin:
也许我不太明白这个问题,但是如果两个实数用比如说"<"操作进行比较,而被检查的实数 "在机器零的意义上是相等的",那么"<"操作将只是返回错误,就这样。这将意味着 "第一个实数不小于第二个实数"。
这将是符合逻辑的,但现在操作">"了("<"没有检查)对于这种 "在机器零的意义上相等 "的数字可能会返回真。检测到这个效应是因为数值计算的结果比理论上可能的结果要大,但在使用了上面的特殊函数之后,这个效应就变成了真的。这就是为什么我提议在帮助中增加一个内容。