错误、漏洞、问题 - 页 1871 1...186418651866186718681869187018711872187318741875187618771878...3184 新评论 Konstantin 2017.04.21 14:58 #18701 Slava: 而且应该不可能 1.计划何时引入工会?2.类型化的定义也会被输入吗? 3.是否计划引入基本类型的指针? Slava 2017.04.21 15:02 #18702 Konstantin: 1.联盟计划何时引入?2.typedef也将与union一起引入吗? 3.是否计划引入基本类型的指针?1.很快。编译器中的一切都准备好了,我们现在正在测试它。我们将在测试后发布。2.目前还不知道何时3.不,没有计划。 Marat Sultanov 2017.04.21 17:48 #18703 由于某些原因,CopyTime(或任何类似的)会调整 接收数组的大小,即使接收数组的大小比要复制的大小大。先生们,这正常吗?它一直是这样的吗?还是一个错误?比如说。static datetime TimeBuf[]; if (ArraySize(TimeBuf) == 0) ArrayResize(TimeBuf, 10); CopyTime(_Symbol, _Period, 0, 1, TimeBuf);CopyTime函数 将TimeBuf数组的大小调整为1。这在原则上是错误的。这不是问题,但有一个重要的细微差别:数据被复制到数组的开头,因此,整个优化的要点在根部丢失。 Slava 2017.04.21 17:57 #18704 Marat Sultanov:由于某些原因,CopyTime(或任何类似的)会调整 接收数组的大小,即使接收数组的大小大于要复制的大小。先生们,这正常吗?它一直是这样的吗?还是一个错误?比如说。CopyTime函数 将TimeBuf数组的大小调整为1。这在原则上是错误的。如果不是因为一个重要的细微差别,这并不糟糕:数据是在数组的开头被复制的,因此,整个优化的重点就在根部失去了。你的阵列是动态的!就是说,有一个可变的尺寸。由于你没有在方括号中指定其尺寸。static这个词意味着这个数组的对象是在Expert Advisor加载时构建的,并在卸载时被销毁。 Marat Sultanov 2017.04.21 18:20 #18705 Slava:你的阵列是动态的!就是说,有一个可变的尺寸。因为你没有在方括号中指定其尺寸。静态一词意味着这个数组的对象在加载EA时被构建,在卸载时被销毁。我很抱歉,但你忽略了这一点。让数组在全局范围内声明datetime _TimeBuf[]; void OnTick() {}然后。1)第一次我们把(CopyTime)复制到数组中有多少条。datetime _TimeBuf[]; int _BarsCountReserveSize; void OnTick() { int BarsCount = Bars(_Symbol, _Period); if (ArraySize(_TimeBuf) == 0) { if (_BarsCountReserveSize <= BarsCount) _BarsCountReserveSize = (int)ceil(BarsCount*1.3); ArrayResize(_TimeBuf, BarsCount, _BarsCountReserveSize); CopyTime(_Symbol, _Period, 0, BarsCount, _TimeBuf); } }2)根据最佳设计,当一个新的条形图 出现时,我们不希望复制所有的条形图,对吗?因此,我们决定只复制最后两个修改过的小节。datetime _TimeBuf[]; int _BarsCountReserveSize; void OnTick() { int BarsCount = Bars(_Symbol, _Period); if (ArraySize(_TimeBuf) == 0) { _BarsCountReserveSize = (int)ceil(BarsCount*1.3); ArrayResize(_TimeBuf, BarsCount, _BarsCountReserveSize); CopyTime(_Symbol, _Period, 0, BarsCount, _TimeBuf); } else { int RequiredCount = BarsCount - ArraySize(_TimeBuf) + 1; ArrayResize(_TimeBuf, RequiredCount, _BarsCountReserveSize); CopyTime(_Symbol, _Period, 0, RequiredCount, _TimeBuf); } }3)最后我们的优化没有成功,因为CopyTime 调整了数组的大小,并把大小=RequiredCount,另外我们失去了保留的大小(CopyTime 不知道它)。 Marat Sultanov 2017.04.21 18:28 #18706 如果CopyTime 直接从数组的末端复制到起点,就不会出现这种情况。在该地点。_TimeBuf[0] = D'2017.01.01'; _TimeBuf[1] = D'2017.01.02'; _TimeBuf[2] = D'2017.01.03';它。const int ArrSize = ArraySize(_TimeBuf); _TimeBuf[ArrSize-3] = D'2017.01.01'; _TimeBuf[ArrSize-2] = D'2017.01.02'; _TimeBuf[ArrSize-1] = D'2017.01.03'; Slava 2017.04.21 18:33 #18707 复制函数一直在改变动态数组的 大小。到一个更大或更小的尺寸。但与查询结果所给出的记录数量总是有明显的对应关系。在你的案例中,原始查询到的是一个具有动态可调整大小的数组。所有其他一次请求一个元素的请求,都是在一个预定义大小的数组中进行的(datetime _TimeBuf1[1]),所以不存在重新分配的问题。自我重新分配接收到的元素到一个大的动态阵列中 Marat Sultanov 2017.04.21 18:39 #18708 所以它一直都是这样,很正常。我明白了。谢谢你的答复我知道放大,但不知道缩减到所要求的数据大小。现在我知道了,谢谢你! Aleksey Vyazmikin 2017.04.22 13:18 #18709 MT4构建1065测试USDJPY TF M15从结果日志中。406 2014.11.28 20:30 出售 18 5.50 118.641 0.000 117.015 0.00 521 2014.12.09 17:15 T/P 18 5.50 118.386 0.000 118.386-148.95 损失是如何产生的? fxsaber 2017.04.23 07:23 #18710 -Aleks-:损失是如何产生的? 调换。 1...186418651866186718681869187018711872187318741875187618771878...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
而且应该不可能
1.计划何时引入工会?
2.类型化的定义也会被输入吗?
3.是否计划引入基本类型的指针?1.联盟计划何时引入?
2.typedef也将与union一起引入吗?
3.是否计划引入基本类型的指针?1.很快。编译器中的一切都准备好了,我们现在正在测试它。我们将在测试后发布。
2.目前还不知道何时
3.不,没有计划。
由于某些原因,CopyTime(或任何类似的)会调整 接收数组的大小,即使接收数组的大小比要复制的大小大。
先生们,这正常吗?它一直是这样的吗?还是一个错误?
比如说。
CopyTime函数 将TimeBuf数组的大小调整为1。
这在原则上是错误的。
这不是问题,但有一个重要的细微差别:数据被复制到数组的开头,因此,整个优化的要点在根部丢失。
由于某些原因,CopyTime(或任何类似的)会调整 接收数组的大小,即使接收数组的大小大于要复制的大小。
先生们,这正常吗?它一直是这样的吗?还是一个错误?
比如说。
CopyTime函数 将TimeBuf数组的大小调整为1。
这在原则上是错误的。
如果不是因为一个重要的细微差别,这并不糟糕:数据是在数组的开头被复制的,因此,整个优化的重点就在根部失去了。
你的阵列是动态的!就是说,有一个可变的尺寸。由于你没有在方括号中指定其尺寸。
static这个词意味着这个数组的对象是在Expert Advisor加载时构建的,并在卸载时被销毁。
你的阵列是动态的!就是说,有一个可变的尺寸。因为你没有在方括号中指定其尺寸。
静态一词意味着这个数组的对象在加载EA时被构建,在卸载时被销毁。
我很抱歉,但你忽略了这一点。
让数组在全局范围内声明
然后。
1)第一次我们把(CopyTime)复制到数组中有多少条。
2)根据最佳设计,当一个新的条形图 出现时,我们不希望复制所有的条形图,对吗?因此,我们决定只复制最后两个修改过的小节。
3)最后我们的优化没有成功,因为CopyTime 调整了数组的大小,并把大小=RequiredCount,另外我们失去了保留的大小(CopyTime 不知道它)。
如果CopyTime 直接从数组的末端复制到起点,就不会出现这种情况。
在该地点。
它。
复制函数一直在改变动态数组的 大小。到一个更大或更小的尺寸。但与查询结果所给出的记录数量总是有明显的对应关系。
在你的案例中,原始查询到的是一个具有动态可调整大小的数组。所有其他一次请求一个元素的请求,都是在一个预定义大小的数组中进行的(datetime _TimeBuf1[1]),所以不存在重新分配的问题。自我重新分配接收到的元素到一个大的动态阵列中
所以它一直都是这样,很正常。我明白了。谢谢你的答复
我知道放大,但不知道缩减到所要求的数据大小。现在我知道了,谢谢你!
MT4构建1065
测试USDJPY TF M15
从结果日志中。
406 2014.11.28 20:30 出售 18 5.50 118.641 0.000 117.015 0.00
521 2014.12.09 17:15 T/P 18 5.50 118.386 0.000 118.386-148.95
损失是如何产生的?