for(i=0; i<p; i++)
{
if (OrderSelect(a[i][1], SELECT_BY_TICKET, MODE_TRADES)) // выделенное красным лишнее, тут pool не имеет значения
{
if (OrderCloseTime() == 0) ClosePosBySelect();
}
}
for(i=0; i<p; i++)
{
if (OrderSelect(a[i][1], SELECT_BY_TICKET, MODE_TRADES)) // выделенное красным лишнее, тут pool не имеет значения
{
if (OrderCloseTime() == 0) ClosePosBySelect();
}
}
这只是为了便于感知。当我在写作时,但除此之外,是的,你不必如此。但它也不会干扰我。
它根本就不会打印任何数组值。
artmedia70:
在循环之前取消打印一个数组的所有单元格的值--也许小狗在那里挖东西?
//+-------------------------------------------------------------------------------------+//| Закрытие ордеров, отсортированных по размеру лотов |//+-------------------------------------------------------------------------------------+void ClosePosBySortLots()
{
double a[][2];
int p = 0;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderMagicNumber() != i_magic) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderType() < 2)
{
p++;
ArrayResize(a, p);
a[p-1][0] = OrderLots();
a[p-1][1] = OrderTicket();
}
}
// pr ("ClosePosBySortLots(): " + "p = " + p);if (p > 0)
{
ArraySort(a, WHOLE_ARRAY, 0, MODE_DESCEND);
for(i=0; i<=p; i++)
{
pr("a[i][1] = " + a[i][1]);
i++;
}
for(i=0; i<p; i++)
{
if (OrderSelect(a[i][1], SELECT_BY_TICKET, MODE_TRADES))
{
if (OrderCloseTime() == 0) ClosePosBySelect();
}
}
}
}
我将重复我昨天提出的问题。我不想把它贴在一个单独的主题里。如果有什么不清楚的地方,我将回答所有问题。
我仍然很难关闭所需的位置。情况是这样的。
1.正在跟踪关闭职位的情况。
2.一旦最后一个头寸在取款线处关闭......所有未结头寸和待结头寸都应立即关闭。所有的东西都是按批次分类封闭的,也就是说,大批次的东西一次过,然后是小的。这只是为了获得订单方面的经验。
实施情况如下。
在start() 中的每一个刻度上。
我们对关闭市场订单感兴趣,因为待定的订单已按要求删除。下面是我们的情况。
由于某些原因,一些订单没有被关闭。我看到一些片段就打印出来,我什么都不懂。下面是一个例子。
在评论中,你可以看到lastOOTHist = 01:30:00,尽管这实际上并不正确。如果我们在结果窗口检查lastOOTHist,我们会看到
他们的关门时间是不同的...
这里有什么问题吗?
你把这一切都搞混了...
就在这里。
在循环之前取消打印数组中所有单元格的值--也许那里有一只狗?
你能告诉我如何在交易开始时找出点差的大小,或者更好的是,如何让它显示在日志中?
在开盘后立即进行交易。
你的传播在日志中。交易开始后,立即进行。
你的传播在日志中。非常感谢您!做了一个EA,在测试器上能赚钱,在演示器上则更糟。它在现实中的表现可能会更差。我没有看到我看了多少次的视觉效果。
当我在视觉上观察点差时,我没有看到超过三个点。我的想法是,在最强的动作中,它根本没有显示,或者它扩大了,所以我没有足够的时间注意到它。
Alpari的点差很低,但我猜测在强势移动时点差会明显增加。在DucasCopi,点差甚至更小,但大的佣金,如果账户是几百万美元,他们会变得更小。
你是否对点差大小 做过研究,每分钟变动超过50点?随着这些变动,平均价差增加到什么数值?
我问Alpari,他们没有说。
当你把一个变量(数组)按值传入一个函数时,一个局部变量在函数中被创建,你在标题中声明它:myFunct(int my_var)。这样一来,这个变量的变化就不能在函数之外看到。而在数组的情况下,编译器会提醒你这一点。
如果你想让变量值的变化在外部可见(在函数之外),可以通过引用传递变量:myFunct(int& my_var)
但是,是的。毕竟,数组是全局 声明的。 但函数内部的变化是局部的。这就是为什么有作为微观结构的功能。为了在当地实施微型问题。
祝大家好运!请告诉我如何使OrderOpenPrice()返回带有五位小数的价格。如果终端返回4位数,如果是5位数,还是返回4,四舍五入。
祝大家好运!请告诉我如何使OrderOpenPrice()返回带有五位小数的价格。如果终端返回4位数,如果是5位数,还是返回4,四舍五入。
Forexman77:
非常感谢您!做了一个EA,它在测试器上赚钱,在演示器上更糟糕。它在现实中的表现可能会更差。我已经看了三次视觉效果了。
当我在视觉上观察点差时,我没有看到超过三个点。我的想法是,在最强的动作中,它根本没有显示,或者它扩大了,所以我没有足够的时间注意到它。
Alpari的点差很低,但我猜测在强势移动时点差会明显增加。在DukasCopi,点差甚至更低,但大额佣金,如果账户是几百万美元,他们会变得更小。
你是否对点差大小做过研究,每分钟变动超过50点?随着这些变动,平均价差增加到什么数值?
我问Alpari,他们没有说。
我在分析周五的价差,顺便说一下,就在Alpari上。
黄色的细条代表每条的最大差价(我用的是一分钟)。红色粗体字--每条的最小差价。正如你所看到的,白天的点差从5到14点不等,为五位数。但在21:00服务器时间点差不会低于10点,在一天结束时一般会上升到52点。我在价格急剧变化前抓住了一个有趣的时机,价差急剧上升。
这是一个有点堆积的问题...
就在那里。
这只是为了便于感知。当我在写作时,但除此之外,是的,你不必如此。但它也不会干扰我。
它根本就不会打印任何数组值。
在循环之前取消打印一个数组的所有单元格的值--也许小狗在那里挖东西?
输出根本是空的...
它根本就没有输出任何数组值。
它根本没有输出任何东西...
为什么你在循环的主体中增加i?
和这个:i<=p,为什么 "或等于"?