开发人员。MT5终端的时间格式 - 页 5

 
avoitenko:


为了给它,datetime 类型应该变成10字节,MqlDateTime结构应该重新焕发活力

哇,你太得意忘形了 :)

长就够了。它是8个字节。


根本没有人在谈论结构问题。 一切都应该保持现在的状态。

 
avoitenko:

我读了这个主题,意识到毫秒只需要一个运动的兴趣。能够以毫秒的精确度测量100米跑的价格。

给你,datetime 类型应该变成10字节,而MqlDateTime结构应该变成胖子

等待MQL6的到来,那里会出现毫秒计时器、勾选历史和其他东西。但我不认为现在添加它有什么意义。IMHO。



阅读和理解是不同的事情。

但是谢谢你计算MqlDateTime会占用多少字节,这将严重影响我的12G,我已经看到MT5的交换。

Sereyev说,我认为从一开始就很清楚,但我忘了我在哪个论坛上。毫秒不是用来与服务器同步的,而是用来理解事件的顺序 !

 

sergeev:

长就够了。8个字节。

建议进一步...

如何将你的长转换为时间并提取毫秒。

这将需要额外的结构、数据类型 和几个三个新的函数来进行转换。

为什么?当有一个现成的包装物的日期时间时。

 
avoitenko:

建议进一步...

如何将你的长转换为时间并提取毫秒。

这将需要额外的结构、数据类型 和几个三个新的函数来回转换。

当有一个现成的包装的datetime时,为什么?

安德鲁,恕我直言,但你还没有考虑过你的答案。

毫秒 为单位的时间是以秒为单位的时间乘以1000+那些非常毫秒的数量。

共计

我把时间以毫秒为单位,然后除以1000,得到我们最喜欢的日期时间 及其所有功能。加上除法的余数--毫秒数。

就这样了。

 

sergeev:

我把时间以毫秒为单位,除以1000,就得到了我们最喜欢的具有所有可能性的日期时间。加上除法的余数就是毫秒数。

那么,为了知道时间,我将不得不用什么东西除以什么东西?还有一个四舍五入的错误?有什么办法可以在不分裂的情况下绕过它吗?

 
avoitenko:

所以我必须用什么东西除以什么东西才能知道时间?四舍五入的误差呢?有什么办法可以在不分裂的情况下绕过它吗?

但这些数字是整数 :)

如果你不想除掉它,就取最后三位数,这就是毫秒。

 
sergeev:

如果你不想除数,就取最后三位数,也就是毫秒数。

我怎样才能在不分割的情况下带走它们?转换为字符串,并将右边的三个字符转换为整数?这并没有激励我。

而获得除法、乘法和其他运算的余数的额外操作,以获得毫秒的时间,是某种野蛮的行为。IMHO。就这一点而言,它们应该是现成的。

我想知道的不是这个,而是为什么最初的开发者选择UNIX格式来存储时间,而不是我们现在所讨论的那种,即毫秒?

他们一定知道些什么。

 

日期时间类型

Тип datetime предназначен для хранения даты и времени в виде количества секунд, прошедших с 01 января 1970 года. Занимает в памяти 8 байт.

你所要做的就是把它变成这样。

datetime类型被设计用来存储日期和时间,作为自1970年1月1日起经过的毫秒数。它占用了8个字节的内存。

所有这些分裂和其他的废话与它有什么关系?时间可以用任何单位存储(甚至是特氏)。它可以转换为任何单位(甚至是地球上的小时/秒),甚至是火星单位。这不会使用于转换的计算资源量变小或变大。转换只需要人的简单理解,而不是机器的理解。

也许他们决定省钱,使历史数据库的压缩性更强。亲爱的开发者,为了历史而回答,他们为什么选择秒杀?我认为他们只是认为更高的精确度是不必要的,因为即使现在他们也不明白为什么需要这些毫秒。

 
papaklass:

我将从另一个角度来看待这个问题。

1.出价=1.30245 成交量为50手。这个级别持续30毫秒。

2.出价=1.30244量75手。这个水平持续25毫秒。

3.出价=1.30243量300手。它存在了2秒。

这些信息将有助于你的交易。

也许对于管道主义者来说是的......但哪里有这样的经纪人,可以零延迟地将你的50手进入市场?

 
avoitenko:

我怎样才能在不分割的情况下带走它们?转换为字符串,并将右边的三个字符转换为整数?这并没有激励我。

你有没有想过,数据时间是如何转换为结构的? 不是通过除法和余数?

还是你认为它的工作方式不同?http://msdn.microsoft.com/ru-RU/library/windows/desktop/ms724284%28v=vs.85%29.aspx

就这一点而言,它们应该是现成的。

你已经得到了8个字节--你还需要开发商提供什么?

有趣的不是这个,而是为什么开发者最初选择了UNIX格式来存储时间,而不是我们现在谈论的格式,即毫秒?

你似乎一直在谈论某种时间格式。 好吧,你知道哪些?

我个人知道3个。

- 4个字节--从unix时代1970到2038的秒数(INT)。

- 8字节 - 从1601到30828的100纳秒数(FILETIME)。

- 8字节 - 从1970年unix纪元到2038年的毫秒数(INT64)。

还有一个8字节的时间存储结构SYSTEMTIME,但它是派生出来的,等等。


我所建议的是,我们给MT服务器中已经有的东西--来自unix时代的8个字节。

藏什么?:)

FILETIME structure (Windows)
  • msdn.microsoft.com
Contains a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC). Syntax Members dwLowDateTime The low-order part of the file time. dwHighDateTime The high-order part of the file time. Remarks To convert a FILETIME structure into a time that is easy to display to a user, use the FileTimeToSystemTime...