错误、漏洞、问题 - 页 492

 
komposter:

绝对的,正是在所有这些方面。

谢谢你的提示。我完全忘记了OnTimer()。我通过它做到了,我很满意 )
 
Rosh:
有多少钱,就收多少钱。这就是理解它的方法。检查可用的历史深度。在要求提供数据之前,请确保数据是可用的。最近纠正了一个复制月度时间框架的错误,这可能是它。
在哪个版本中应该有一个修复?489中存在一个错误。
 
marketeer:
这意味着我们检查得很糟糕,或者EA不是多货币,它只是可能对不同的符号起作用。道理很简单--知道蜱虫在不同的时间来到不同的符号上。因此,如果一个EA是onTick EURUSD(例如),它检查GBPUSD,甚至只是GBPUSD的tick变化而不是EURUSD,结果将是不同的。特别是,在欧元兑美元上形成的条形可能在英镑兑美元上形成相同时间的条形之前发生。如果你在同一个柱子上交易英镑兑美元两次:之前的英镑兑美元柱子仍将被视为一个新的柱子(零)。至于多货币指标,一切都很清楚。学习基本知识。

这他妈是什么计算方法?"一对 "上有一个刻度,但如果第二个刻度晚了,就会出现 "F"。

也就是说,我们需要新条形图出现时的价格和刻度。

它在所有符号的新条形的发生中并不发挥作用,但它从

该策略取决于,如果你不是一个黄牛党

 

我想再次询问MQ团队,是否有计划使iCustom()函数达到工作状态。

目前,专家顾问的开发人员无法提供一个使用iCustom()的通用解决方案。

其中客户可以指定专家顾问所使用的外部指标的名称。

为此,客户需要拥有专家顾问的源代码,以及在专家顾问的代码中手动输入每个指标的名称,说起来是相当不方便的。

还有一个问题是强制性地明确指出指标缓冲 单元的值。

如果没有为指标文本中的指标缓冲区单元格明确指定数值(空或不空),iCustom()函数可以在专家顾问中的指定单元格中填写

与任何垃圾。我认为,这样的函数操作不能被认为是正确的。

 
MoneyJinn:

我想再次询问MQ团队,是否有计划使iCustom()函数达到工作状态。

目前,专家顾问的开发人员无法提供一个使用iCustom()的通用解决方案。

其中客户可以指定专家顾问所使用的外部指标的名称。

要做到这一点,客户需要有专家顾问的源代码,以及在专家顾问的代码中手动输入每个指标的名称,说起来是相当不方便的。

你可以在iCustom中传递一个被调用指标的动态名称,但每个自定义指标的参数集是不同的。

不幸的是,我们不知道 "在不知道将被调用的内容参数的 情况下,如何在不触及代码 的情况下安全地实现调用"这一问题的通用解决方案。

如果我理解正确的话,你想做一个插件系统,当第三方用户在EA设置中设置任何带参数的指标名称(例如,"MyIndicator(10,20,50,100)")。对于这种名字格式僵化的情况,你可以自己解析字符串,形成一个参数块,并以不同的参数集作为包装类实现对iCustom的动态调用。换句话说,具有不同参数集/数量的iCustom调用的几个变体将被隐藏在里面。


还有一个问题是,必须明确指出指标缓冲 单元的价值。

如果在指标文本中没有为指标缓冲单元明确指定任何值(空或不空),那么iCustom()函数可以在专家顾问的指定单元中填充

与任何垃圾。我认为,这样的函数操作不能被认为是正确的。

开发商不填满他完全可以支配的缓冲区,是厚颜无耻和彻头彻尾的懒惰。

运行时系统不知道你是如何使用指标缓冲区的,也无权用一些数值填充它,尤其是在大量超额分配的时刻(分页或图表更新)。当需要重新计算时,指标一定会通过OnCalculate(...,const int prev_calculated,...) 函数 和参数prev_calculated 被告知所有情况。

 
Renat:

在iCustom中,你可以传递一个要调用的指标的动态名称,但每个自定义指标都有自己的一套参数。

不幸的是,我们不知道 "我们如何在不干扰代码 的情况下安全地实现调用,不知道它将被调用什么 和带什么参数?"这个问题的通用解决方案。

如果我理解正确的话,你想做一个插件系统,当第三方用户在EA设置 中设置任何带参数的指标名称(例如,"MyIndicator(10,20,50,100)")。对于这种名字格式僵化的情况,你可以自己解析字符串,形成一个参数块,并以不同的参数集作为包装类实现对iCustom的动态调用。换句话说,具有不同参数集/数量的iCustom调用的几个变体将被隐藏在里面。

我所说的修改代码的必要性问题,是指在测试期间明确指定指标名称的要求。

格式的#property tester_indicator "Name.ex5",但不是指标的不同参数数。

指示器可以使用默认参数,只需选择相应信号的指示器缓冲区数量即可。

Renat:

这是开发商的厚颜无耻和纯粹的懒惰,没有填上他完全可以支配的缓冲区。

运行时系统不知道你是如何使用指标缓冲区的,也无权用一些数值填充它,尤其是在大量超额分配的时刻(分页或图表更新)。通过OnCalculate(...,const int prev_calculated,...) 函数 和参数prev_ calculated,指标必然被告知所有必须重新计算的情况。

在iCustom()中把Empty_Value分配给未使用的单元格,而不是用堆栈中的垃圾堵塞它们,这真的很难吗?

https://www.mql5.com/ru/forum/1111/72233#comment_72233

请注意,缓冲单元的实际值仍然是一个空值。篡改的是iCustom()。

 
MoneyJinn:

我所说的在代码中修改的问题必要性,是指在测试期间明确指定指标名称的要求

格式的#property tester_indicator "Name.ex5",但不是指标的不同参数数。

我们将进一步解决这个问题--有细微差别。

在iCustom()中给未使用的单元格分配Empty_Value,而不是用堆栈中的垃圾填充它们,这真的很难吗?

https://www.mql5.com/ru/forum/1111/72233#comment_72233

这是做不到的。请再次阅读我的回答。
 
Renat:

这是不应该的。请再看看我的回答。

我不清楚为什么iCustom()会给那些实际上没有填充任何东西的缓冲区单元格分配任意的值,也不清楚为什么不能以任何方式避免。

我想这与指标缓冲区 数据的相应数组的内存分配有关。

当无法确定数据的来源和真实性时,iCustom()的这种操作在我看来是不允许的,并为用户带来了额外的风险。

如果iCustom()为缓冲区单元分配任意的、与真实值不一致的值,无论如何。

为什么它不像MT4中实现的那样给这些单元格分配等于Empty_Value的值?

那么至少他们的地位会很清楚。

 
我不争论。
kPeriod2 = kPeriod1 * nextPriod;

Warning : possible loss of data due to type conversion
但这样一来
kPeriod2 = round(kPeriod1 * nextPriod - 0.5);

Warning : possible loss of data due to type conversion 
有一个四舍五入的问题,它还会说吗?
 
Lodar:
我不争论。
但这样一来
还有四舍五入的写法,应该是这样吗?


看看你的所有变量是否属于同一类型。然后是类型转换 部分。该警告是由隐式类型转换引起的,在编译时被检测到。
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5