学习逻辑 - 页 15 1...89101112131415 新评论 Candid 2010.09.04 08:40 #141 hrenfx:有时你需要在MQL4中对数据进行排序,而不需要接触数据本身。在MQL4中没有指针,也没有结构。 另一种变体是创建数组Positions[][2],复制要按零索引排序的参数,并将第一个索引给位置。然后用标准函数AgraSort对数组进行排序。 其优点是AgraSort使用了一种 高效的排序算法,此外,它还可以在本地代码中工作。 hrenfx 2010.09.04 10:10 #142 Candid: 或者,你可以创建一个数组Positions[][2],复制要按零索引排序的参数,并将第一个索引给位置。然后用标准的ArguSort函数对数组进行排序。 你能用你的方法转换我在前一页的脚本吗?我不明白这个描述。 Victor Nikolaev 2010.09.04 10:22 #143 hrenfx: 你能用你的方法转换我在前一页的脚本吗?我不明白这个描述。 我喜欢https://www.mql5.com/ru/users/candid 所建议的方式。曾经让它变得有点复杂。我将使用一个更简单的。你可以按任何属性进行排序。非常方便。 Candid 2010.09.04 10:38 #144 hrenfx: 你能用你的方法转换我在前一页的脚本吗?我不明白这个描述。 我不会给你整个脚本,但我会给你一个函数的草图,它应该足以理解这个想法。 void SortArrayINT( int& Array[], int& Positions[][]) { int i, Size = ArraySize(Array); ArrayResize(Positions, Size); for (i = 0; i < Size; i++) { Positions[i][0] = Array[i]; Positions[i][1] = i; } ArraySort(Positions); return; } 现在,Positions[0][1]包含最小的Array元素 的索引,Positions[1][1]包含次大的Array 元素的索引,Positions[i][1]包含第i个元素的索引。 hrenfx 2010.09.04 10:59 #145 Candid:我不会写整个脚本,但我将给你一个函数的草图,它应该足以理解这个想法。我不知道在MQL4中使用多维 数组的特殊性。谢谢你,这个方法很有效。 void SortArrayINTCandid( int Array[], int& Positions[][] ) { int Size = ArraySize(Array); ArrayResize(Positions, Size); for (int i = 0; i < Size; i++) { Positions[i][0] = Array[i]; Positions[i][1] = i; } ArraySort(Positions); return; } void PrintInfo( string SortName, int Array[] ) { int PositionsCandid[][2]; SortArrayINTCandid(Array, PositionsCandid); Print("Sort by " + SortName); Print("SYMBOL PROFIT POS SL"); for (int i = 0; i < AMOUNT; i++) Print(Symbols[PositionsCandid[i][1]] + " " + Profit[PositionsCandid[i][1]] + " " + Pos[PositionsCandid[i][1]] + " " + SL[PositionsCandid[i][1]]); Print(""); return; } 1...89101112131415 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
有时你需要在MQL4中对数据进行排序,而不需要接触数据本身。在MQL4中没有指针,也没有结构。
另一种变体是创建数组Positions[][2],复制要按零索引排序的参数,并将第一个索引给位置。然后用标准函数AgraSort对数组进行排序。
其优点是AgraSort使用了一种 高效的排序算法,此外,它还可以在本地代码中工作。
或者,你可以创建一个数组Positions[][2],复制要按零索引排序的参数,并将第一个索引给位置。然后用标准的ArguSort函数对数组进行排序。
你能用你的方法转换我在前一页的脚本吗?我不明白这个描述。
我喜欢https://www.mql5.com/ru/users/candid 所建议的方式。曾经让它变得有点复杂。我将使用一个更简单的。你可以按任何属性进行排序。非常方便。
你能用你的方法转换我在前一页的脚本吗?我不明白这个描述。
我不会给你整个脚本,但我会给你一个函数的草图,它应该足以理解这个想法。
现在,Positions[0][1]包含最小的Array元素 的索引,Positions[1][1]包含次大的Array 元素的索引,Positions[i][1]包含第i个元素的索引。
我不会写整个脚本,但我将给你一个函数的草图,它应该足以理解这个想法。
我不知道在MQL4中使用多维 数组的特殊性。谢谢你,这个方法很有效。