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

 
AlexeyVik:

嗯,我的本地时间比服务器时间长1小时。

那么,你能解释一下这些价值的混乱之处吗?

这些价值没有任何令人困惑之处,它们是正确的,但这不是我们正在讨论的问题。

特别是星期五的问题,如果你的当地时间 比经纪人的时间长X小时,就没有关系。

但想象一下,如果在你的本地电脑上,与经纪人的时差不是+1,而是-1。

而且有这个简单的条件。

if(TimeDayOfWeek(TimeCurrent()) == 5 && TimeCurrent() >= StringToTime("21:30"))
   Print("Настала пятница и время больше чем 21:30");

在这种情况下。

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后弹出

 
Leonid123456:

你好。

有一个这样的任务。(无法将其附加到勾上)

如果一个挂单触发了{那么...}。

在我的EA中,我使用Terminal.mqh来计算订单。

终端 // Mas_Tip[0] 打开购买

// 如果买入订单的数量增加了1

如果(Mas_Tip[0]+1)

{

功能

}

一切正常。但它在每一个下一个刻度上都会被触发。

如何将此案附在蜱虫上?然后比较前一个tick和当前tick的值。

那你能把突出显示的字符串翻译成我们人类的语言吗?它应该是什么,以及执行这一行时你得到什么...
 
AlexeyVik:
你能把强调的那句话翻译成我们的语言吗?执行这一行时,应该是什么,得到什么...

// 如果买入订单的数量增加了1,那么......

{

功能,例如,打开或关闭其他订单...

}

不一定是这样的如果(Mas_Tip[0]+1) 我们可以做如果(Mas_Tip[0]>Mas_Tip[1]) //如果有比Cell更多的买单。例如,打开一个悬而未决的。

关键是在下一个跳动点,这个数据又是真的。

 
Leonid123456:

// 如果买入订单的数量增加了1,那么......

{

功能,例如,打开或关闭其他订单...

}

如果(Mas_Tip[0]+1)

在if的括号里,应该有一个bool,即真或假。

在这里,它显然是int。那是一个整数。

当然,真就是1,假就是0(如果我没弄错的话)。但这仍然是不对的。Mas_Tip[0] 返回什么

 
ikatsko:

如果(Mas_Tip[0]+1)

在if的括号里应该是一个bool,即真或假。

但在这里,它显然是int。那是一个整数。

当然,真就是1,假就是0(如果我没弄错的话)。但这仍然是不对的。Mas_Tip[0] 返回什么

未完成的买入订单数量。

 
Leonid123456:

// 如果买入订单的数量增加了1,那么......

{

功能,例如,打开或关闭其他订单...

}

不,这就是你想要的。实际上不是这样的。在数组Mas_Tip[0]中有一些值,如果它大于零,条件if(Mas_Tip[0])将为真。而如果我们在这个值上加1,它将永远是真的,因为未结订单的数量不能等于-1。

 
AlexeyVik:

不,那是你想要的方式。事实上,它不是。在数组Mas_Tip[0]中有一些值,如果它大于零,条件if(Mas_Tip[0])就已经是真的了。而如果我们在这个值上加1,它将永远是真的,因为未结订单的数量不能等于-1。


我试图用这种方式来做

   bool  Fact_1 = false;                    // Глобальная перемен.
       bool  Fact_2 = false;                    // Глобальная перемен.
//--------------------------------------------------------------------
int start()                                     // Спец. функция start
  {
                          // Локальная перемен.
   if (Fact_2==true)                            //Если сообщение уже..
      return;                                   //..было, то выходим
 
   if (Mas_Tip[0]+1)
      Fact_1 = true;                            // Произошло событие 1
 
   
 
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------
                               // Пользовательс. ф-ия
  {
             // Сообщение
   Fact_2 = true;                               // Произошло событие 2
   return;                                      // Выход из польз.ф-ии

}

事实证明,这是一个一次性事件。

 
ikatsko:

如果(Mas_Tip[0]+1)

在if的括号里应该是一个bool,即真或假。

但在这里,它显然是int。那是一个整数。

当然,真就是1,假就是0(如果我没弄错的话)。但这仍然是不对的。Mas_Tip[0] 返回什么

false为0,如果不为0则为true。

试试这句话

bool b;
b = 7.40;
if(b) Print("b = ", b);
编译器可能会对可能的精度损失 发出警告,但它会工作。
 

你可以丢弃Mas_Tip[0]。

如何获得一个事件。一个买家已经打开。

 
Leonid123456:

你可以丢弃Mas_Tip[0]。

如何获得一个事件。一个买家已经打开。

在某个变量中记住旧的买入计数,并将其与买入计数函数返回的当前值进行比较,否则如何?