初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1198 1...119111921193119411951196119711981199120012011202120312041205...1503 新评论 Alexey Viktorov 2020.03.21 16:26 #11971 Vitaly Muzichenko: 从逻辑上讲,你应该首先将所有的行收集到一个数组中,我会做一个二维 数组,或者一个数组结构,在第一维中我们加入创建时间,在第二维中加入行的名称。 在循环中进行一次运行,填充数组,在循环外填充数组后按第一维即时间进行排序。 结果在第二个循环中被打印出来。 因此,我们有2个周期,并在它们之间进行排序。 这就是全部,如果我对问题的理解正确的话 :) 这不完全是数组的工作方式。字符串的数组似乎也不能排序,我没有试过,因为我不需要。 [删除] 2020.03.21 16:31 #11972 Vitaly Muzichenko: 从逻辑上讲,你应该首先在一个数组中收集所有的行,我会做一个二维数组,或一个数组结构,在第一维中我们添加创建时间,在第二维中--行的名称。 在循环中进行一次运行,填充数组,在循环外填充数组后按第一维即时间进行排序。 结果在第二个循环中被打印出来。 因此,我们有2个周期,并在它们之间进行排序。 这就是全部,如果我对问题的理解正确的话 :) 问题--这个二维数组的类型应该是什么?))) Vitaly Muzichenko 2020.03.21 16:31 #11973 Alexey Viktorov: 这不完全是数组的工作方式。字符串数组似乎也不能排序,没有试过,因为我不需要。 为什么?这里是 Документация по MQL5: Операции с массивами / ArraySort www.mql5.com //| Получение значений границ для тиковых объемов | //| Custom indicator initialization function | //| Custom indicator iteration function | // Alexey Viktorov 2020.03.21 17:15 #11974 Vitaly Muzichenko: 为什么?这里 但它并没有在任何地方提到阵列结构。我得检查一下才能确定。但不是现在。 Vitaly Muzichenko 2020.03.21 18:05 #11975 Alexey Viktorov: 但它并没有在任何地方提到阵列结构。我得检查一下才能确定。但不是现在。 我的回答是关于数组的,对于结构来说,有不同的排序方式,但对于目前的任务来说,这并不重要。 [删除] 2020.03.21 18:20 #11976 Vitaly Muzichenko: 我的回答是关于数组的,对于结构有不同的排序,但对于眼前的任务来说,这并不重要。 我正在放慢脚步的东西.... long vlines_arr[][1]; vlines = ObjectsTotal(ChartID(),0,OBJ_VLINE); ArrayResize(vlines_arr,vlines); for(int i = 0; i < vlines; i++) { long tml = (long)ObjectGetInteger(ChartID(),vlines_name[i],OBJPROP_TIME); vlines_arr[i][0] = {{tml}, {i}}; } 它不能这样编译... Vitaly Muzichenko 2020.03.21 18:39 #11977 Сергей Таболин: 有东西拖累了我.... 它不能这样编译... long vlines_arr[][2]; vlines = ObjectsTotal(ChartID(),0,OBJ_VLINE); ArrayResize(vlines_arr,vlines); for(int i = 0; i < vlines; i++) { long tml = (long)ObjectGetInteger(ChartID(),vlines_name[i],OBJPROP_TIME); vlines_arr[i][0] = tml; vlines_arr[i][1] = i; } [删除] 2020.03.21 20:01 #11978 Vitaly Muzichenko: 谢谢你。该睡觉了)))。 [删除] 2020.03.21 20:24 #11979 神秘的简单.... void OnStart() { int vlines = 0; string vlines_name[]; string vlines_name_sort[]; datetime tm[]; long vlines_arr[][2]; vlines = ObjectsTotal(ChartID(),0,OBJ_VLINE); if(vlines < 20 * 2) { Print("вертикальных линий меньше необходимиого. (",vlines," < ",20 * 2,")"); return; } ArrayResize(vlines_arr,vlines); ArrayResize(vlines_name,vlines); ArrayResize(vlines_name_sort,vlines); for(int i = 0; i < vlines; i++) { long tml = (long)ObjectGetInteger(ChartID(),vlines_name[i],OBJPROP_TIME); vlines_arr[i][0] = tml; vlines_arr[i][1] = (long)i; } ArrayPrint(vlines_arr); ArraySort(vlines_arr); Print("-------------"); ArrayPrint(vlines_arr); for(int i = 0; i < vlines; i++) { vlines_name_sort[i] = ObjectName(ChartID(),(int)vlines_arr[i][1],0,OBJ_VLINE); } ArrayPrint(vlines_name_sort); 第一次运行的时候就是这样--它打印了一个数组,一切都很好。 添加了这个--我完全不知道发生了什么......我想该睡觉了,毕竟.... (GBPUSD,H6) [,0][,1] (GBPUSD,H6) [ 0,] 0 0 (GBPUSD,H6) [ 1,] 0 1 (GBPUSD,H6) [ 2,] 0 2 (GBPUSD,H6) [ 3,] 0 3 (GBPUSD,H6) [ 4,] 0 4 (GBPUSD,H6) [ 5,] 0 5 (GBPUSD,H6) [ 6,] 0 6 (GBPUSD,H6) [ 7,] 0 7 (GBPUSD,H6) [ 8,] 0 8 (GBPUSD,H6) [ 9,] 0 9 (GBPUSD,H6) [10,] 0 10 (GBPUSD,H6) [11,] 0 11 (GBPUSD,H6) [12,] 0 12 (GBPUSD,H6) [13,] 0 13 (GBPUSD,H6) [14,] 0 14 (GBPUSD,H6) [15,] 0 15 (GBPUSD,H6) [16,] 0 16 (GBPUSD,H6) [17,] 0 17 (GBPUSD,H6) [18,] 0 18 (GBPUSD,H6) [19,] 0 19 (GBPUSD,H6) [20,] 0 20 (GBPUSD,H6) [21,] 0 21 (GBPUSD,H6) [22,] 0 22 (GBPUSD,H6) [23,] 0 23 (GBPUSD,H6) [24,] 0 24 (GBPUSD,H6) [25,] 0 25 (GBPUSD,H6) [26,] 0 26 (GBPUSD,H6) [27,] 0 27 (GBPUSD,H6) [28,] 0 28 (GBPUSD,H6) [29,] 0 29 (GBPUSD,H6) [30,] 0 30 (GBPUSD,H6) [31,] 0 31 (GBPUSD,H6) [32,] 0 32 (GBPUSD,H6) [33,] 0 33 (GBPUSD,H6) [34,] 0 34 (GBPUSD,H6) [35,] 0 35 (GBPUSD,H6) [36,] 0 36 (GBPUSD,H6) [37,] 0 37 (GBPUSD,H6) [38,] 0 38 (GBPUSD,H6) [39,] 0 39 (GBPUSD,H6) [40,] 0 40 (GBPUSD,H6) [41,] 0 41 (GBPUSD,H6) [42,] 0 42 (GBPUSD,H6) [43,] 0 43 (GBPUSD,H6) [44,] 0 44 (GBPUSD,H6) [45,] 0 45 (GBPUSD,H6) [46,] 0 46 (GBPUSD,H6) [47,] 0 47 (GBPUSD,H6) [48,] 0 48 (GBPUSD,H6) [49,] 0 49 (GBPUSD,H6) ------------- (GBPUSD,H6) [,0][,1] (GBPUSD,H6) [ 0,] 0 0 (GBPUSD,H6) [ 1,] 0 1 (GBPUSD,H6) [ 2,] 0 2 (GBPUSD,H6) [ 3,] 0 3 (GBPUSD,H6) [ 4,] 0 4 (GBPUSD,H6) [ 5,] 0 5 (GBPUSD,H6) [ 6,] 0 6 (GBPUSD,H6) [ 7,] 0 7 (GBPUSD,H6) [ 8,] 0 8 (GBPUSD,H6) [ 9,] 0 9 (GBPUSD,H6) [10,] 0 10 (GBPUSD,H6) [11,] 0 11 (GBPUSD,H6) [12,] 0 12 (GBPUSD,H6) [13,] 0 13 (GBPUSD,H6) [14,] 0 14 (GBPUSD,H6) [15,] 0 15 (GBPUSD,H6) [16,] 0 16 (GBPUSD,H6) [17,] 0 17 (GBPUSD,H6) [18,] 0 18 (GBPUSD,H6) [19,] 0 19 (GBPUSD,H6) [20,] 0 20 (GBPUSD,H6) [21,] 0 21 (GBPUSD,H6) [22,] 0 22 (GBPUSD,H6) [23,] 0 23 (GBPUSD,H6) [24,] 0 24 (GBPUSD,H6) [25,] 0 25 (GBPUSD,H6) [26,] 0 26 (GBPUSD,H6) [27,] 0 27 (GBPUSD,H6) [28,] 0 28 (GBPUSD,H6) [29,] 0 29 (GBPUSD,H6) [30,] 0 30 (GBPUSD,H6) [31,] 0 31 (GBPUSD,H6) [32,] 0 32 (GBPUSD,H6) [33,] 0 33 (GBPUSD,H6) [34,] 0 34 (GBPUSD,H6) [35,] 0 35 (GBPUSD,H6) [36,] 0 36 (GBPUSD,H6) [37,] 0 37 (GBPUSD,H6) [38,] 0 38 (GBPUSD,H6) [39,] 0 39 (GBPUSD,H6) [40,] 0 40 (GBPUSD,H6) [41,] 0 41 (GBPUSD,H6) [42,] 0 42 (GBPUSD,H6) [43,] 0 43 (GBPUSD,H6) [44,] 0 44 (GBPUSD,H6) [45,] 0 45 (GBPUSD,H6) [46,] 0 46 (GBPUSD,H6) [47,] 0 47 (GBPUSD,H6) [48,] 0 48 (GBPUSD,H6) [49,] 0 49 (GBPUSD,H6) [ 0] "H6 Vertical Line 10771" "H6 Vertical Line 10884" "H6 Vertical Line 12743" "H6 Vertical Line 1371" "H6 Vertical Line 14306" (GBPUSD,H6) [ 5] "H6 Vertical Line 16501" "H6 Vertical Line 17907" "H6 Vertical Line 20277" "H6 Vertical Line 23365" "H6 Vertical Line 28358" Vitaly Muzichenko 2020.03.21 20:42 #11980 Сергей Таболин:神秘的简单....第一次运行的时候就是这样--它打印了一个数组,一切都很好。添加了这个--我完全不知道发生了什么......我想是时候去睡觉了....。 也许我不明白,但在这里long tml = (long)ObjectGetInteger(ChartID(),vlines_name[i],OBJPROP_TIME); 代替行名,而不是索引,否则你不会得到结果。 1...119111921193119411951196119711981199120012011202120312041205...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
从逻辑上讲,你应该首先将所有的行收集到一个数组中,我会做一个二维 数组,或者一个数组结构,在第一维中我们加入创建时间,在第二维中加入行的名称。
在循环中进行一次运行,填充数组,在循环外填充数组后按第一维即时间进行排序。
结果在第二个循环中被打印出来。
因此,我们有2个周期,并在它们之间进行排序。
这就是全部,如果我对问题的理解正确的话 :)
这不完全是数组的工作方式。字符串的数组似乎也不能排序,我没有试过,因为我不需要。
从逻辑上讲,你应该首先在一个数组中收集所有的行,我会做一个二维数组,或一个数组结构,在第一维中我们添加创建时间,在第二维中--行的名称。
在循环中进行一次运行,填充数组,在循环外填充数组后按第一维即时间进行排序。
结果在第二个循环中被打印出来。
因此,我们有2个周期,并在它们之间进行排序。
这就是全部,如果我对问题的理解正确的话 :)
问题--这个二维数组的类型应该是什么?)))
这不完全是数组的工作方式。字符串数组似乎也不能排序,没有试过,因为我不需要。
为什么?这里是
为什么?这里
但它并没有在任何地方提到阵列结构。我得检查一下才能确定。但不是现在。
但它并没有在任何地方提到阵列结构。我得检查一下才能确定。但不是现在。
我的回答是关于数组的,对于结构来说,有不同的排序方式,但对于目前的任务来说,这并不重要。
我的回答是关于数组的,对于结构有不同的排序,但对于眼前的任务来说,这并不重要。
我正在放慢脚步的东西....
它不能这样编译...
有东西拖累了我....
它不能这样编译...
谢谢你。该睡觉了)))。
神秘的简单....
第一次运行的时候就是这样--它打印了一个数组,一切都很好。
添加了这个--我完全不知道发生了什么......我想该睡觉了,毕竟....
(GBPUSD,H6) [,0][,1] (GBPUSD,H6) [ 0,] 0 0 (GBPUSD,H6) [ 1,] 0 1 (GBPUSD,H6) [ 2,] 0 2 (GBPUSD,H6) [ 3,] 0 3 (GBPUSD,H6) [ 4,] 0 4 (GBPUSD,H6) [ 5,] 0 5 (GBPUSD,H6) [ 6,] 0 6 (GBPUSD,H6) [ 7,] 0 7 (GBPUSD,H6) [ 8,] 0 8 (GBPUSD,H6) [ 9,] 0 9 (GBPUSD,H6) [10,] 0 10 (GBPUSD,H6) [11,] 0 11 (GBPUSD,H6) [12,] 0 12 (GBPUSD,H6) [13,] 0 13 (GBPUSD,H6) [14,] 0 14 (GBPUSD,H6) [15,] 0 15 (GBPUSD,H6) [16,] 0 16 (GBPUSD,H6) [17,] 0 17 (GBPUSD,H6) [18,] 0 18 (GBPUSD,H6) [19,] 0 19 (GBPUSD,H6) [20,] 0 20 (GBPUSD,H6) [21,] 0 21 (GBPUSD,H6) [22,] 0 22 (GBPUSD,H6) [23,] 0 23 (GBPUSD,H6) [24,] 0 24 (GBPUSD,H6) [25,] 0 25 (GBPUSD,H6) [26,] 0 26 (GBPUSD,H6) [27,] 0 27 (GBPUSD,H6) [28,] 0 28 (GBPUSD,H6) [29,] 0 29 (GBPUSD,H6) [30,] 0 30 (GBPUSD,H6) [31,] 0 31 (GBPUSD,H6) [32,] 0 32 (GBPUSD,H6) [33,] 0 33 (GBPUSD,H6) [34,] 0 34 (GBPUSD,H6) [35,] 0 35 (GBPUSD,H6) [36,] 0 36 (GBPUSD,H6) [37,] 0 37 (GBPUSD,H6) [38,] 0 38 (GBPUSD,H6) [39,] 0 39 (GBPUSD,H6) [40,] 0 40 (GBPUSD,H6) [41,] 0 41 (GBPUSD,H6) [42,] 0 42 (GBPUSD,H6) [43,] 0 43 (GBPUSD,H6) [44,] 0 44 (GBPUSD,H6) [45,] 0 45 (GBPUSD,H6) [46,] 0 46 (GBPUSD,H6) [47,] 0 47 (GBPUSD,H6) [48,] 0 48 (GBPUSD,H6) [49,] 0 49 (GBPUSD,H6) ------------- (GBPUSD,H6) [,0][,1] (GBPUSD,H6) [ 0,] 0 0 (GBPUSD,H6) [ 1,] 0 1 (GBPUSD,H6) [ 2,] 0 2 (GBPUSD,H6) [ 3,] 0 3 (GBPUSD,H6) [ 4,] 0 4 (GBPUSD,H6) [ 5,] 0 5 (GBPUSD,H6) [ 6,] 0 6 (GBPUSD,H6) [ 7,] 0 7 (GBPUSD,H6) [ 8,] 0 8 (GBPUSD,H6) [ 9,] 0 9 (GBPUSD,H6) [10,] 0 10 (GBPUSD,H6) [11,] 0 11 (GBPUSD,H6) [12,] 0 12 (GBPUSD,H6) [13,] 0 13 (GBPUSD,H6) [14,] 0 14 (GBPUSD,H6) [15,] 0 15 (GBPUSD,H6) [16,] 0 16 (GBPUSD,H6) [17,] 0 17 (GBPUSD,H6) [18,] 0 18 (GBPUSD,H6) [19,] 0 19 (GBPUSD,H6) [20,] 0 20 (GBPUSD,H6) [21,] 0 21 (GBPUSD,H6) [22,] 0 22 (GBPUSD,H6) [23,] 0 23 (GBPUSD,H6) [24,] 0 24 (GBPUSD,H6) [25,] 0 25 (GBPUSD,H6) [26,] 0 26 (GBPUSD,H6) [27,] 0 27 (GBPUSD,H6) [28,] 0 28 (GBPUSD,H6) [29,] 0 29 (GBPUSD,H6) [30,] 0 30 (GBPUSD,H6) [31,] 0 31 (GBPUSD,H6) [32,] 0 32 (GBPUSD,H6) [33,] 0 33 (GBPUSD,H6) [34,] 0 34 (GBPUSD,H6) [35,] 0 35 (GBPUSD,H6) [36,] 0 36 (GBPUSD,H6) [37,] 0 37 (GBPUSD,H6) [38,] 0 38 (GBPUSD,H6) [39,] 0 39 (GBPUSD,H6) [40,] 0 40 (GBPUSD,H6) [41,] 0 41 (GBPUSD,H6) [42,] 0 42 (GBPUSD,H6) [43,] 0 43 (GBPUSD,H6) [44,] 0 44 (GBPUSD,H6) [45,] 0 45 (GBPUSD,H6) [46,] 0 46 (GBPUSD,H6) [47,] 0 47 (GBPUSD,H6) [48,] 0 48 (GBPUSD,H6) [49,] 0 49 (GBPUSD,H6) [ 0] "H6 Vertical Line 10771" "H6 Vertical Line 10884" "H6 Vertical Line 12743" "H6 Vertical Line 1371" "H6 Vertical Line 14306" (GBPUSD,H6) [ 5] "H6 Vertical Line 16501" "H6 Vertical Line 17907" "H6 Vertical Line 20277" "H6 Vertical Line 23365" "H6 Vertical Line 28358"
神秘的简单....
第一次运行的时候就是这样--它打印了一个数组,一切都很好。
添加了这个--我完全不知道发生了什么......我想是时候去睡觉了....。
也许我不明白,但在这里long tml = (long)ObjectGetInteger(ChartID(),vlines_name[i],OBJPROP_TIME); 代替行名,而不是索引,否则你不会得到结果。