//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество позиций. |//+----------------------------------------------------------------------------+int NumberOfPositions(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersTotal(), kp=0;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) kp++;
} } } } }
return(kp);
}
//+----------------------------------------------------------------------------+
而这是除此之外。
int BuyPos = NumberOfPositions(Symbol(),OP_BUY, Magic);
int SellPos = NumberOfPositions(Symbol(),OP_SELL,Magic);
记住旧的Byes数量,并与现在的数量进行比较,否则如何?
这正是我不能做的事情。
创建一个整数变量,将购买数量分配给它,然后当我想计算购买数量并与该变量的值进行比较时,它又不起作用了?
这些价值观没有错,它们都是正确的,但这不是我们要讨论的问题。
特别是星期五的问题,如果你的当地时间比你的经纪人的时间长X小时,那就没有关系了。
但想象一下,如果在你的本地电脑上,与经纪人的时差不是+1,而是-1。
而且有这个简单的条件。
在这种情况下。
1.经纪人将有星期五的第一个刻度,例如今天的刻度,它的时间是2014.11.07 00:00
2.从1970年1月 1日00:00起,到有关的刻度线,即2014年11月7日00:00 止,取所经过的秒数。
我们取从1970年1月 1日00:00到2014年11月6 日21:30 的秒数(这是昨天的日期,因为我们取当地电脑的时间,在打勾的那一刻不是星期五,而是星期四,也就是第6天,或者更准确地说,2014.11.06 23:00,相差1小时)。
瞧,第2点的秒数比第3点的多。
如果StringToTime() 函数从经纪人的服务器上获取日期,那么一切都会按计划进行,只有当时间超过21:30时,才会在星期五进行打印。
是的...我并没有马上理解这个问题。我的本地的总是比服务器的大,我没有遇到过这样的问题。唯一的出路是把这一天考虑进去,不使用缩短的时间表示。
嗯,是的,作为一个选项,向函数提供正确的时间,加上从TimeCurrent()中提取的日期,在这种情况下,问题似乎不应该是
顺便说一下,我的当地时间 总是比经纪人的时间大,但尽管如此,这个问题以上述方式出现在上周五的两个不同的经纪人(一个是模拟,第二个是真实)的同一时间。为什么会发生这种情况,仍然是一个谜。然而,该代码已经被另一个代码取代,所以这个问题应该不会再发生。
嗯,是的,作为一个选项,向函数提供正确的时间,加上从TimeCurrent()中提取的日期,在这种情况下,问题似乎不应该是
顺便说一下,我的当地时间总是比经纪人的时间大,但尽管如此,这个问题以上述方式出现在上周五的两个不同的经纪人(一个是模拟,第二个是真实)的同一时间。为什么会发生这种情况,仍然是一个谜。然而,该代码已经被另一个代码取代,所以这个问题应该不会再发生。
创建一个整数变量,将购买数量分配给它,然后再次计算购买数量并与该变量的值进行比较,这不可能吗?
你能给我一个代码的例子吗?
在比较之后,该变量必须被重写,否则同样的代码将被无限地执行。(比方说原来是6,变成了7,我需要在变量中写上比较后变成了7)
你能给我们一个代码的例子吗?
在比较之后,该变量必须被重写,否则同样的代码将被无限地执行。(假设原来有6个,现在有7个,我们应该在变量中写明比较后有7个)。
不用麻烦了,这是我使用的Kim的功能,它在所有的构建中都有效。
而这是除此之外。
你所要做的就是根据你的目标进行检查。
if(BuyPos >= n)不用麻烦了,这里有一个我使用的Kim功能,它在所有的构建中都有效。
而这是除此之外。
你所要做的就是根据你的目标进行检查。
不用麻烦了,这里有一个我使用的Kim功能,它在所有的构建中都有效。
而这是除此之外。
你所要做的就是根据你的目标进行检查。
插上电源,它可以无限期地工作...
能够使用这篇文章中的最后一个方法来解决这个问题 https://www.mql5.com/ru/articles/1399