任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 769

 
evillive:
记住旧的Byes数量,并与现在的数量进行比较,否则如何?
这正是不行的地方。
 
Leonid123456:
这正是我不能做的事情。
创建一个整数变量,将购买数量分配给它,然后再次计算购买数量,并与该变量的值进行比较,这不可能吗?
 
evillive:
创建一个整数变量,将购买数量分配给它,然后当我想计算购买数量并与该变量的值进行比较时,它又不起作用了?
谢谢你!
 
tuner:

这些价值观没有错,它们都是正确的,但这不是我们要讨论的问题。

特别是星期五的问题,如果你的当地时间比你的经纪人的时间长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月621:30 的秒数(这是昨天的日期,因为我们取当地电脑的时间,在打勾的那一刻不是星期五,而是星期四,也就是第6天,或者更准确地说,2014.11.06 23:00,相差1小时)。

瞧,第2点的秒数比第3点的多。

如果StringToTime() 函数从经纪人的服务器上获取日期,那么一切都会按计划进行,只有当时间超过21:30时,才会在星期五进行打印。

是的...我并没有立即理解这个问题。我总是让本地的比服务器的大,没有遇到过这个问题。唯一的出路是把这一天考虑进去,不使用缩短的时间表示。
 
AlexeyVik:
是的...我并没有马上理解这个问题。我的本地的总是比服务器的大,我没有遇到过这样的问题。唯一的出路是把这一天考虑进去,不使用缩短的时间表示。

嗯,是的,作为一个选项,向函数提供正确的时间,加上从TimeCurrent()中提取的日期,在这种情况下,问题似乎不应该是

顺便说一下,我的当地时间 总是比经纪人的时间大,但尽管如此,这个问题以上述方式出现在上周五的两个不同的经纪人(一个是模拟,第二个是真实)的同一时间。为什么会发生这种情况,仍然是一个谜。然而,该代码已经被另一个代码取代,所以这个问题应该不会再发生。

 
tuner:

嗯,是的,作为一个选项,向函数提供正确的时间,加上从TimeCurrent()中提取的日期,在这种情况下,问题似乎不应该是

顺便说一下,我的当地时间总是比经纪人的时间大,但尽管如此,这个问题以上述方式出现在上周五的两个不同的经纪人(一个是模拟,第二个是真实)的同一时间。为什么会发生这种情况,仍然是一个谜。然而,该代码已经被另一个代码取代,所以这个问题应该不会再发生。

是的,有几个变种。例如,你可以在周五晚上检查当地时间而不是服务器时间。但在这种情况下,如果你搞砸了电脑时间,你会有很多麻烦。
 
evillive:
创建一个整数变量,将购买数量分配给它,然后再次计算购买数量并与该变量的值进行比较,这不可能吗?

你能给我一个代码的例子吗?

在比较之后,该变量必须被重写,否则同样的代码将被无限地执行。(比方说原来是6,变成了7,我需要在变量中写上比较后变成了7)

 
Leonid123456:

你能给我们一个代码的例子吗?

在比较之后,该变量必须被重写,否则同样的代码将被无限地执行。(假设原来有6个,现在有7个,我们应该在变量中写明比较后有7个)。


不用麻烦了,这是我使用的Kim的功能,它在所有的构建中都有效。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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);

你所要做的就是根据你的目标进行检查。

if(BuyPos >= n) 
 
borilunad:

不用麻烦了,这里有一个我使用的Kim功能,它在所有的构建中都有效。

而这是除此之外。

你所要做的就是根据你的目标进行检查。

非常感谢您!
 
borilunad:

不用麻烦了,这里有一个我使用的Kim功能,它在所有的构建中都有效。

而这是除此之外。

你所要做的就是根据你的目标进行检查。

插上电源,它可以无限期地工作...

能够使用这篇文章中的最后一个方法来解决这个问题 https://www.mql5.com/ru/articles/1399