mql5语言的特点、微妙之处以及技巧 - 页 244 1...237238239240241242243244245246247 新评论 Mikola_2 2024.02.10 14:38 #2431 Alexey Viktorov #:什么叫"在什么时间段"?函数只是返回星期几。周期与它有什么关系?输入任何时间都能得到星期几。输入你的出生日期,就能得到你出生时的星期几。下面是按蜡烛时间计算的星期 Period != timeframe。上述函数在某些日期范围内返回正确的星期,然后又返回错误的星期。在上述函数中,括号确实丢失了--你应该更加小心...... )))))))) Mikola_2 2024.02.10 14:44 #2432 Alexey Viktorov #:好吧,我也展示了函数的完整代码。再来一次:uchar WhatWeekDay(datetime t) { return uchar(t/(PeriodSeconds(PERIOD_D1))+4)%7; }不过,我同意你的观点。也许尼古拉是凭记忆写的,有不准确的地方。但说它不起作用也不太对。 谢苗-谢苗尼奇!......嗯,怎么说呢?......嗯,可以用,但并不总是这样)))))))) Nikolai Semko 2024.02.10 14:49 #2433 Mikola_2 #:不,没有用。 是的,对不起。我不知道自己怎么会搞砸。谢谢。 这当然是正确的方法: uchar WhatWeekDay(datetime t) { return uchar((t/(24*60*60)+4 )%7); } Aliaksandr Hryshyn 2024.02.10 14:52 #2434 Alexey Viktorov #:好吧,我也展示了函数的完整代码。再来一次:不过,我同意你的观点。也许尼古拉是凭记忆写的,有不准确的地方。但说它不起作用也不太对。void OnStart() { for(int i1=0; i1<100; i1++) Print(WhatWeekDay(i1*7*24*60*60)); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ uchar WhatWeekDay(datetime t) { return uchar(t/(PeriodSeconds(PERIOD_D1))+4)%7; }它并不总是有效,这是一个测试代码。结果:2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 ... 2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 2024.02.10 17:51:47.584 2 (EURUSD,H1) 4 2024.02.10 17:51:47.584 2 (EURUSD,H1) 0 2024.02.10 17:51:47.584 2 (EURUSD,H1) 0 2024.02.10 17:51:47.584 2 (EURUSD,H1) 0 ... 2024.02.10 17:51:47.584 2 (EURUSD,H1) 0 2024.02.10 17:51:47.584 2 (EURUSD,H1) 0 2024.02.10 17:51:47.584 2 (EURUSD,H1) 0 2024.02.10 17:51:47.584 2 (EURUSD,H1) 0 2024.02.10 17:51:47.584 2 (EURUSD,H1) 3 2024.02.10 17:51:47.584 2 (EURUSD,H1) 3 2024.02.10 17:51:47.584 2 (EURUSD,H1) 3 ...应该到处都是四 同样,屏幕是正确的:) amrali 2024.02.12 06:53 #2435 (uchar)((t/86400+4)%7) Nikolai Semko 2024.02.12 11:13 #2436 amrali # (uchar)((t/86400+4)%7)😂即使在预编译阶段,24*60*60 编译器也会将 24*60*60 转换为 86400。因此这不会影响性能。从逻辑概念的角度来看,24*60*60 的记录更易于阅读。 amrali 2024.02.12 14:37 #2437 关于交易、自动交易系统和交易策略测试的论坛 mql5 语言的特点、微妙之处和工作方法 Aliaksandr Hryshyn , 2024.02.10 15:52 void OnStart () { for ( int i1= 0 ; i1< 100 ; i1++) Print (WhatWeekDay(i1* 7 * 24 * 60 * 60 )); } //+------------------------------------------------ - -------------------+ //| | //+------------------------------------------------ - -------------------+ uchar WhatWeekDay( datetime t) { return uchar (t/( PeriodSeconds ( PERIOD_D1 )) + 4 )% 7 ; } 这是关于投掷,而不是关于 2 * 2 = 4 😉 uchar 值是 256 模。 上面的意思是 (a % 256) % 7,与 (a % 7) % 256 不同。 Nikolai Semko 2024.02.12 14:55 #2438 amrali #: 它是关于投影,而不是关于 2 * 2 = 4 😉 uchar 转存为 256 模。 上面的意思是 (a % 256) % 7,与 (a % 7) % 256 不同。 h ttps://www.mql5.com/ru/forum/170952/page243#comment_52244665 这里有什么问题? 你一定是在看以前的文章,懒得往前看了。 trader6_1 2024.02.12 15:39 #2439 Nikolai Semko #:这有什么问题吗? 关于这个 Print(uchar(257) % 7); // 1 Print(257 % 7); // 5 Nikolai Semko 2024.02.12 15:46 #2440 trader6_1 #:关于这一点: 哦,麻烦 参见上面的帖子 1...237238239240241242243244245246247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
什么叫"在什么时间段"?函数只是返回星期几。周期与它有什么关系?输入任何时间都能得到星期几。
输入你的出生日期,就能得到你出生时的星期几。
下面是按蜡烛时间计算的星期
好吧,我也展示了函数的完整代码。再来一次:
不过,我同意你的观点。也许尼古拉是凭记忆写的,有不准确的地方。但说它不起作用也不太对。
谢苗-谢苗尼奇!......嗯,怎么说呢?......嗯,可以用,但并不总是这样))))))))
不,没有用。
是的,对不起。我不知道自己怎么会搞砸。谢谢。
这当然是正确的方法:
好吧,我也展示了函数的完整代码。再来一次:
不过,我同意你的观点。也许尼古拉是凭记忆写的,有不准确的地方。但说它不起作用也不太对。
它并不总是有效,这是一个测试代码。结果:
应该到处都是四
同样,屏幕是正确的:)关于交易、自动交易系统和交易策略测试的论坛
mql5 语言的特点、微妙之处和工作方法
Aliaksandr Hryshyn , 2024.02.10 15:52
这是关于投掷,而不是关于 2 * 2 = 4 😉
uchar 值是 256 模。它是关于投影,而不是关于 2 * 2 = 4 😉
uchar 转存为 256 模。关于这个
关于这一点:
哦,麻烦
参见上面的帖子