程序库: 多功能测试仪 - 页 16 1...91011121314151617181920212223...53 新评论 fxsaber 2020.01.25 12:39 #151 最便捷的方法是下载历史交易点数(在终端 中运行智能交易系统)。 #property description "下载蜱通过测试仪"。 sinput datetime inFromDate = D'2019.01.01'; // 从哪个日期开始上传刻度线 sinput bool inAllSymbols = false; // 按所有字符(真)或当前字符(假) #include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/zh/code/26132 string PrevTesterSettings = NULL; string GetMyName( void ) { return(StringSubstr(MQLInfoString(MQL_PROGRAM_PATH), StringLen(TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Experts\\"))); } bool RunMe( const datetime FromDate, const bool AllSymbols = false ) { const string Str = "[Tester]" + "\nExpert=" + GetMyName() + "\nSymbol=" + _Symbol + "\nOptimization=" + (AllSymbols ? "3" : "0") + "\nModel=4" + "\nFromDate=" + TimeToString(FromDate, TIME_DATE) + "\nToDate=" + TimeToString(TimeCurrent(), TIME_DATE) + "\nForwardMode=0" + "\nProfitInPips=1" + "\nOptimizationCriterion=0" + "\nVisual=0"; return(MTTESTER::SetSettings2(Str) && MTTESTER::ClickStart()); } int OnInit() { bool Res = !MQLInfoInteger(MQL_TESTER) && EventSetTimer(1); if (Res = Res && MTTESTER::GetSettings(PrevTesterSettings)) if (!(Res = RunMe(inFromDate, inAllSymbols))) MTTESTER::SetSettings2(PrevTesterSettings); return(Res ? INIT_SUCCEEDED : INIT_FAILED); } void OnTimer() { if (MTTESTER::IsReady()) { MTTESTER::SetSettings2(PrevTesterSettings); if (inAllSymbols) MTTESTER::CloseNotChart(); ExpertRemove(); } } 之后,您就可以在终端中运行与刻度线相关的脚本,而不必在没有生命迹象的情况下等待很长时间。 fxsaber 2020.01.28 06:39 #152 Stanislav Korotky:通过支持文本格式的测试器传递设置(如符号、时间框架和其他可在每行中传递给TesterSettings.Add 的内容),您可以无需为TesterSettings.Add 调用编写自己的 MQL5 控制器。然后制作一个通用的 Expert Advisor 控制器(添加到库中),它只接受一个参数作为输入--一个包含设置的文件,并在其基础上实现SetTesterSettings,这样用户就不需要编写任何程序了。 最终,我做到了这一点。我们从 ini 文件中生成一批任务并发送执行。 因此,ini 变体并不总是合适的。 ZY在此 实现。 fxsaber 2020.02.02 12:41 #153 对于练习测试仪自动化的人,我建议查看以下设置MQL5\Profiles\Tester\Groups\*.txt MQL5\Profiles\Tester\Symbols\*.txt fxsaber 2020.02.11 02:55 #154 fxsaber:下载勾选历史记录的最便捷方法(在终端 中运行 EA)。之后,您就可以在终端中运行与 ticks 相关的脚本,而不必在没有生命迹象的情况下等待很长时间。 这对于从真实符号的刻度历史中创建自定义符号非常有用。自定义符号与原始符号的不同之处在于,它们将完全对应刻度线和条形图。因此,测试仪(示例)不会出现错误结果。 Evgenii Kuznetsov 2020.02.12 12:39 #155 遗憾的是,即使在测试仪中下载了刻度线历史记录,仍然无法从终端访问几年前的刻度线数据。我必须先从测试仪中将刻度线卸载到文件中,然后再通过终端将其加载到自定义符号中。下面是一个智能交易系统的示例,首先应在测试仪中以真实刻度线模式运行,收集刻度线,然后在终端中将刻度线加载到自定义符号中。 附加的文件: SymbolFilter.mq5 11 kb fxsaber 2020.02.12 13:02 #156 Evgenii Kuznetsov: 遗憾的是,即使在测试仪中下载了刻度线历史记录,仍然无法从终端访问几年前的刻度线数据。我必须先从测试仪中将刻度线卸载到文件中,然后再通过终端将其加载到自定义符号中。下面是一个 Expert Advisor 的示例,它必须先在测试器中以真实刻度线模式运行以收集刻度线,然后在终端中将刻度线加载到自定义符号中。 您的方案可以通过在终端运行智能交易系统来实现,其中将使用 MTTester.mqh。 多年来,我从未遇到过用刻度线创建自定义符号的任务。有一年,我在终端中使用了刻度线,没有出现任何问题。也许您没有分段请求,只是在请求大间隔时因内存不足而踌躇不前。 Evgenii Kuznetsov 2020.02.12 13:33 #157 在内存不足的 情况下,CopyTicksRange 会给出-1,因此可以通过 GetLastError() 找出错误,但在我的情况下,它只给出了 0。 fxsaber 2020.02.12 13:43 #158 Evgenii Kuznetsov: 在内存不足的 情况下,CopyTicksRange 会给出-1,因此可以通过 GetLastError() 找出错误,但在我的情况下,它只给出了 0。 如果有数据可以复制,开发人员就可以查看并纠正错误。 Evgenii Kuznetsov 2020.02.12 14:52 #159 只需从 2013 年起在测试仪中以真实点数模式运行任何智能交易系统即可。 然后在终端运行脚本: void OnStart(){ MqlTick Ticks[]; Print("!!! ",CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, (ulong)D'2013.01.01' * 1000, (ulong)D'2013.02.01' * 1000)); } fxsaber 2020.02.12 15:36 #160 Evgenii Kuznetsov:是的,只需从 2013 年起在测试仪中以真实点数模式运行任何 EA 即可。然后在终端运行脚本: 2020.02.12 16:35:03.435 Test6 (USDSEK,M1) !!! 2370228 1...91011121314151617181920212223...53 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
最便捷的方法是下载历史交易点数(在终端 中运行智能交易系统)。
之后,您就可以在终端中运行与刻度线相关的脚本,而不必在没有生命迹象的情况下等待很长时间。
通过支持文本格式的测试器传递设置(如符号、时间框架和其他可在每行中传递给TesterSettings.Add 的内容),您可以无需为TesterSettings.Add 调用编写自己的 MQL5 控制器。然后制作一个通用的 Expert Advisor 控制器(添加到库中),它只接受一个参数作为输入--一个包含设置的文件,并在其基础上实现SetTesterSettings,这样用户就不需要编写任何程序了。
最终,我做到了这一点。我们从 ini 文件中生成一批任务并发送执行。
因此,ini 变体并不总是合适的。
ZY在此 实现。
下载勾选历史记录的最便捷方法(在终端 中运行 EA)。
之后,您就可以在终端中运行与 ticks 相关的脚本,而不必在没有生命迹象的情况下等待很长时间。
这对于从真实符号的刻度历史中创建自定义符号非常有用。自定义符号与原始符号的不同之处在于,它们将完全对应刻度线和条形图。因此,测试仪(示例)不会出现错误结果。
遗憾的是,即使在测试仪中下载了刻度线历史记录,仍然无法从终端访问几年前的刻度线数据。我必须先从测试仪中将刻度线卸载到文件中,然后再通过终端将其加载到自定义符号中。下面是一个 Expert Advisor 的示例,它必须先在测试器中以真实刻度线模式运行以收集刻度线,然后在终端中将刻度线加载到自定义符号中。
您的方案可以通过在终端运行智能交易系统来实现,其中将使用 MTTester.mqh。
多年来,我从未遇到过用刻度线创建自定义符号的任务。有一年,我在终端中使用了刻度线,没有出现任何问题。也许您没有分段请求,只是在请求大间隔时因内存不足而踌躇不前。
在内存不足的 情况下,CopyTicksRange 会给出-1,因此可以通过 GetLastError() 找出错误,但在我的情况下,它只给出了 0。
如果有数据可以复制,开发人员就可以查看并纠正错误。
只需从 2013 年起在测试仪中以真实点数模式运行任何智能交易系统即可。
然后在终端运行脚本:
是的,只需从 2013 年起在测试仪中以真实点数模式运行任何 EA 即可。
然后在终端运行脚本: