来自一个 "傻瓜 "的问题 - 页 203 1...196197198199200201202203204205206207208209210...277 新评论 Иван 2012.11.09 11:19 #2021 谢谢你的回答!移动了测试期的开始时间,并加入了将数据复制到专家顾问阵列中的检查。如果没有足够的数据,专家顾问就不会工作。double h[1000],l[1000]; if(CopyHigh("EURUSD",PERIOD_D1,1,1000,h)<1000 || CopyLow("EURUSD",PERIOD_D1,1,1000,l)<1000) return; 虽然,坦率地说,这种解决问题的方式很出乎意料--终端中的图表似乎有条形(一切都已经从交易 服务器上下载了大量的股票),但测试者却没有机会接触到它们。 以某种方式将这种情况直接写在文档中,作为 "如何在测试期开始时绕过测试者的限制 "标题下的一个例子,会很有用。 Yedelkin 2012.11.09 12:02 #2022 solandr: 虽然,坦率地说,这种解决问题的方式很出乎意料--客户终端的图表似乎有条形(一切都已经从交易 服务器上下载了大量的股票),但测试者却无法接触到它们。 请看《手册》中关于测试的部分。在我看来,有一种想法是,在 "终端-测试者 "的组合中,终端充当服务器,测试者充当终端。也就是说,如果终端有所有可用的历史记录,那么在测试器中的相同数量的历史记录是不够的。测试人员根据测试的设置,自行下载历史记录,可能会发生这种历史记录的数量不足以满足被测试程序的逻辑。 我自己还没有为测试大的时间框架而加载历史记录,但与其增加测试间隔,不如尝试在代码中插入所谓的 "加载历史记录的脚本"。在理念上,这个脚本应该为测试提供必要的历史深度(尤其是你已经复制了它的工作逻辑)。 Slava 2012.11.09 12:28 #2023 Yedelkin: 我自己没有用下载历史记录来测试大的时间框架,但与其增加测试间隔,不如尝试在代码中插入所谓的 "下载历史记录的脚本"。按照想法,这个脚本应该为测试提供必要的历史深度(尤其是你已经复制了它的工作逻辑)。 它将不会起作用 Yedelkin 2012.11.09 12:32 #2024 stringo: 这是不可能的。 我明白了。因此,我很幸运地用一个类似的脚本下载了M1上几个工具的历史记录(请求的深度没有超过两三个星期)。历史就在那里,但由于它到底出现了什么,我没有去想它。 Иван 2012.11.09 12:45 #2025 stringo: 这是不可能的。 这真的没有用。测试员按照自己的规则坚定地下载历史记录,而下载历史记录的脚本是内置在专家顾问中的,不能下载任何额外的东西。 Yedelkin 2012.11.09 12:48 #2026 solandr: 这真的没有用。测试员按照自己的规则坚定地下载历史记录,而下载历史记录的脚本是内置在专家顾问中的,不能下载任何额外的东西。 那么这一点就不清楚了:如果我只想测试最后一个月,但程序要求分析3年前的数据,我应该怎么做? Valerii Mazurenko 2012.11.09 13:16 #2027 Yedelkin: 那么这一点就不清楚了:如果你只想测试最后一个月,但程序需要3年的D1数据进行分析,怎么办? 你第一次访问历史记录时,测试器将开始下载(像这样)。 Olegs Kucerenko 2012.11.09 15:28 #2028 这个案子很早以前就被发现了。 在D1中,历史是与+1年相关的。因此,如果你指定01.01.2012开始测试,那么专家顾问立即开始交易,平均周期应该小于260。也就是说,它将在测试期开始时用2011年的数据进行计算。如果我们需要,比如说,520天的平均数,那么我们可以尝试表示测试期的开始,01.01.2011.在这种情况下,数据将从2010年开始,520天的平均值将在2012年初获得。专家顾问不应该在没有数据的情况下进行交易。 Yedelkin 2012.11.09 15:52 #2029 notused: 当你第一次访问历史记录时,测试者将开始恢复下载(我想是这样)。 但是,事实上,下载历史记录的脚本做的是同样的事情,即访问历史记录(如果失败了,它就会访问一次以上)。 Yedelkin 2012.11.09 15:54 #2030 Karlson: 如果我们想要一个520天的平均值,我们可以尝试指定测试的开始时间为2011年1月1日。在这种情况下,数据将来自2010年,在2012年初,将有一个520天的平均数。 所以我的第一个建议,即增加测试间隔是唯一可能的解决方案?:/ 1...196197198199200201202203204205206207208209210...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你的回答!移动了测试期的开始时间,并加入了将数据复制到专家顾问阵列中的检查。如果没有足够的数据,专家顾问就不会工作。
虽然,坦率地说,这种解决问题的方式很出乎意料--终端中的图表似乎有条形(一切都已经从交易 服务器上下载了大量的股票),但测试者却没有机会接触到它们。
以某种方式将这种情况直接写在文档中,作为 "如何在测试期开始时绕过测试者的限制 "标题下的一个例子,会很有用。
请看《手册》中关于测试的部分。在我看来,有一种想法是,在 "终端-测试者 "的组合中,终端充当服务器,测试者充当终端。也就是说,如果终端有所有可用的历史记录,那么在测试器中的相同数量的历史记录是不够的。测试人员根据测试的设置,自行下载历史记录,可能会发生这种历史记录的数量不足以满足被测试程序的逻辑。
我自己还没有为测试大的时间框架而加载历史记录,但与其增加测试间隔,不如尝试在代码中插入所谓的 "加载历史记录的脚本"。在理念上,这个脚本应该为测试提供必要的历史深度(尤其是你已经复制了它的工作逻辑)。
我自己没有用下载历史记录来测试大的时间框架,但与其增加测试间隔,不如尝试在代码中插入所谓的 "下载历史记录的脚本"。按照想法,这个脚本应该为测试提供必要的历史深度(尤其是你已经复制了它的工作逻辑)。
这是不可能的。
那么这一点就不清楚了:如果你只想测试最后一个月,但程序需要3年的D1数据进行分析,怎么办?
这个案子很早以前就被发现了。 在D1中,历史是与+1年相关的。
因此,如果你指定01.01.2012开始测试,那么专家顾问立即开始交易,平均周期应该小于260。
也就是说,它将在测试期开始时用2011年的数据进行计算。
如果我们需要,比如说,520天的平均数,那么我们可以尝试表示测试期的开始,01.01.2011.
在这种情况下,数据将从2010年开始,520天的平均值将在2012年初获得。
专家顾问不应该在没有数据的情况下进行交易。
在这种情况下,数据将来自2010年,在2012年初,将有一个520天的平均数。