for(int q=0; q<ARRAY_SIZE_X*ARRAY_SIZE_Y; q++) // Перебор по периоду, колонка X { int arr++ if(arr=ARRAY_SIZE_X) {z++;arr=0;}
arra[q]=sm.d[q].m[nBar-z]; // M(I) SMA } //--- запишем данные массива в конец файла FileTell IsFileLineEnded FileSeek(handle,0,SEEK_END); FileWriteArray(handle,arra);
void BySort(double &mas[][3]) { // Сортируем по размеру лота от большего к меньшему ArraySort(mas); ArraySetAsSeries(mas,true); // при такой записи mql5 ругается, в mql4 работает
void BySort(double &mas[][3])// выделенное лишнее { // Сортируем по размеру от большего к меньшему ArraySort(mas, WHOLE_ARRAY, 0, MODE_DESCEND); // вот это не работает в mql5
ArraySort(mas); ArraySetAsSeries(mas,true); // а при такой записи ругается // это тоже лишнее }
10,000 x 10,000不是二维的吗?
和所有这些...
嗯,是的,它是二维的,我不是这么说的,显然它不是一个矩阵而是一个数组。矩阵是否意味着多维性?
这段代码中的刹车不是在写数组,而是在循环中的循环。
同意。这不是说的,是被误解了。
这段代码中的刹车不是在写数组,而是在循环中的循环。
是否有必要移植到另一个编程环境,或者这不是所有类型的语言的共同问题?有什么办法可以加快速度?
如果一个循环并增加被删除的循环中的变量值
{
int arr++
if(arr=ARRAY_SIZE_X) {z++;arr=0;}
arra[q]=sm.d[q].m[nBar-z]; // M(I) SMA
}
//--- запишем данные массива в конец файла FileTell IsFileLineEnded
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arra);
我可能已经检查过了,但我不想给电脑添麻烦--如果它不能加速,额外的压力又会加在硬盘上)))
是否有必要移植到另一个编程环境,或者这不是所有类型的语言的共同问题?有什么办法可以加快速度?
如果在一个循环中增加已删除的循环中的变量值,会加速吗?
我可以检查一下,但我不想折磨电脑,如果没有加速,又会给硬盘带来额外的压力))))。
你不能把数组写在循环之后吗?是否可以只在每一行做?我指的是第一种变体,即循环在循环中。
当然,你可以另外插入一个计数器,并写入这个计数器,而不是每一行都单独写入,但这不太可能加速这个过程,以至于不用测量就能发现。
这么大的一个数组是无法装入分配的RAM的。
当然,你可以另外插入一个计数器,并通过这个计数器进行记录,而不是每一行都单独记录,但这不太可能加快这个过程,以至于在没有测量的情况下就能发现。
请告诉我,文档中说(编译器也说)。"不能为多维数组设置AS_SERIES标志"
问题:我如何在mql5中对一个数组进行排序?
void Func()
{
double m[][3];
if(условия)
{
// много кода
c++;
ArrayResize(m, c);
m[c-1][0]= Lots();
m[c-1][1]= Ticket();
m[c-1][2]= Profit();
}
BySort(m); // передаём в функцию "BySort"
}
void BySort(double &mas[][3])
{
// Сортируем по размеру лота от большего к меньшему
ArraySort(mas);
ArraySetAsSeries(mas,true); // при такой записи mql5 ругается, в mql4 работает
... здесь работа с массивом и основной код
}请指示,文件中说(编译器也是如此):。"不能为多维数组设置AS_SERIES标志"。
问题:如何对数组进行排序。
if(условия)
{
// много кода
c++;
ArrayResize(m, c);
m[c-1][0]= Lots();
m[c-1][1]= Ticket();
m[c-1][2]= Profit();
}
void BySort(double &mas[][3])// выделенное лишнее
{
// Сортируем по размеру от большего к меньшему
ArraySort(mas, WHOLE_ARRAY, 0, MODE_DESCEND); // вот это не работает в mql5
ArraySort(mas);
ArraySetAsSeries(mas,true); // а при такой записи ругается // это тоже лишнее
}
1-它改变了数组单元格的索引方向而不改变它们的内容;2-它改变了单元格的内容而不改变它们的索引,从而使它们按升序或降序排序。
此外,文档中说,数组只能按第一维排序。
AS_SERIES和排序是完全不同的概念。
1 - 改变数组单元格的索引方向而不改变其内容,2 - 在不改变索引的情况下改变单元格内容,使其按升序或降序排序。
此外,文档中说,数组只能按第一维排序。
在这里,它按升序排列
我现在该如何逆转呢?它需要按降序排列,它在对很多东西进行排序。
在这里,它按升序排列
我现在该如何逆转呢?你需要按降序排列,它能对批次进行排序。
而最愚蠢的选择是以相反的顺序重写整个数组。这值得吗?
在这里,它按升序排列
我现在该如何逆转呢?你需要按降序排列,它能对批次进行排序。
如果在排序后,你用ArraySetAsSeries改变了索引顺序,怎么办?
然后它是这样 的。