帮助我学习如何编程。 - 页 7

 
Aleksei Stepanenko:

真是一派胡言...

是的,Dmitry的周期调用并不是最优雅的,但他写了一段有趣的代码,从日期中获得一周的数字。当我使用它时,我总是想到它有一个好词。

但是,迪米特里,你必须对人更有礼貌,更温和。

我对人很有礼貌。

 

Dmitri的代码没有保存下来,但这里有一个基于它的重做。

//получаем номер недели в году
int GetWeekNumber(datetime eTime)
   {
   MqlDateTime eDate;
   //получаем дату начала года
   TimeToStruct(eTime,eDate);
   eDate.mon=1;
   eDate.day=1;
   eDate.hour=0;
   eDate.min=0;
   eDate.sec=0;
   datetime StartTime=StructToTime(eDate);
   //возвращаем дату назад в структуру, чтобы определить день недели начала года
   TimeToStruct(StartTime,eDate);
   return(int((eTime-StartTime+86400*eDate.day_of_week)/604800));
   }
 
Dmitry Fedoseev:

我对人很有礼貌。

为什么会有这样的攻击性,迪米特里?

我只是问如何在循环中正确使用PositionsTotal()。而不是你个人,而是一般情况下。而你就这样断气了。怎么了,迪米特里?

我希望不是我指的是你说的对你的对话者进行非人性化处理

 
Aleksei Stepanenko:

Dmitri的代码没有保存下来,但这里有一个基于它的重做。

哦,B(a)ogies!这是一个天才头脑的宏伟创造!难以置信!谢谢你的分享。我还没有成长,还没有成长到如此巨大的高度。这就像黑客的伎俩。这真令人吃惊。我不明白写的是什么。这是完美的代码。太糟糕了,你把它改变了一下,它没有像以前那样闪闪发光。

 
Nikolay Mitrofanov:

哦,B(a)ogs!这是一个巧夺天工的伟大创造!

好一个亡命之徒!

 
Dmitry Fedoseev:

非常有趣的是,大家又一次兴奋起来--哦,我为一个新手写了多么错误的代码......每个人都在告诉我关于它的一切......太神奇了!

这从未发生过。没有人批评这个代码。这都是关于喜好和对循环的看法。

而目前在PositionsTotal()上,已经出现了关于它的争议。

在你看来,你是为了代码而被攻击的。但现实是,没有人关心这个问题。

什么是正确的,什么是可以同时进行的,没有太多的变种。这是一个选择的问题。


而现在,有了我奇妙的专家顾问,它可以告诉你选择哪种循环的方法(在三种经常使用的方法中),所有关于宣布循环的争论的必要性根本就消失了)这不是好消息吗,德米特里?

让我们一起为我们的共同成功而欢欣鼓舞吧!我们共同解决了一个长期以来的MQL论坛的争议!最后!所有的程序员和同情者万岁!"。

 
Tio Nisla:
我想在前面补充一下,如果somefunc()函数除了返回一些金额外还做一些其他的操作,比如计算交易参数,这样的使用会导致难以捕捉的神器,并可能导致代码作者陷入昏迷:"Ht?怎么会有4次?O_o F$#@!!!它不是应该在那里出现三次吗?为什么我的EA对我撒谎?"。这就是我所说的 "shithcod",一位专家对其愤怒到发根。我没有提出来,因为这很明显,但你为我做到了。但是你没有考虑到,通过动态计算的索引寻址而不需要对数组进行重新初始化是另一回事。在裸露的系统中,这通常会导致GPF,在有智能指针和数组的PLUS中,会导致异常及其处理程序。在mql中,并不清楚它导致了什么。

不应该有三次,而应该有一次。

你能画出如何让它变成这样吗?

 
Dmitry Fedoseev:

我对人很有礼貌。

迪米特里,这是一位非常高水准的专家。

 
Nikolay Mitrofanov:

我在写关于发展时的理解。首先是学习 - 然后是行动。

相反,你写道:首先是行动,然后是思考和梳理。

这似乎是同一件事。但那样的话,他们为什么要写代码实例和文档呢?)是为了让人们少做伤害吗?我认为这正是原因所在。你怎么看?

在发展中学习?实际上,我们正在谈论编程的第一步。在编写第一份EA时,最好是先得到结果,然后再弄清楚代码的美观和简洁。

我现在要离开这个对话框。这都是无用的。

 
Aleksei Stepanenko:

Dmitri的代码没有幸存下来,但这里有一个基于它的重做。

我认为它应该更简单,就像这样

return ((int)(day_of_year/7))

年份的序列号在MqlDateTime 结构中