初学者的问题 MQL5 MT5 MetaTrader 5 - 页 532

 
-Aleks-:
我们将得到我们需要四舍五入的秒数--四舍五入是问题。

咄咄逼人

datetime Day00=86400*(time[n]/86400);//начало дня
并有四舍五入到一天的开始。86400=24*60*60
 
-Aleks-:

我搞不清楚如何使用它。

第二个值需要"MqlDateTime&dt_struct//结构用于取值",我不明白如何使用这个MqlDateTime。

有一个时间。时间有这样的参数:年、月、日、小时、分钟、秒等。调用函数TimeToStruct(),你可以将时间分解成这些部分。然后,例如,你可以将小时、分钟和秒清零--你得到一天的开始。

MqlDateTime是一种数据类型,就像int、bool等一样。它只是一个复合类型,即为了获得其字段(小时、分钟、秒......)的访问权,你需要使用一个点。例如:dt_struct.hour - 小时值。阅读更多关于结构的信息,请访问https://www.mql5.com/ru/docs/basis/types/classes

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
日志中的顺序 的这个评论 是什么意思,因为它什么都没有改变

 
Aleksey Lebedev:

很好

并有一个四舍五入的开始。86400=24*60*60
根据你的公式,我们得到了当前条形图和远程之间的天数,但这些天数是有条件的,可能是今天9点,前一天1小时,那么秒差将是122400 ,也就是1.42天--当四舍五入为1天时,需要是2。
 
Alexey Kozitsyn:

有时间了。时间有一些参数,如:年、月、日、小时、分钟、秒,等等。通过调用TimeToStruct()函数,你将时间分解为这些部分。然后,例如,你可以将小时、分钟和秒清零--你得到一天的开始。

MqlDateTime是一种数据类型,就像int、bool等一样。它只是一个复合类型,即为了获得其字段(小时、分钟、秒......)的访问权,你需要使用一个点。例如:dt_struct.hour - 小时值。阅读更多关于结构的信息,请访问https://www.mql5.com/ru/docs/basis/types/classes

而如何,对不起,进行这种归零?
 
-Aleks-:
根据你的公式,我们得到了当前栏和远程之间的天数,但这些天数是有条件的,即可能是当天的9点和前一天的1小时。 那么秒差将是122400,等于1.42天--当四舍五入为1天时,需要有2。

损失一天,23h+24h+9h=2天8h...如果我需要的话,我不需要这个公式。

我需要在当前时间框架的每个图形上进行计算。为了计算,我需要知道上层时间框架的日期(天)。我在上面附上了代码--重点是在每个柱子上知道当前时间框架内柱子打开时上方TF的最大价格

再一次。
datetime Day00=86400*(time[n]/86400);//начало дня для time[n]



而你说结构...:)

 
Aleksey Lebedev:

损失一天,23h+24h+9h=2天8h...如果你需要的话,你不需要这个公式。

再一次。



而你说结构...:)

为什么你有23个小时--我写的是1个小时,但重点并没有改变。

24(前一天-昨天一小时)+24(昨天-今天一小时)+8(今天一小时后-减去一小时)=56/24=2.33,所以它构成了两天,你同意吗?

 
-Aleks-:

为什么你有23个小时--我写了1个小时,但本质上没有改变

24(前一天--昨天1点钟)+24(昨天--今天1点钟)+8(今天1点钟以后--减去1点钟)=56/24=2,33,所以是两天,你同意吗?

前天23小时+

昨天24小时+

今天9h=

2天8小时=2,(33)天

这就是正确的做法。

int DayN=time[0]/86400-time[163]/86400;

不要紧,没有必要)
 
Aleksey Lebedev:

昨日23时前+

昨天24小时+

今天9h=

2天8小时=2,(33)天

正确的方法是这样的。

不要紧,没有必要)

现在让我们想象一下,这一天不是9点,而是19点

24(前天+24(昨天-今天1小时)+18(今天1小时后-减去1小时)=66/24=2.75,即构成三天,你同意吗?

仿佛每天的范围都没有变化,白天的计算结果是2天,然后是3天--这就是麻烦。

变体

 int DayN=time[0]/86400-time[163]/86400;

这也不好,如果我们假设当前的条形图是1小时,而计算的条形图是23小时,在这种情况下,计算的结果将是0,而它应该是1。
 
-Aleks-:
如果我们假设当前条形图是1小时,而计算出的条形图是23小时,这也是不行的,在这种情况下,计算的结果是0,应该是1。

它将是1,两个时间都是先四舍五入到一整天,然后再减去。