PDA

View Full Version : 快速编程问题



Nano8880
08-25-2009 02:05, 02:05 AM
我注意到下面的循环被广泛地和常规地用于计数,关闭或删除命令等:

插入代码(int i = OrdersTotal()#91; color = red#93; -1#91;color#93 ;; i gt; = 0; i--)
我的问题是为什么我们使用-1代码?这是逻辑上正确的,而我们想要在搜索中包含所有订单?这不是仅在搜索蜡烛时使用,我们想排除0蜡烛吗?

感谢您的澄清。

wiyox
12-17-2021 00:59, 12:59 AM
假设orderstotal有10个订单。虽然计算1到10会是人的本性,但计算机喜欢让事情变得困难并将它们编号为0到9.所以我们减去1来补偿它。

CokdeANACOKDA86
12-17-2021 02:20, 02:20 AM
Orders数组是一个基于零的数组,OrdersTotal是基于数组的一个,因此需要减去一个。因此,列表中的第一个订单不是订单(1),而是订单(0)。合理?勒克司

Nano8880
12-17-2021 03:41, 03:41 AM
Orders数组是一个基于零的数组,OrdersTotal是基于数组的一个,因此需要减去一个。因此,列表中的第一个订单不是订单(1),而是订单(0)。合理?勒克司
感谢和luxinterior的快速回复。我碰巧知道,活动(市场挂单)和平仓订单列表中的订单编号从零开始,但如果订单总数为10,则使用OrdersTotal() - 1,系统应从8计数到0 ,忽略了最后的顺序,而不是从9到0。

gualva8
12-17-2021 05:02, 05:02 AM
感谢和luxinterior的快速回复。我碰巧知道[font = Verdana]活动(市场挂单)和平仓订单列表中的订单编号从零开始,但如果订单总数为10,则使用OrdersTotal() - 1 [color =黑]系统应计数从8到0,忽略最后的顺序,而不是从9 ...
如果10 - 1 = 8,则为true

ligeldeng
12-17-2021 06:23, 06:23 AM
感谢和luxinterior的快速回复。我碰巧知道[font = Verdana]活动(市场挂单)和平仓订单列表中的订单编号从零开始,但如果订单总数为10,则使用OrdersTotal() - 1 [color =黑色]系统应计数从8到0,忽略最后的顺序,而不是从9到...
例5命令索引0,1,2,3,4 5-1 = 4倒计数4 3 2 1 0 =仍然5命令见
http://www.codersource.net/c _arrays_tutorial.html

Nano8880
12-17-2021 07:43, 07:43 AM
好的,如果我不减1或仅仅是为了提高系统效率,它会给系统一个问题吗?

ligeldeng
12-17-2021 09:04, 09:04 AM
好的,如果我不减1或仅仅是为了提高系统效率,它会给系统一个问题吗?
它像这样:array [index] = gt;具有2个元素的值数组array [0] = gt; value1或order1或... array [1] = gt; value2或order2或...对于(i = 2; i> = 0; i--),sizeof数组的值为2(开始,while,do)..... 2,1,0但是您没有数组[2]索引为2的数组取决于编程语言,它会给你一个你不需要或想要的计算机内存的错误或值,无论哪种方式更好地在数组内启动,在这种情况下,你想从index 1并且计数到零,因此你从数组的大小减去1(在这种情况下为2),所以它看起来像(i = size -1; i gt; = 0; i--).... 1 ,那就是你想要的

wiyox
12-17-2021 10:25, 10:25 AM
好的,如果我不减1或仅仅是为了提高系统效率,它会给系统一个问题吗?
不会伤害任何东西。

Nano8880
12-17-2021 11:46, 11:46 AM
感谢,并感谢所有回应的人。

ligeldeng
12-17-2021 13:06, 01:06 PM
...关于效率有动态和静态内存分配,与静态分配在c (我认为MQL是一个C 衍生物,也有静态分配),程序工作更快,因为内存的大小是在编译时已知的。从数组外部开始的问题(如果从内存中获取任意值)是,例如,如果总结这些值,则会得到不希望的结果。例如,程序存储大小为4的数组的数据,您想总结一下,在内存中的下一个地方存在来自另一个数组MEM 0011 VAL 5(array_1 [0])的值MEM 0012 VAL 8(array_1 [ 1])MEM 0013 VAL 1(array_1 [2])MEM 0014 VAL 4(array_1 [3])MEM 0015 VAL 5000(array_2 [0])从4开始到0,你将得到5018,但你想要的结果是18

wiyox
12-17-2021 14:27, 02:27 PM
如果在标准功能中构建抽象过程,那么它会更好吗? OrdersTotal(),OrdersHistoryTotal等?
不是真的,如果你真的想知道你有多少订单你将不得不记得添加一个

Nano8880
12-17-2021 15:48, 03:48 PM
如果在标准功能中构建抽象过程,那么它会更好吗? OrdersTotal(),OrdersHistoryTotal等?