int someA = OrdersTotal();
for (int a = 0; a < someA; a++)
if (OrderSelect(a, SELECT_BY_POS, MODE_TRADES))
if (OrderComment() == "Aelit" && OrderType() == OP_SELL)
OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), 0);
int someA = OrdersTotal();
for (int a = someA-1;a>=0 a--)
if (OrderSelect(a, SELECT_BY_POS))
if (OrderComment() == "Aelit" && OrderType() == OP_SELL)
OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0);
图形应该看起来像一条增加的直线。
你为什么这样认为呢?
你为什么决定这样做?
给Sergeev。
啊,现在我明白你的意思了。因为准确地记住了计数器应该与什么值进行比较,并且不改变它。也就是说,如果OrdersTotal 返回2,那么for将记住这一点,并以2来工作。
给Sergeev。
啊,现在我明白你的意思了。因为准确地记住了计数器应该与什么值进行比较,并且不改变它。因此,如果OrdersTotal返回2,那么for将记住这一点,并将与2一起工作。
不,我不是这么说的。
循环停止条件(在你的例子中,OrdersTotal())是在每个迭代 中计算的!!!!!。
所以第一次迭代时=2
第二次迭代时=1
你是一个程序员还是什么? 你不能理解基本的东西。
给Sergeev。
你让我大开眼界。我甚至特意打开了C++的IDE来检查它。而事实证明,你是加倍正确的!谢谢你!:)但是...即使你这样做,订单仍然没有被选中。
好吧,每个柱子的成交量都大于零,我需要在新柱子出现时重新计算它们的总和。
总量既可以上升也可以下降。
总量既可以上升也可以下降。
给Sergeev。
你让我大开眼界。我甚至特意打开了C++的IDE来检查它。而事实证明,你是加倍正确的!谢谢你!:)但是...即使你这样做,订单仍然没有被选中。
始终通过倒计时删除订单
但是...即使你让它变成这样,该订单仍然没有被选中。
而且它不会!
你按位置号做OrderSelect。
在第一次迭代中,你选择第一顺序,顺序位置a=0
在这个订单关闭后,订单的数量变成OrdersTotal=1。
这意味着,以前的二阶从位置1 变成了位置0。
但是在你的命令的第二次迭代 中,a=1,而不是0!这就是为什么你的命令被认为是不可能的。所以 现在不存在的position=1上的OrderSelect 将返回一个错误。
-------
现在,在写下一篇文章之前,先想一想。你能建议哪两个方案来避免这种动态。
我不明白。成交量是指一个条形图中的点数。第一个的体积是30,第二个是20,第三个是10。总数将是60。或者是吗?
取一个 有体积的时间序列,用笔重新计算
例如,有以下几卷
10, 15, 25, 8, 11, 24, 30
以下是三者的总和
50, 48, 44, 55
有升就有降,有降就有升。
这就像在生活中一样。