structMqlDateTime
{
int year; // Year int mon; // Month int day; // Day int hour; // Hour int min; // Minutes int sec; // Seconds int day_of_week; // Day of week (0-Sunday, 1-Monday, ... ,6-Saturday) int day_of_year; // Day number of the year (January 1st is assigned the number value of zero)
};
另外,你不必在每次打勾 时都重新创建对象,这将使错误日志中充斥着4200对象已经存在,因此,作为替代,在初始函数中创建一次对象,然后你可以在以后将它移到所需的日期。
来避免这个问题。
或者另外你可以在前面检查一下,看看这个对象是否已经存在。
ObjectFind(...
马可, 保罗
非常感谢你的回答和帮助
然而,我现在面临的问题是如何转换我从文件中获取的信息(日期),并使用它来画线。
在代码中,文件在MT4文件部分被保存为#线,保存的日期为2019.05.18 05:30:00,第一步,我把日期的最后3位去掉
现在,下一步是我无法实现的,以使时间变成D'格式。
我尝试了以下方法
但这并不奏效,所以我将字符串转换为时间
在这两种情况下,行都是在1970.01.01 00:00创建的,所以问题是要把文件中的日期转换成MT4可以用来创建V行的有意义的东西。
我附上了代码,也许你能发现我的错误。在代码中我创建了两行,但没有一行是在我从文件中检索到的日期上创建的。
你把日期写在引号之间,是错误的。
因为它是:
D'2019.05.18 05:30'
两者都是日期性的。就像
都是双数。你把日期写在引号之间,是错误的。
因为它是:
D'2019.05.18 05:30'
我这样做是因为我正在将文本转换为上面William Roeder 说明的日期格式。 我不确定我的错误在哪里,因为我正确地保存了日期并将其转换为D'格式,但仍然无法创建行,尽管如果我从文件中复制日期并手动创建行,它将进入正确的日期。
我想你会有更多的运气来保存和读取长整数值的时间,如自纪元以来的秒数,而不是这些字符串到日期时间 的转换。
日期的保存包括秒,例如,这是从文件中提取的时间 2019.05.19 15:00:00
然而,在我的测试中,我发现如果我使用带秒的日期,它将在1970.01.01 创建行, 这就是我删除秒的原因,但仍然无法在日期的正确位置创建文件。
在这种情况下,我想你也可以看一下时间结构。
你可以使用
TimeToStruct()
函数,如下所示。
然后你可以从中提取所有需要的值。
这些是整数值,所以没有字符串可供处理。