算法、解决方法、其性能的比较 - 页 15 1...891011121314151617181920212223 新评论 Реter Konow 2017.12.11 09:58 #141 fxsaber:有一个明显的反复不尊重社区的模式和一个明显的挑衅模式。不读它(一个人在各种建设性主题中的帖子)并不总是可能的,之后要发展和忘记它--更不可能。曳步舞和吐痰在帮助的手中,其数量大大区别于这种资源的正面。可能是错的。请控制你的情绪。如果你不接受别人的观点,你可以选择不参与讨论。没有人强迫你这样做。 Vasiliy Sokolov 2017.12.11 09:58 #142 Vladimir Karputov:纠正我,但字符串的长度 不是有限的吗?https://msdn.microsoft.com/ru-ru/library/sx08afx2.aspx我找不到MQL5的这种限制...字符串基本上是一个Uchar数组,它有自己的特殊功能,如自动重新分区。这就是为什么字符串的长度至少没有明确的限制,数组的大小也是如此。但是非常长的字符串有可能会耗尽内存,具体的错误代码如ERR_STRING_RESIZE_ERROR(没有足够的内存来重新分配字符串)就是证明。 Реter Konow 2017.12.11 10:00 #143 Vasiliy Sokolov:字符串本质上是一个Uchar数组,有它自己的好处,比如自动重新分区。因此字符串的长度至少没有明确的限制,数组的大小也没有限制。但是非常长的字符串有可能会耗尽内存,具体的错误代码如ERR_STRING_RESIZE_ERROR(没有足够的内存来重新分配字符串)就是证明。 对我来说也是很有价值的信息。谢谢你。 TheXpert 2017.12.11 10:00 #144 fxsaber:仅限内存限制 显然是一个长度类型的限制,即在INT_MAX 旁边。 Yury Kulikov 2017.12.11 10:01 #145 Реter Konow:1.也就是说,算法的速度并不重要。该解决方案是 "概念上的强大",这就足够了。好的。2.那么,你只是通过插件插入,就可以了?好的。 //--------------------------------------------------------------------如果评价算法的主要标准是"概念上的强大",那么我就输了。如果判断算法的主要标准--简单、快速和方便--我赢了。在这一点上,我们可以结束这个话题。你仍然可以加快和简化 "你的算法"(你不断地被告知),如果你用两个相同大小的int[]代替字符串,并在一个中存储交易数量,在另一个中存储魔术师,在交易数组的相应搜索中寻找需要的魔术师索引。它将会更快。当然,这是从你的例子中得出的一个特殊情况。彼得学习了数组,了解到它们是通用的强大工具,然后他开始学习字符串......你能想象当他学习结构时会发生什么吗?)Piotr在他的例子中替代了这些功能。struct SDealMagic {int deal,magic;} array[]; // void Trading() { Random_orders_of_strategy=MathRand(); ArrayResize(array,Random_orders_of_strategy); for(int i=0; i<Random_orders_of_strategy; i++) { array[i].deal=i; array[i].magic=MathRand() } } // int Get_magic(int deal_number) { for(int i=0; i<Random_orders_of_strategy; i++) if(array[i].deal==deal_number) return(array[i].magic); return(-1); }和速度将采取的模式:) Alexandr Andreev 2017.12.11 10:02 #146 Реter Konow:1.也就是说,算法的速度并不重要。该解决方案是 "概念上的强大",这就足够了。好的。2.那么,你只是通过插件插入,就可以了?好的。 //--------------------------------------------------------------------如果评价算法的主要标准是"概念上的强大",那么我就输了。如果评价算法的主要标准是--"简单、快速和方便",那么我就赢了。在这一点上,我们可以结束这个话题。只是一个例子显示了最常见的--那就是很多额外的信息,至少调试程序和定义上的打印是没有的--否则就会再增加300行。至少整个代码是完全.... 你需要通过库添加和调用的那部分代码将更方便,更少的代码和更多的可读性。 fxsaber 2017.12.11 10:02 #147 Alexandr Andreev:有马吉克的滴答 - 它应该被保存,然后它可以在一个方便的形式发送到滴答或马吉克。事实上,最快的解决方案是将所有信息存储在结构中。但访问将通过有序的参考索引Sammiva 进行。这是一个正面的解决方案,因此不是最快的。最好是通过HashMap来实现。然而,在目前的实现中,我们不会需要一个结构,而是需要一个继承自某个接口的类来描述其订单的字段。 Реter Konow 2017.12.11 10:06 #148 Yury Kulikov: 你可以加快和简化 "你的算法"(他们一直在告诉你),如果你用两个相同大小的int[]代替字符串,并在一个中存储交易号,在另一个中存储魔术师,通过交易数组的相应枚举来搜索魔术师的必要索引。它将会更快。当然,这是从你的例子中得出的一个特殊情况。这是一个有趣和有用的建议。保持平行记录。我在我的其他解决方案中做到了这一点。 唯一的问题是我们不知道EA最初会下多少订单。我们应该为int数组设置什么大小?这就是为什么我决定使用一个字符串。 Alexandr Andreev 2017.12.11 10:10 #149 fxsaber:这是一个正面的解决方案,因此不是最快的。最好是通过HashMap来实现。但目前的实现不需要一个结构,而是需要一个继承自某个接口的类来描述其订单的字段。我没有找到通用 文件,看来这是个旧版本。那么,将如何提供导航原则 - 源代码是什么? Vasiliy Sokolov 2017.12.11 10:11 #150 Реter Konow:这是一个有趣而聪明的建议。保持平行记录。我已经在我的其他解决方案中做到了。 我们唯一不知道的是专家顾问将下的订单数量。我们应该为int数组设置什么大小?所以我决定拿一根绳子。彼得,有一个很好的函数叫ArrayResize()。它允许你在程序执行的时候增加一个数组的大小。 1...891011121314151617181920212223 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
有一个明显的反复不尊重社区的模式和一个明显的挑衅模式。
不读它(一个人在各种建设性主题中的帖子)并不总是可能的,之后要发展和忘记它--更不可能。
曳步舞和吐痰在帮助的手中,其数量大大区别于这种资源的正面。
可能是错的。
请控制你的情绪。如果你不接受别人的观点,你可以选择不参与讨论。没有人强迫你这样做。
纠正我,但字符串的长度 不是有限的吗?
https://msdn.microsoft.com/ru-ru/library/sx08afx2.aspx
我找不到MQL5的这种限制...
字符串基本上是一个Uchar数组,它有自己的特殊功能,如自动重新分区。这就是为什么字符串的长度至少没有明确的限制,数组的大小也是如此。但是非常长的字符串有可能会耗尽内存,具体的错误代码如ERR_STRING_RESIZE_ERROR(没有足够的内存来重新分配字符串)就是证明。
字符串本质上是一个Uchar数组,有它自己的好处,比如自动重新分区。因此字符串的长度至少没有明确的限制,数组的大小也没有限制。但是非常长的字符串有可能会耗尽内存,具体的错误代码如ERR_STRING_RESIZE_ERROR(没有足够的内存来重新分配字符串)就是证明。
仅限内存限制
1.也就是说,算法的速度并不重要。该解决方案是 "概念上的强大",这就足够了。好的。
2.那么,你只是通过插件插入,就可以了?好的。
//--------------------------------------------------------------------
如果评价算法的主要标准是"概念上的强大",那么我就输了。
如果判断算法的主要标准--简单、快速和方便--我赢了。
在这一点上,我们可以结束这个话题。
你仍然可以加快和简化 "你的算法"(你不断地被告知),如果你用两个相同大小的int[]代替字符串,并在一个中存储交易数量,在另一个中存储魔术师,在交易数组的相应搜索中寻找需要的魔术师索引。它将会更快。当然,这是从你的例子中得出的一个特殊情况。
彼得学习了数组,了解到它们是通用的强大工具,然后他开始学习字符串......你能想象当他学习结构时会发生什么吗?)
Piotr在他的例子中替代了这些功能。
和速度将采取的模式:)
1.也就是说,算法的速度并不重要。该解决方案是 "概念上的强大",这就足够了。好的。
2.那么,你只是通过插件插入,就可以了?好的。
//--------------------------------------------------------------------
如果评价算法的主要标准是"概念上的强大",那么我就输了。
如果评价算法的主要标准是--"简单、快速和方便",那么我就赢了。
在这一点上,我们可以结束这个话题。
只是一个例子显示了最常见的--那就是很多额外的信息,至少调试程序和定义上的打印是没有的--否则就会再增加300行。
至少整个代码是完全....
你需要通过库添加和调用的那部分代码将更方便,更少的代码和更多的可读性。
有马吉克的滴答 - 它应该被保存,然后它可以在一个方便的形式发送到滴答或马吉克。
事实上,最快的解决方案是将所有信息存储在结构中。但访问将通过有序的参考索引Sammiva 进行。
这是一个正面的解决方案,因此不是最快的。最好是通过HashMap来实现。然而,在目前的实现中,我们不会需要一个结构,而是需要一个继承自某个接口的类来描述其订单的字段。
你可以加快和简化 "你的算法"(他们一直在告诉你),如果你用两个相同大小的int[]代替字符串,并在一个中存储交易号,在另一个中存储魔术师,通过交易数组的相应枚举来搜索魔术师的必要索引。它将会更快。当然,这是从你的例子中得出的一个特殊情况。
这是一个有趣和有用的建议。保持平行记录。我在我的其他解决方案中做到了这一点。
唯一的问题是我们不知道EA最初会下多少订单。我们应该为int数组设置什么大小?
这就是为什么我决定使用一个字符串。
这是一个正面的解决方案,因此不是最快的。最好是通过HashMap来实现。但目前的实现不需要一个结构,而是需要一个继承自某个接口的类来描述其订单的字段。
我没有找到通用 文件,看来这是个旧版本。那么,将如何提供导航原则 - 源代码是什么?
这是一个有趣而聪明的建议。保持平行记录。我已经在我的其他解决方案中做到了。
我们唯一不知道的是专家顾问将下的订单数量。我们应该为int数组设置什么大小?
所以我决定拿一根绳子。
彼得,有一个很好的函数叫ArrayResize()。它允许你在程序执行的时候增加一个数组的大小。