新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 661

 
Roman Sharanov:

我需要在一个数组中存储引号的数组

要在一个循环中复制一次,然后使用ArrayCopy进行计算,而不是CloseCopy

当然,每个人都可以自由地做他/她想做的事。但为什么我们要把一个数组的元素逐一复制到另一个二维数组中,然后再对这个二维数组进行操作呢?我们不能进行同样的计算而不是复制吗?

还是我错过了什么?一个一维数组可以复制到一个二维数组的第二维吗?
 
Alexey Viktorov:

当然,每个人都有做自己喜欢的事的自由。但为什么要把一个数组的元素逐一复制到另一个二维数组中,然后再对这个二维数组进行操作?我们不能做同样的计算而不是复制吗?

还是我错过了什么?是否可以将一个一维数组复制到一个二维数组的第二维?

我有两个嵌套的循环,外部的有CopyClose,内部的有

而所有这些都是从数组中复制相同的字符。

我想在循环之前,在一个单独的数组中输入每一对的报价。

总之,我是这样做的,我把货币的 双数组包裹 一个结构,并做成一个结构数组

for(int i = 0; i<ACTIVES; i++){
      CopyClose(all_pairs[i], PERIOD_CURRENT, 1, calculation_period, pairs_data[i].currency);
      pairs_data[i].pair = all_pairs[i];
   }
for(int i = 0; i < ACTIVES-1; i++){
	 ArrayCopy(first_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
	//работа с firstData
	...
      
	 for(int k = i+1; k < ACTIVES; k++){
		 ArrayCopy(second_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
         	//Работа с secondData
         	...
      }
   }
 

我的朋友们,不解决这个问题我就无法入睡一段时间。

我使用的是一个指标,它定期!在收到一个tick后刷新自己。但有时现在就需要这种更新,但勾选是有延迟的,而在周末,市场在睡觉。
我必须在图表上点击右键--"刷新"。 不幸的是,我没有找到这个动作的热键。

我看到的最有效的东西是一个单独的高度专业化的指标/顾问,在图表上有一个按钮,按下它可以模仿一次性的 "刷新 "动作。 我试图用谷歌搜索解决方案,但没有成功...

既然主题叫 "新手的任何问题,帮助和讨论",我就敢问这个问题。
我希望在这个问题上有聪明人帮忙,或者至少戳穿一下--"究竟这个问题在这里已经讨论过了"。


 
Roman Sharanov:

密切的平均差异不等于密切的平均差异,唉,啊

嗯,这很明显!

但如果你进入接近平均数的空间,你就自动进入了一个不同的数学空间。

也就是说,你对移动平均线 进行积分转换,并有意识地(!!!! 在你的案例中,我的理解是,不完全是)留下报价的空间(通过Close,在你的案例中)。

也就是说,你有意识地放弃了报价(Close),进入了(积分)移动平均线空间。

没有人强迫你这样做。你自己做的,是你自己的自由意志,而且是相当有意识的。(!?)

但是!!!在这个新的(积分)空间里,我们必须用平均数的差异来工作,而不是报价。

在平均数的(积分)空间中,引号的差异没有任何意义!!。

而在积分平均空间中的平均引号差异也没有意义!!。

我希望这些简单的数学真理对你来说是清楚的。(!?)

------------------------------------------------------------------------------------------------

而你所得到的是,你有点进入平均数的空间。而且,在同一时间,你继续考虑由一个接近的平均差异。

这是一个什么样的数学奇迹?

-------------------------------------------------------------------------------------------------------

你不可能一只脚在船上,一只脚在岸上,仍然在海上航行。

 
Alexey Viktorov:

当然,每个人都可以自由地做他喜欢的事。但为什么要把一个元素一个元素地复制到另一个二维数组中,然后再对这个二维数组进行处理?我们不能进行这些计算而不是复制吗?

还是我错过了什么?一个一维数组可以复制到一个二维数组的第二维吗?

你可能不了解一些情况。

根据定义,你不允许对原始数据阵列进行计算。

为了进行计算,我们必须把原来的数据数组复制到一个新的数组中,然后用这个新数组进行计算。

这样,如果发生错误或故障,我们总是可以很容易地回到原来的数组,重新开始。

----------------------------------------------------------------------------------------------------------------------------------

如果我们使用原始数组进行计算,任何错误都将是致命的。

--------------------------------------------------------------------------------------------------------------------------------------------

而将一个一维数组复制到一个二维数组中,可以说是相当有用。

例如,我们在第一个数组中写 "引号的颜色",在第二个数组中写引号本身。

然后通过数组的 "颜色",你可以判断报价本身的变化,而不需要注意数值。

------------------------------------------------------------------------------------------------------------------------------------------------

顺便说一下,在图表本身上有类似的 "颜色渐变 "是很有用的(而不仅仅是一个普通的背景!)。

或者你可以直接在边上做一个 "色条"。拥有它对交易是非常有用的。

 
Сергей Николаев:


我使用一个指标,它定期!在嘀嗒声到来后刷新自己。但有时现在就需要这种更新, 而收到的嘀嗒声是有延迟的,在周末,市场在睡觉。
我必须右击 "刷新 "图表。 不幸的是,我没有找到这个动作的任何热键。

在一个计时器中跟踪这一事件,并更新你的指标

 
neverness:

你可能不了解一些情况。

根据定义,原始数据集中的计算是被禁止的。

真的...你无法理解你所写的这些废话...

什么原始数组?谁禁止的呢?

其余的,不仅难以理解其含义,甚至无法理解你所写的一切指的是什么......。

 
Alexey Viktorov:

的确如此...不可能理解你写的这些废话......

什么是原始数组?谁禁止的呢?

其余的,不仅难以理解其含义,甚至难以理解所写的一切指的是什么......。

练习理解 "无稽之谈",而不是自己。

再次,在编程中,原始数据没有被修正,在任何条件下都不会改变。

这就是为什么这些数据只在 "读模式下--只读"。

也就是说,要处理原始数据,必须将其复制到一个新的数据阵列中。

而这就是为什么C++Builder有一个将数据复制到Memo块中的过程,它本身就决定了需要复制的数组的大小。

顺便说一下,这在MT4/MT5中也存在。MT4/MT5的开发者做得很好--他们照顾到了这一点。

 
neverness:

又是一通胡言乱语,不仅与手头的话题无关,而且毫无意义。

 
Alexey Viktorov:

又是一篇胡言乱语,不仅与手头的话题毫无关系,而且毫无意义。

不要生气。这很正常。如果你不理解,那也没关系。这没什么大不了的。

原因: