[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 212

 
大家下午好!两个MAs在图表上交叉了很多次,有没有可能在每一个MAs交叉后计算条数。在最后一个MAs后可以工作,但在每一个后都不行。
 
MK07:
如果我们想检查每一次MA交叉后的条数,我们可以计算最后一次之后的条数,但不是每一次之后。

这取决于你需要它做什么。对EA来说是一种算法,对指标来说是另一种算法。

一般来说,大约如下:让我们创建一个变量,我们将在其中存储交叉点的数量。你可以创建两个变量--用于向上和向下,例如Intersection_UP Intersection_DN

在循环之前,我们用零来初始化它们。

创建从第一根柱子到Bars 的循环:for (int i=1; i<Bars; i++) { // 循环主体,我们计算交叉点。}.

在条形图上的每个交叉点i ma1从下往上ma2增加Intersection_UP, 在条形图上的每个交叉点 i ma1从上往下ma2增加 交叉点_DN

在周期结束时,我们有两个变量,即向上和向下交叉的次数。将它们相加,得到交叉口的总数

 
MK07:
大家下午好!两个MAs在图表上交叉了很多次,有没有可能在每一个MAs交叉后计算条数。在最后一个MAs后可以工作,但在每一个后都不行。

这很简单。你修复交叉点,并创建一个计数器。当有一个交叉点时,计数器每交叉一次就增加1个柱子。当有一个交叉点时,另一个计数器开始计数。
 
alsu:

我们不了解对方,显然

一般来说,问题的位置是确定的--变量静态。

但是,为什么一个带有这个变量的函数与指标编译在同一个文件中时没有问题(重新初始化成功,一切正常),但当我解决放在库中的同一个函数时,却出现问题?

也许对库函数中某些类型的使用有一些限制?

 
喂?
 
polycomp:

一般来说,问题的位置是确定的--变量静态。

但是,为什么带有这个变量的函数,在与指标相同的文件中编译时没有问题(重新初始化成功,一切正常),但当我解决相同的函数,放在库中时,就有问题了?

也许对库函数中某些类型的使用有一些限制?



我不是开发人员,只能进行猜测。因此,我认为在改变参数后重新初始化时,ex4并没有从内存中卸载,因此在新的启动时,我们得到的是与之前相同的库的拷贝,包括所有的静态数据和它们的旧值。

在概念上,程序的所有静态都应该在调用init()之前被初始化。但ex4库只在第一次调用库函数的时候立即加载,所以没有库的静态数据进入公共堆。

这样看整个事情,解释是很有道理的。

 

下面是StringGetChar 函数https://docs.mql4.com/ru/objects/ObjectFind

为什么需要它呢?

根据教科书,它将一个字符的值作为一个数字返回。在这里,"c"对应的数值是99。我怎么能理解它呢?这个功能有什么用?

所以它返回一个数字......它是做什么的呢?

我想学习如何处理字符串,所以我遇到了这个函数。这就是我问的原因

 
alsu:

我不是开发者,只能猜测。所以,我认为在参数改变后的重新初始化过程中,ex4并没有从内存中卸载,所以在新的启动过程中,我们得到了和以前一样的库的拷贝,包括所有的静态参数和它们的旧值。

在概念上,程序的所有静态都应该在调用init()之前被初始化。但ex4库只在第一次调用库函数的时候立即加载,所以没有库的静态数据进入公共堆。

这样看整个事情,解释是很有道理的。


谢谢你的澄清!看起来最好不要在图书馆中使用静态学。
 

我脑子里有一个3000个相同类型的值的数组。

但我不太明白如何用这些值初始化一个一维数组。

我不明白 - 当初始化一个数组时,我应该在赋值运算符 中指定所有3000个用逗号分隔的值吗?

int Mas_i[3000]= { (Bid>1.2153)&&(Bid<1.2160) , (Bid>1.2156)&&(Bid<1.2163) ...我真的需要列出所有3000个表达吗?}

请给我一个提示,或者告诉我在哪里读。我在S.Kovalev..... 的教程中似乎找不到这个问题的答案,或者我不明白。

谢谢你。

 
hoz:

下面是StringGetChar 函数https://docs.mql4.com/ru/objects/ObjectFind

为什么需要它呢?

根据教科书,它将一个字符的值作为一个数字返回。在这里,"c"对应的数值是99。我怎么能理解它呢?这个功能有什么用?

所以它返回一个数字......它是做什么的呢?

我想学习如何处理字符串,所以我遇到了这个函数。这就是我问的原因


要写在图表中(不要与评论混淆)必须编码一个数字代码。你写99,字母 "s "就会出现在图表上。我还没有做,但你可以在Dock中找到如何做这一切,以及用什么字体、大小、X和Y轴方向的像素,等等。如果这就是你已经缺少的东西,那就去做吧,但这将需要大量的时间!好运!