文章 "优秀程序员(第 01 部分):您必须停止做这 5 件事才能成为一名成功的 MQL5 程序员" - 页 2 123 新评论 Vadim Zotov 2021.09.09 19:46 #11 好文章。什么该做,什么不该做,这个概念解释得很清楚。 在这种情况下,具体例子中的错误并不会降低文章的价值,因为它的任务是帮助人们优化工作方式。文章出色地完成了这一任务,一切都写得尽可能简单明了。 谢谢你,欧米茄! Omega J Msigwa 2021.09.09 20:20 #12 fxsaber #: 循环中变量的第一个值是错误的。 不是一个 if,而是两个。 字符串比较(字符)必须放在最后。 bool 表达式未加括号。 输入函数中缺少魔法变量。 没有创建位置对象。 我第一次看到这个错误是在发布之后,因为我没有在元编辑器中编码,而是在编写时才发现的,但这并不是什么大问题,因为顺便说一下,所有使用的编码示例都只应该指定 Aliaksandr Hryshyn 2021.09.09 20:33 #13 有趣的... fxsaber #: 循环中的第一个变量值不正确。 不是一个 if,而是两个 if。 字符串比较(符号)应放在最后。 bool-expression 没有用括号标记。 输入函数中缺少一个魔法变量。 未创建位置对象。 成为优秀的程序员(第 1 部分):摆脱五个习惯,成为更好的 MQL5 程序员 Sergey Gridnev 2021.09.09 20:38 #14 Aliaksandr Hryshyn #:Interesting....:) Vitaly Muzichenko 2021.09.09 21:21 #15 Aliaksandr Hryshyn #:有趣的...成为优秀的程序员(第 1 部分):摆脱五个习惯,成为更好的 MQL5 程序员 这是自由职业,客户往往完全不理解代码,差评不是因为代码的质量。我写的,程序不给利润,所以评论在这里。 Maxim Kuznetsov 2021.09.09 23:59 #16 人人必读(文章作者更是如此):每个程序员 都应知道的 97 件事 GitHub - 97-things/97-things-every-programmer-should-know: Pearls of wisdom for programmers collected from leading practitioners. github.com Pearls of wisdom for programmers collected from leading practitioners. - GitHub - 97-things/97-things-every-programmer-should-know: Pearls of wisdom for programmers collected from leading practitio... Daniil Kurmyshev 2021.09.10 02:41 #17 资料来源 int CountPosByType(ENUM_POSITION_TYPE type) { int counter = 0; for(int i=PositionsTotal(); i>=0; i--) if(m_position.SelectByIndex(i)) if(m_position.Magic()==MagicNumber && m_position.Symbol()==Symbol() && m_position.PositionType()==type) { counter++; } return counter; } 在我看来,变体的工作速度更快,也更清晰: int PositionsByType(ENUM_POSITION_TYPE type) { int counter = 0; for(int i=PositionsTotal()-1; i>=0; i--) { if(!m_position.SelectByIndex(i)) return (INVALID_HANDLE); if(m_position.PositionType()!=type || m_position.Magic()!=MagicNumber || m_position.Symbol()!=Symbol()) continue; counter++; } return counter; } 1. 循环初始化中的错误在于,当我们进行回溯时,必须从数量中减去 1。 2.2. 如果无法通过库函数中的索引获得头寸,则需要带着错误退出循环,然后再处理或重 复函数,否则有可能获得不可靠的数量,而且您仍在进行财务工作,有时头寸中的数量很大, 这样的小事可能会导致损失。 3.首先应检查 bool 变量,然后检查ENUM 枚举,之后再检查 int、double、string,如果检查失败,则立即进入下一个循环元素。 如果通过 && 进行比较操作,程序必然会检查每个条件。 4.函数的名称也很重要,看起来更好的是 PositionsByType,这似乎是个小问题,但当您要使用这个函数时,您不需要去查函数库和它的目录,只需开始键入标准名称 Positions,您就会有多个调用 PositionsTotal、PositionsByType 的选项.....。 5.您需要尊重代码的宽度,不要使用水平滚动,因为这会大大降低可读性和开发速度。 Aliaksandr Hryshyn 2021.09.10 07:52 #18 你错了:"如果使用 && 进行比较操作,程序必然会检查每个条件。比较是按顺序进行的,直至第一个假条件。顺便说一句,在这种情况下,您还可以考虑条件不满足的概率。 Daniil Kurmyshev 2021.09.10 12:19 #19 Aliaksandr Hryshyn #: 你错了: "如果您通过 && 进行比较操作,程序必然会检查每个条件"。 比较是按顺序进行的,直到第一个假为止。 顺便说一句,在这种情况下,您还可以考虑条件不满足的概率。 是的,您纠正了我的错误,检查将一直进行到第一个 false,主要问题是小数据类型应该排在前面。 如果条件是由函数组成的,那么从消耗资源的角度来看,应该先处理最小的函数,然后再处理最大的函数,但不能破坏程序逻辑...... 我在所有项目中都使用了这种技术,对于处于优化模式的测试人员来说,速度提升是显而易见的。 [删除] 2021.09.10 12:57 #20 Vitaly Muzichenko #:这是自由职业,客户往往根本不理解代码,差评不是针对代码质量的。代码是你写的,程序没有给你带来利润,这就是差评。 你会提前告诉客户吗,还是钱更重要? 123 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
好文章。什么该做,什么不该做,这个概念解释得很清楚。
在这种情况下,具体例子中的错误并不会降低文章的价值,因为它的任务是帮助人们优化工作方式。文章出色地完成了这一任务,一切都写得尽可能简单明了。
谢谢你,欧米茄!
有趣的...
成为优秀的程序员(第 1 部分):摆脱五个习惯,成为更好的 MQL5 程序员
Interesting....
有趣的...
成为优秀的程序员(第 1 部分):摆脱五个习惯,成为更好的 MQL5 程序员
这是自由职业,客户往往完全不理解代码,差评不是因为代码的质量。我写的,程序不给利润,所以评论在这里。
人人必读(文章作者更是如此):每个程序员 都应知道的 97 件事
在我看来,变体的工作速度更快,也更清晰:
1. 循环初始化中的错误在于,当我们进行回溯时,必须从数量中减去 1。
2.2. 如果无法通过库函数中的索引获得头寸,则需要带着错误退出循环,然后再处理或重 复函数,否则有可能获得不可靠的数量,而且您仍在进行财务工作,有时头寸中的数量很大, 这样的小事可能会导致损失。
3.首先应检查 bool 变量,然后检查ENUM 枚举,之后再检查 int、double、string,如果检查失败,则立即进入下一个循环元素。
如果通过 && 进行比较操作,程序必然会检查每个条件。
4.函数的名称也很重要,看起来更好的是 PositionsByType,这似乎是个小问题,但当您要使用这个函数时,您不需要去查函数库和它的目录,只需开始键入标准名称 Positions,您就会有多个调用 PositionsTotal、PositionsByType 的选项.....。
5.您需要尊重代码的宽度,不要使用水平滚动,因为这会大大降低可读性和开发速度。
你错了:
是的,您纠正了我的错误,检查将一直进行到第一个 false,主要问题是小数据类型应该排在前面。
如果条件是由函数组成的,那么从消耗资源的角度来看,应该先处理最小的函数,然后再处理最大的函数,但不能破坏程序逻辑......
我在所有项目中都使用了这种技术,对于处于优化模式的测试人员来说,速度提升是显而易见的。
这是自由职业,客户往往根本不理解代码,差评不是针对代码质量的。代码是你写的,程序没有给你带来利润,这就是差评。