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

 
ANDREY:

得到了大致的想法...就我而言。谢谢你的提示。如果你不介意的话,能否告诉我在数组名称$ array[]和值$var 之前的美元符号是什么意思?

我感觉这不是来自于mql4,因为某些原因。

是的,它不是来自Mql,但意思是一样的

 
Aleksei Stepanenko:
在你的案例中,对主要问题的回答很有意思:为什么你需要每分钟都做排序?如何能以更经济的方式实施你的想法?

我发布的代码只是我无法解决的问题的一个例子。在真正的代码中,排序将不得不在20到30个元素的列中的每一个刻度 上进行。我有一个四核处理器,这就是为什么我在测试时没有感到任何延迟。此外,实际的代码也不是很大。但我还没有完全以代码的形式表现我的想法。当我把它完全编码后,我将考虑如何从性能的角度来改进它。

我有没有理解错,在mql中搜索1000个值比对1000个数组元素进行排序或对数组进行其他操作花费的时间更少?顺便问一下,你能不能告诉我.....,mql4的哪些操作需要很长时间?

谢谢你的帮助

 
Vitaly Muzichenko:

是的,它不是来自Mql,但意义是一样的

它是什么语言,我认为这种语言的一些结构可以用在mql中,这样理解对吗?我想对于未来,这些信息对我来说是有用的
谢谢你的帮助。

 
ANDREY:

它是什么语言,我是否正确理解这种语言的一些结构可以用于mql?我想对于未来,这些信息对我来说是有用的
谢谢你的帮助。

是php,但我认为你不需要研究它,这个论坛上也足够的 关于mql 的答案。

 
Vitaly Muzichenko:

是php,但我认为你不需要研究它,这个论坛上也足够的 关于mql 的答案。

明白了。谢谢。

 
ANDREY:

明白了。谢谢你。

你需要正确思考你想要的产出的逻辑,然后开始写作。有许多事情,你不需要每一次都 去计较,只有在情况发生变化时才需要。

你只需要监测情况的变化,之后再做繁重的计算,而不是不必要地每次打勾 时都做计算。

 
Vitaly Muzichenko:

你需要正确思考你想要的产出的逻辑,然后开始写作。有许多事情不需要在每次打勾 时都计算,而只在情况发生变化时才计算。

要做到这一点,你只需要监测情况的变化,然后进行繁重的计算,而不是在没有任何需要的情况下每次打勾 都进行计算。

我已经想好了逻辑,并清楚地了解我想得到的输出结果。我理解Mql4(和一点点Mql5),以至于我理解了很多(但不是全部)我需要的手稿。而最重要的是,我几乎理解这个论坛上向我解释的所有内容。我现在正试图编写我的构思,但不是随便什么方式,而是代码应该快速执行,因为我需要在许多工具和长时段上测试它。而无论如何....也就是现在,我正在尽力通过试验和错误来编码我的概念(我没有什么编码经验),同时也是为了学习一些新的、对未来尝试有用的东西。

 
ANDREY:

但不是随机的,而是要让代码的执行花费最少的时间

所以,告诉我们需要什么排序,也许我们可以想出另一个实现的想法。

 
Aleksei Stepanenko:

所以,告诉我分类的目的是什么,也许我们可以想出另一个实现的想法。

谢谢你的帮助。你让我很感兴趣.....,我想在1-2天内我将完成一部分带有排序的真实代码,然后我将把它贴在这里,以了解你的专业意见。

我还有一个关于信息的问题,马克西姆-库兹涅佐夫 帖子中给我的信息。 他比你更少地访问这里,所以如果你能解释一下他的代码,我将非常感激

void Convert_7x2_2x7 (const double &src[7][2],double &dst[2][7] ) {

for(int i=0;i<7;i++)

for(int j=0;j<2;j++) {

dst[j][i]=src[i][j]。

}

}

我仔细研究了很长时间,这是我想到的......。

1.这是一个用户定义的函数

2.上面的代码中没有提到它。它在主代码中隐含在void OnTick()中

3.在这段代码中,只有数组的索引会被改变。数组项目的值会发生什么,我只能猜测。

我不明白的是这一点。

1.如果这个函数的最终执行导致dst[j][i]得到dst[7][2] 的新值,循环的意义是什么 难道dst[j][i] 不能立即明确地分配这些索引值 吗?

2.我的理解是否正确,如果我在这段代码中改变了索引的值,数组元素的必要值会自动改变到新的单元中?

3.如果你能写一个关于如何调用这个自定义函数的描述,我将非常感激。

数组的主题对我来说相当陌生,虽然这些信息与我目前的代码没有关系,但我相信它在未来会对我有用。而且我喜欢在自然中为未来做储备。:-)
谢谢你的帮助。

 

不,这离职业化还有很长的路要走。

double LoY[31][2], Mirror[2][31];

//вызывается так:
ConvertArray(LoY,Mirror);

//все значения строк из массива LoY запишутся в столбцы Mirror,
//условно сказать, массив повернётся
void ConvertArray(const double &src[31][2],double &dst[2][31])
   {
   for(int i=0; i<31; i++) for(int j=0; j<2; j++) dst[j][i]=src[i][j];
   }

原因: