如何指代一个特定的时间 - 页 3

 
datetime ejfel = StrToTime("00:00");
int shift=iBarShift(NULL,PERIOD_M15,ejfel,true);
nyitohigh=iHigh(NULL,PERIOD_M15,shift);
nyitolow=iLow(NULL,PERIOD_M15,shift);
  1. 如果你使用High[nyitohigh],你的代码会在任何非M15的图表上中断。
  2. 你可以使用StrtoTime,或者我之前展示的 方法
 
RaptorUK:

没有,因为Time[x]返回的是一个日期时间......但你可以做到 ......

阅读关于TimeHour 的内容


大家好
讨厌的生意占用了我所有的时间,但现在又回到了编码上。

感谢所有这些回复

我正在考虑在这个交易时间范围内使用一些这样的代码,我现在看到有许多不同的方法来处理这个问题。
if(Hour() >= 2 && Hour()<17)

再次感谢
 
最后一个关于日期时间常数和iBarsShift使用的日期时间格式的问题

我看到这里的有关文件。
https://docs.mql4.com/basis/types/datetime

https://docs.mql4.com/series/iBarShift


我想选择一个像这样的蜡烛,也许是这样的

如果(TimeToStr(Time[1]) == 7:15)
Print(Low[1], " 7:15 low")。

我知道7:15不是正确的日期时间方法;然而这就是我在比较每日重现时间时遇到的问题

IBarsShift显示了相同的日期时间常数方案,但它似乎只适用于部分日期时间,而不是每天重复发生的时间。

我假设我必须使用IBarsShift来找出搜索该特定条形时间的移位,它返回该条形的移位,然后我可以使用移位来选择该蜡烛并使用它的数据。
至少我是这么认为的。


如果我能够弄清楚如何选择一个每日重复出现的时间,而不是一个特定日期的特定时间,我也许可以完成我想做的工作。
还有一个具有相同格式的Time[]或TimeToStr(Time[])或一些类似的方法,这样我就可以进行比较,并将数据用于该蜡烛。

我并不完全相信我要使用IBarsShift,因为我也并不真的想通过开盘时间 来搜索一个酒吧

我想知道何时Time[1]或甚至Close[1]==a_particular_time。

请指教
谢谢




 
Agent86:
最后一个关于Datetime常量和iBarsShift使用的数据时间格式的问题

我看到这里有相关的文件。
https://docs.mql4.com/basis/types/datetime

https://docs.mql4.com/series/iBarShift


我试图选择一个类似这样的蜡烛,也许

如果(TimeToStr(Time[1]) == 7:15)
Print(Low[1], " 7:15 low")。

我知道7:15不是正确的日期时间方法;然而这就是我在比较每日重现时间时遇到的问题

为什么不直接计算7:15的日期时间值? 如何?

计算午夜的数据时间......加上( (7 * PERIOD_H1) + 15)* 60

午夜的数据时间

 
RaptorUK:
为什么不直接计算7:15的日期时间值? 如何计算?
计算午夜的日期时间 ......加上 ( (7 * PERIOD_H1) + 15)* 60

就像我之前在这个主题 上已经发布的那样

Agent86:如果你不打算麻烦地阅读我们发布的内容并学习,我们就在浪费我们的时间。

 
WHRoeder:

就像我之前在这个主题 上已经发布的那样

是的,但那是去年......从那时起每个人都在睡觉;-)
 
RaptorUK:

为什么不直接计算7:15的日期时间值? 如何计算?

计算午夜的日期时间 . . . 加入( (7 * PERIOD_H1) + 15)* 60

午夜的数据时间

谢谢

所以我可以编写这样的代码。

数据时间 time_select = ( (7 * PERIOD_H1) + 15)* 60
如果(Time[1] == time_select)
Print(Time[1], '' and", Low[1])。

但当PERIOD_H1值不被用作指标的时间框架枚举值时,PERIOD_H1是什么?我在文档中没有看到任何关于以其他方式使用它的内容。

但这听起来确实像我所追求的,选择一个特定的时间与特定蜡烛的时间进行比较。
谢谢
 
WHRoeder:

就像我之前在这个主题 上已经发布的那样

Agent86:如果你不打算麻烦地阅读我们发布的内容并学习,我们就在浪费我们的时间。

你好
谢谢你的答复

我确实读了你的帖子,那是关于时间范围或范围/过滤器的,我理解了结论,但没有完全理解方程式。

根据你的回答,我不得不假设我不明白如何创建一个表达式,以正确的形式比较类似if(Time[1] == 7:15)的东西,因为我不明白你发布的方程式。

 
datetime now = Time[0],
         bod = now - now % 86400,
         HR1800 = bod + 18*3600,
         HR2100 = bod + 21*3600;
if (Time[1] >= HR1800 && Time[1] < HR2100) ...

请确认

如果这实际上是我需要的同一个答案,我并不是想问同样的问题,但我认为这不是,否则我就不会再问。

谢谢


 
RaptorUK:
是的,但那是去年......从那时起每个人都在睡觉;-)
大笑

毋庸置疑。
我真的想快速学习mql,并花更多的时间在这上面
不幸的是,我的生意完全是个讨厌鬼,在过去的一年里消耗了太多的时间。
我已经做了一些调整,所以希望我可以再次持续进行。

谢谢大家的回答
 
Agent86:
谢谢

所以我可以编写这样的代码。

数据时间 time_select = ( (7 * PERIOD_H1) + 15)* 60
如果(Time[1] == time_select)
Print(Time[1], '' and", Low[1])。

但当PERIOD_H1值不被用作指标的时间框架枚举值时,PERIOD_H1是什么?我在文档中没有看到任何关于以其他方式使用它的内容。

你真的需要开始学习你在文档中的方法 . .

进入任何使用TimeFrame的函数,你会看到timeframe枚举 . . . 它链接到这里。 时间框架枚举,这将告诉你Period_H1是一个60的值 . . . 换句话说,是60分钟 .. . 60分钟*60=秒 ...... 数据时间是以秒为单位的。


你的编码是行不通的 ......你的 time_select 不是 数据时间 ......记住,什么是数据时间? 从文档中 ......"数据时间类型(整数,代表从1970年1月1日午夜开始经过的秒数)。" 如果你想要一个表示早上7:15的数据时间,它必须是1970年1月1日到今天早上7:15所经过的秒数。

你所计算的是从午夜到今天早上7点15分的秒数,而这不是一个日期时间。