任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 935

 
大家好!这个问题:是否可以将数组元素 的索引转移1个单位,而不需要再创建一个类似的数组,并将第一个数组的信息逐一复制到其中(然后再复制回去)?事实上,在MT4中,它是以某种方式在时间序列的数组中进行的(当一个新的条形图形成时,索引0被分配给它,并且数组中所有以前的元素的索引被移位1个单位)。
 
FxRoller:
大家早上好!这个问题:是否可以将数组元素的索引转移1个单位,而不需要再创建一个这样的数组,并将第一个数组的信息逐一复制到其中(然后再返回)?事实上,在MT4中,它是以某种方式在时间序列的数组中进行的(当一个新的条形图形成时,索引0被分配给它,并且数组中所有以前的元素的索引被移位1个单位)。

我加入的问题是:使用内置函数将数组的N维向右或向左移动M个元素会很方便。

据我所知,目前你必须通过一个循环来转移,定义数组的大小。使用动态的难度较大(+数据不会丢失)。

 
kosmos0975:

我加入的问题是:使用内置函数将数组的N维向右或向左移动M个元素会很方便。

据我所知,目前你必须通过一个循环来转移,定义数组的大小。更难使用动态(+数据不丢失)。

SetIndexShift()没有帮助吗?

设置指标线 相对于图表开头的移动。

voidSetIndexShift(
intindex,// number)
int shift// offset
)。

参数

指数

[in] 行的顺序号。必须从0到7。

移位

[in] 移位值,单位为条。

返回的值

没有

注意事项

正值使线型图像向右移动,负值使其向左移动。在当前条形图上计算出的数值会以相对于当前条形图的指定偏移量绘制。

例子。

 

你也可以用一个偏移量将一个数组复制到 它自己。

int  ArrayCopy(
   void&        dst_array[],         // куда копируем                           // сюда, понятно имя массива
   const void&  src_array[],         // откуда копируем                         // сюда тоже его
   int          dst_start=0,         // с какого индекса пишем в приемник       // сюда 0
   int          src_start=0,         // с какого индекса копируем из источника  // сюда, например с первого, значит 1
   int          count=WHOLE_ARRAY    // сколько элементов                       // сюда размерность массива минус 1
   );

所以数组将以1个元素的偏移量被复制到自身。零将被丢弃,而最后一个将是空的。相反,抛出最后一个元素,我没有试过,但我认为你可以正确设置函数的最后三个参数。

 
AlexeyVik:

你也可以用一个偏移量将一个数组复制到它自己。

所以数组将以1个元素的偏移量被复制到自身。零将被丢弃,而最后一个将是空的。另一种方式,抛出最后一个元素,我没有试过,但我认为函数的最后三个参数可以正确设置。


我没有试过,但它对改变索引方向 可能是有用的。

P.S. 我有一些关于策略测试器的问题。你能帮忙吗?

 
kosmos0975:

没有试过,但改变索引方向可能会很方便。

P.S. 有关于策略测试器的问题。你能帮忙吗?

你的意思是在复制一个数组本身后改变索引方向 吗?有必要吗?我认为从零号索引复制而不复制最后一个索引,并从第一个索引粘贴是没有问题的,而零号索引将保持空或旧值,没有关系,因为需要这个程序不仅仅是为了复制,而是专门为了用一个新值替换数组中的一个值(零或最后一个)。相应地,在这种复制之后,"空出的 "元素被填充了新的值。而且里面剩下什么也不重要了。

在测试器上,如果我可以的话--我将提供帮助。但这里有更多值得建议的人。

 

控制信号和打开位置的控制由指示器来完成。开仓和平仓的命令是通过终端的全局变量发送到专家顾问的。

使用指标很方便,因为有很多指标,你可以同时看到几个逻辑块的工作。

问题。在策略测试器中,该指标可以与OrderSelect()函数OrdersTotal() 等一起工作。

 
AlexeyVik:

你的意思是在将数组复制到自身后,将索引的方向反过来吗?这真的有必要吗?我认为从零号索引复制而不复制最后一个索引,并从第一个索引粘贴是没有问题的,而零号索引将保持空或旧值,不管怎样,因为这个过程不仅仅是为了复制,而是专门为了用一个新值替换数组中的一个值(零或最后一个)。相应地,在这种复制之后,"空出的 "元素被填充了新的值。而且里面剩下什么也不重要了。

在测试器上,如果我可以的话--我将提供帮助。但这里有更多值得建议的人。

拷贝前和拷贝后。
 
我没有查过,但有什么能阻止你自己去查呢?你只需要在EA名称下保存带有所有指标的模板,然后当你在测试器中启动EA时,所有指标都将被加载,并且可能 会正确工作。但有可能他们会从 "交易 "和 "账户历史 "标签中取值。
 
kosmos0975:
拷贝前和拷贝后。
为什么用左手的手指抓右耳?或者脚...我只是说,第二种选择,由于缺乏必要性,没有得到检验。但从逻辑上讲,它的工作是没有任何问题的。