新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 474

 
@Konstantin Nikitin 明白了,谢谢!
 
Rewerpool:
@Konstantin Nikitin 你是否建议将这些参数放在函数体之外?还是像我在最后一张截图中写的那样离开它们?
当然,它们必须是在函数之外。你通过调用这个函数不断地更新和比较它们。
 
Konstantin Nikitin:

把它放在全球层面上。你将永远让它们等于0,因为每次函数被调用时,都会声明一个新的函数。

静态--没有。
 
Konstantin Nikitin:
当然,这是在功能之外。你通过调用这个函数不断地更新和比较它们。
你在提示自己,几乎不知道什么是...
 
Artyom Trishkin:
你在一点一点地告诉自己什么是...

你最初看的是函数本身吗?

void NOTIFICATION()
{

int DayT=0,BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
//......
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
//......
}
}

DayT BarTime 在这里应该如何改变?他们将永远是0号伤口。

if(DayT!=Day())

它将永远作为真理发挥作用,并且

if (BarTime==Time[0])

作为一个谎言。

 
Konstantin Nikitin:

你最初是自己看了这个功能吗?

DayT BarTime 在这里应该如何改变?他们将永远是0。
你说把它们放在全局变量 中。这足以让它们成为静态的,而不是把所有东西都拖到一堆。
 
Artyom Trishkin:
你说要把它们放在全局变量 中。这足以让它们静止不动,而不是把它们都放在一个堆里。
这取决于你的喜好,但他们一开始就没有正确申报。
 

事实证明,你也可以这样做????

void NOTIFICATION()
{
static int DayT=0;
static datetime BarTime;

 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
如果我把它们带到全局层面,它们也可以从其他函数中被查询到
 
Rewerpool:
如果我把它们放在一个全局层面,它们也可以从其他函数中查询到
不是正确的方法。
原因: