错误、漏洞、问题 - 页 2995 1...298829892990299129922993299429952996299729982999300030013002...3184 新评论 Francuz 2021.04.08 15:00 #29941 datetime a = D'2021.04.08 10:00:00'; int handle; double Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { handle = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\ATR.ex5", 14); ::Print(__FUNCTION__ + "| PERIOD_CURRENT = ", EnumToString(_Period)); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { if(handle != INVALID_HANDLE) { ::CopyBuffer(handle, 0, a, 1, Buffer); double BS = ::NormalizeDouble(Buffer[0], _Digits); ::Print(__FUNCTION__ + "| a = ", a); ::Print(__FUNCTION__ + "| BS ", BS); handle = INVALID_HANDLE; } // return value of prev_calculated for next call return(rates_total); } 有谁能回答为什么这段代码只在分钟上正确工作? 这是一个指标。 P.S. 在分钟以外的时间段,它输出错误的数值。 Nikolai Semko 2021.04.08 17:38 #29942 Francuz: 有谁能回答为什么这段代码只在分钟上正确工作?这是一个指标。P.S.在分钟以外的时间段,它输出错误的数值。 因为你只在OnCalculate 的第一次访问时进行了一次迭代,当时prev_calculated = 0。在这一点上,酒吧可能还没有形成。而所有的TFs都是由1M个TFs组成。 在支票中插入。 if(prev_calculated>0 && handle != INVALID_HANDLE) 而且一切都会成功。 Andrey Dik 2021.04.09 05:13 #29943 在ME中有两个EA标签打开,都有未保存的修改,我们在其中一个标签上按下编译按钮,看到ME在两个EA中都保存了修改。为什么?谁要求他这样做的? 如果ME在编译前保存了链接文件中的变化,这将是合乎逻辑的行为,但so....。 当然,因为它是如此简单,为什么要分清哪些文件属于谁? 保存所有打开的文件 并完成它要容易得多....。 Nikolai Semko 2021.04.09 05:19 #29944 Andrey Dik: 在ME中,两个EA的标签都打开了,都有未保存的修改,按下其中一个的编译按钮,看到ME在两个EA中都保存了修改。为什么?谁要求他这样做的? 否则它怎么能做到呢?这是唯一的办法。在所有的IDE中,情况都是如此。 Andrey Dik 2021.04.09 05:26 #29945 Nikolai Semko: 还能怎样? 这是唯一的办法。 所有的IDE都是这样的。 是否在所有的IDE中都确定? 我刚刚试过VS,是的,行为是一样的。 但是,一个产品的弱智行为,即使是最有名的产品,也应该被视为一个基准吗? 让我们复制VS的所有错误和误解,为什么? )) Nikolai Semko 2021.04.09 05:49 #29946 Andrey Dik:是不是所有的都准确?我刚刚试了一下VS,是的,行为是一样的。但是,一个产品的弱智行为,即使是最知名的产品,也应该被认为是基准吗? 那就让我们复制VS的所有错误和误解,为什么。)) 在去年,我至少使用了9个不同的IDE。到处都是这样。好吧,从逻辑上想想,如果一个文件有几个主站,而这些主站又看不到对方的修改,会有多少问题呢? 如果一个用一种代码编译,另一个用另一种代码编译,你已经要创建两个同名的ex5文件,等等。 Andrey Dik 2021.04.09 05:59 #29947 为什么不把导航仪做成市场观察窗口那样的表格?市场 观察》已经实施了分类,赞一个!- 我们已经要求了很久了。 现在,我们的新梦想的时代来临了,即显示导航器的内容并按列进行排序:标题、 作者、编译日期、最后运行日期、来源的可用性、程序类型(以及禁用排序并恢复到当前视图),这是最酷的实用性。 Andrey Dik 2021.04.09 07:10 #29948 Nikolai Semko: 在过去一年中,我至少使用了9个不同的IDE。每个地方都是这样的。 那么从逻辑上想,如果一个文件有几个主机,而这些主机又看不到对方的修改,会有多少问题。 如果一个用一种代码编译,另一个用另一种代码编译,你已经需要创建两个同名的ex5文件,等等。 如果打开了两个不同的EA,它们之间会有什么联系呢? 只有属于猫头鹰的inludes应该被保存,而这些inludes属于谁并不重要。 例如,如果你打开一些没有保存的*txt文件,它与编译的文件和/或项目 没有任何关系,那么为什么要保存它? Francuz 2021.04.09 09:04 #29949 Nikolai Semko:因为你只在第一个OnCalculate 入口处进行了一次迭代,此时prev_calculated = 0。在这一点上,酒吧可能还没有形成。而所有的TFs都是由1M个TFs组成。 在支票中插入。而且一切都会成功。 你错过了重点。该代码应该只工作一次。其目的是表明被调用的指标不起作用。问题是,在任何变体中,如果调用的指标(和调用者)的时间框架与分钟框架不同,则无法工作。我发现这是MetaTrader的 一个错误,只能用拐杖解决。而这个问题是相当古老的。你可以在 "我不能从较早的TF 123中获得指标数据 "中 阅读细节。 Вопросы от начинающих MQL5 MT5 MetaTrader 5 2012.03.12www.mql5.com Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000... Artyom Trishkin 2021.04.09 09:34 #29950 Francuz:你错过了重点。该代码应该只起一次作用。其目的是清楚地表明,被称为的指标不起作用。问题是,如果被调用的指标(以及调用者)的时间框架与分钟框架不同,那么该指标将无法工作。我发现这是MetaTrader的 一个错误,只能用拐杖解决。而这个问题是相当古老的。你可以在 "我无法从主要的TF123中获得指标数据 "中 详细了解。 那是很久以前的事了。这个问题早已经解决了。你需要至少每两分钟访问一次非本地时间框架/符号的数据。在主循环中,如果还没有来自请求的时间框架的数据,你需要退出循环--只需返回0来等待下一个tick,指标就知道历史数据还没有被计算。 1...298829892990299129922993299429952996299729982999300030013002...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
有谁能回答为什么这段代码只在分钟上正确工作?
这是一个指标。
P.S.
在分钟以外的时间段,它输出错误的数值。
有谁能回答为什么这段代码只在分钟上正确工作?
这是一个指标。
P.S.
在分钟以外的时间段,它输出错误的数值。
因为你只在OnCalculate 的第一次访问时进行了一次迭代,当时prev_calculated = 0。在这一点上,酒吧可能还没有形成。而所有的TFs都是由1M个TFs组成。
在支票中插入。
而且一切都会成功。
在ME中有两个EA标签打开,都有未保存的修改,我们在其中一个标签上按下编译按钮,看到ME在两个EA中都保存了修改。为什么?谁要求他这样做的?
如果ME在编译前保存了链接文件中的变化,这将是合乎逻辑的行为,但so....。 当然,因为它是如此简单,为什么要分清哪些文件属于谁? 保存所有打开的文件 并完成它要容易得多....。
在ME中,两个EA的标签都打开了,都有未保存的修改,按下其中一个的编译按钮,看到ME在两个EA中都保存了修改。为什么?谁要求他这样做的?
还能怎样?
是否在所有的IDE中都确定?
我刚刚试过VS,是的,行为是一样的。 但是,一个产品的弱智行为,即使是最有名的产品,也应该被视为一个基准吗? 让我们复制VS的所有错误和误解,为什么?
))
是不是所有的都准确?
我刚刚试了一下VS,是的,行为是一样的。但是,一个产品的弱智行为,即使是最知名的产品,也应该被认为是基准吗? 那就让我们复制VS的所有错误和误解,为什么。
))
为什么不把导航仪做成市场观察窗口那样的表格?市场 观察》已经实施了分类,赞一个!- 我们已经要求了很久了。
现在,我们的新梦想的时代来临了,即显示导航器的内容并按列进行排序:标题、 作者、编译日期、最后运行日期、来源的可用性、程序类型(以及禁用排序并恢复到当前视图),这是最酷的实用性。
在过去一年中,我至少使用了9个不同的IDE。每个地方都是这样的。
如果打开了两个不同的EA,它们之间会有什么联系呢? 只有属于猫头鹰的inludes应该被保存,而这些inludes属于谁并不重要。
例如,如果你打开一些没有保存的*txt文件,它与编译的文件和/或项目 没有任何关系,那么为什么要保存它?
因为你只在第一个OnCalculate 入口处进行了一次迭代,此时prev_calculated = 0。在这一点上,酒吧可能还没有形成。而所有的TFs都是由1M个TFs组成。
在支票中插入。
而且一切都会成功。
你错过了重点。该代码应该只工作一次。其目的是表明被调用的指标不起作用。问题是,在任何变体中,如果调用的指标(和调用者)的时间框架与分钟框架不同,则无法工作。我发现这是MetaTrader的 一个错误,只能用拐杖解决。而这个问题是相当古老的。你可以在 "我不能从较早的TF 123中获得指标数据 "中 阅读细节。
你错过了重点。该代码应该只起一次作用。其目的是清楚地表明,被称为的指标不起作用。问题是,如果被调用的指标(以及调用者)的时间框架与分钟框架不同,那么该指标将无法工作。我发现这是MetaTrader的 一个错误,只能用拐杖解决。而这个问题是相当古老的。你可以在 "我无法从主要的TF123中获得指标数据 "中 详细了解。
那是很久以前的事了。这个问题早已经解决了。你需要至少每两分钟访问一次非本地时间框架/符号的数据。在主循环中,如果还没有来自请求的时间框架的数据,你需要退出循环--只需返回0来等待下一个tick,指标就知道历史数据还没有被计算。