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

 

如何检查某一时间的状况?例如,在M5图表上,在22:59,即在条形图收盘前一分钟。检查整个一分钟的情况。

      //22:59
      if(open[i]>close[i] && high[i]-low[i]>=100*Point)
        {
         BufferUP[i]=low[i]-distance*Point;
        }
 
PolarSeaman:

如何检查某一特定时间的状况? 例如,在M5图表上,在22:59,也就是在条形图收盘前一分钟。

在历史上的指标中--只有通过读取年轻的TF(在这种情况下是M1)的数据,我们将不得不大惊小怪。但对于零点的酒吧。

  1. 计算出关闭酒吧的剩余时间。
  2. 如果有1分钟或更少,我们就做必要的事情。

 
Ihor Herasko:

......好了,为了零点吧。

  1. 计算到酒吧关闭的时间。
  2. 如果剩下1分钟或更少,那就做必要的事。

也就是说,当前时间减去酒吧营业时间

如果时间不在22:59, 23:00的范围内,也许我们应该跳过这个迭代。

如何正确书写这个条件?

 
PolarSeaman:

是不是,目前的时间减去酒吧的开场时间? 它的计算时间是否少于一分钟?

如果时间不在22:59, 23:00范围内,也许可以跳过迭代。

我如何正确书写这个条件?

如果时间是明确设置的,那么就和上面的方案一样。

input uint i_uHoursStart = 22; // Час начала действия диапазона
input uint i_uMinutesStart = 59; // Минуты начала действия диапазона
input uint i_uHoursEnd = 23; // Час окончания действия диапазона
input uint i_uMinutesEnd = 00; // Минуты окончания действия диапазона

uint g_uTimeStart, g_uTimeEnd;

int OnInit()
{
...
   g_uTimeStart = i_uHoursStart * 60 + i_uMinutesStart;
   g_uTimeEnd = i_uHoursEnd * 60 + i_uMinutesEnd;
...

}

...
uint uCurDayMinutes = Hour() * 60 + Minute();
if (uCurDayMinutes >= g_uTimeStart && uCurDayMinute < g_uTimeEnd)
{
   // Время от 22:59 до 23:00
}

我没有检查代码。可能有误印和一些错误。这里最主要的是思想的方向。

你还必须检查小时和分钟的数值是否正确。毕竟,用户可以输入38小时和112分钟这样的数值。

 
Ihor Herasko:

如果时间是明确设置的,那么就和上面一样了。

我还没有检查过代码。可能有错别字和一些错误。这里最主要的是思想的方向。

你还应该检查小时和分钟的数值是否正确。毕竟,用户可以输入38小时和112分钟这样的数值。

在眼睛里,用户,为112分钟)

为什么不能像这样?

if (TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES)>="22:59"&&TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES)<"23:00")

在指定时间不显示

将有几个范围,每个范围都要被关闭

 

报价可能会 "睡着 "一分钟,你会错过时间)

正确的做法是制作一个定时器,使本地时间当前时间 同步,并在定时器中 "捕捉 "正确时间。

 
PolarSeaman:

在眼睛里,对用户,在112分钟内)

为什么你不能这样做呢?

这正是错误的解决方案,因为你在比较字符串,而不是数字。虽然你也可以用TimeToStr做一些事情。但这种方法注定要比用数字操作慢。毕竟,字符串操作比最简单的算术操作(+、-、/、*)要花费更多时间。

将会有几个范围,每个范围都必须被禁用。

这是通过将所需范围的值存储到数组中来实现的。诚然,不清楚这在配置参数中会是什么样子--必须做太多的配置。不过,解决方案确实存在。不简单,但它们是可用的。

 
Taras Slobodyanik:

报价可能会 "睡着 "一分钟,你会错过时间)

正确的方法是制作一个定时器,使本地时间当前时间 同步,并在定时器中 "捕捉 "正确时间。

好吧,你不必在固定的时间做任何事情。所以它是可以的))。

 
Taras Slobodyanik:

报价可能会 "睡着 "一分钟而错过时间)

正确制作一个定时器,同步本地和当前时间,并在定时器中 "捕捉 "正确时间

你能在OnTimer()中插入OnCalculate()吗?

我不知道如何使本地时间当前时间 同步,我在帮助中找不到它

 
Ihor Herasko:

嗯,这就是在特定时间内什么都不做的代价。所以它是可以的 ))

如何,什么都不做?只需要检查这一分钟,并睡24小时)。