错误、漏洞、问题 - 页 1988 1...198119821983198419851986198719881989199019911992199319941995...3184 新评论 Slava 2017.09.05 07:06 #19871 Andrey Dik: 这是正确的,有,在这里。2017.09.05 2017.09.05 11:42:04:04 记录仪日志被清理了 2017.09.05 2017.09.05 00:00:00.000 服务器MetaTester 5停止了外面没有别的东西了。那么,为什么在测试人员的日志中没有完整的Print() 信息? 磁盘上的自由空间。如果磁盘上的剩余容量小于500兆,日志就会被清除。 Andrey Dik 2017.09.05 07:09 #19872 Slava: 释放磁盘空间。如果磁盘空间小于500兆,日志将被清除。它们是如何被清洗的?我在哪里可以了解到清洁算法的情况?日志已被清理的信息在哪里?如果方案没有做到预期的效果,如何与之合作?- 我们谈论的也是MT5,而不仅仅是专家顾问。在我的具体例子中,我们可以在日志中看到,刻度线被跳过。在这种情况下,用户该怎么想呢?有什么光明纯洁的思想可以不被粗俗的语言所遮蔽而产生? fxsaber 2017.09.05 07:10 #19873 在测试仪的可视模式下,速度滑块的位置被记住了。我把它设置为最大的一次。然后我运行一个重的EA--可视化器挂起。我必须做一个假的EA,并在visualizer中运行,把滑块往后移一点。在那之后,一个沉重的EA就不会再挂了。是否可以提前设置滑块位置(就像在MT4中一样)? fxsaber 2017.09.05 07:18 #19874 在一次没有可视化的运行中,我运行了一个专家顾问,执行了许多交易,用适当的信息堵塞了日志(测试者本身喜欢输出这些信息)。在回测结束后(或按下停止键后),我切换到日志标签,看到日志继续显示。这是第一句废话,既然回测已经结束,为什么不显示日志的结尾?我对这些日志不感兴趣,点击 "删除日志"。之后,日志被清除,并...继续装满老唱片! Slava 2017.09.05 07:23 #19875 Andrey Dik:它们是如何被清洗的?我在哪里可以了解到清洁算法的情况?日志已被清理的信息在哪里?如果方案没有做到预期的效果,如何与之合作?- 我们谈论的也是MT5,而不仅仅是专家顾问。在我的特定例子中,你可以在日志中看到跳过的刻度。在这种情况下,用户该怎么想呢?什么样的光明纯洁的思想可以不被粗俗的语言所掩盖而产生?你以前从未看过测试员的代理日志。关于清除日志的信息你自己已经显示了。如果你分析了测试者的日志,那么你就被先验地认为是一个熟练的用户。巫师必须始终关注他的工具。Windows资源管理器总是以红色显示可用空间小的驱动器即使你的仪表盘上有一个轮胎压力指示器,它也不能取消驾驶前对车辆的目视检查。 Anatoli Kazharski 2017.09.05 07:29 #19876 fxsaber:在一次没有可视化的运行中,我运行了一个专家顾问,执行了许多交易,用适当的信息堵塞了日志(测试者本身喜欢输出这些信息)。在回测结束后(或按下停止键后),我切换到日志标签,看到日志继续显示。这是第一句废话,既然回测已经结束,为什么不显示日志的结尾?我对这些日志不感兴趣,点击 "删除日志"。之后,日志被清除,并...继续装满老唱片!是的,在没有可视化的测试中,禁止向日志输出是一个好主意。更多的时候,你只想看到最后的结果(利润、测试时间等),它显示在最后面。 测试期间的细节可以在可视化模式下查看。在没有可视化的情况下,被动地倾倒这 "堆 "是没有意义的。 Alexey Viktorov 2017.09.05 07:47 #19877 Alexey Kozitsyn:如果你有兴趣,这里有测试代码。我想我已经找到了这个问题的原因和临时解决办法。我很难解释它是如何发生的,但似乎是颜色缓冲区 的干扰,把一切都搞乱了。以下是我在源代码中的改动,问题消失了#property indicator_separate_window #property indicator_plots 3 #property indicator_buffers 4 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ input bool inpUseArrows=false; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double bufGisto[]; double bufGistoColor[]; double bufArrowUp[]; double bufArrowDn[]; //--- const double EMPTY=EMPTY_VALUE; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Размечаем массив цветов color colors[2]; colors[ 0 ]= clrLime; colors[ 1 ] = clrRed; //--- Устанавливаем параметры графических серий // SetPlotParametersColorHistogram(0,0,bufGisto,bufGistoColor,false,"test gisto",colors,EMPTY,2); SetPlotParametersColorHistogram(2,2,bufGisto,bufGistoColor,false,"test gisto",colors,EMPTY,2); //--- Проверяем, нужно ли отображать объемы // if(inpUseArrows) // Если отображать нужно // { // SetPlotParametersArrow(1,2,bufArrowUp,false,"test up",EMPTY,clrLime,233,10); // SetPlotParametersArrow(2,3,bufArrowDn,false,"test dn",EMPTY,clrRed,234,-10); SetPlotParametersArrow(0,0,bufArrowUp,false,"test up",EMPTY,clrLime,233,10); SetPlotParametersArrow(1,1,bufArrowDn,false,"test dn",EMPTY,clrRed,234,-10); // } //--- IndicatorSetInteger(INDICATOR_DIGITS,0); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if(inpUseArrows) { ArrayInitialize(bufArrowUp,EMPTY); ArrayInitialize(bufArrowDn,EMPTY); } } //+------------------------------------------------------------------+ //| 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(prev_calculated==0) { ArrayInitialize(bufGisto,EMPTY); //--- if(inpUseArrows) { ArrayInitialize(bufArrowUp,EMPTY); ArrayInitialize(bufArrowDn,EMPTY); } //--- for(int i=0; i<rates_total; i++) { bufGisto[i]=(open[i]-close[i])/_Point; bufGistoColor[i]=(bufGisto[i]<0) ? 1 : 0; //--- /* if(inpUseArrows) { if(bufGisto[i]>20) bufArrowDn[i]=bufGisto[i]; else if(bufGisto[i]<-20) bufArrowUp[i]=bufGisto[i]; } */ if(inpUseArrows) { if(bufGisto[i]>20) bufArrowDn[i]=bufGisto[i]; else bufArrowDn[i] = EMPTY; if(bufGisto[i]<-20) bufArrowUp[i]=bufGisto[i]; else bufArrowUp[i] = EMPTY; } } } else if(rates_total>prev_calculated) { bufGisto[rates_total-1]=EMPTY; //--- if(inpUseArrows) { bufArrowUp[ rates_total-1 ] = EMPTY; bufArrowDn[ rates_total-1 ] = EMPTY; } } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| Параметры графического построения: цветная гист-а от 0 линии | //+------------------------------------------------------------------+ void SetPlotParametersColorHistogram(const int plotIndex,// Индекс графической серии const int bufferNum,// Номер первого буфера серии double& value[], // Буфер значений double& clr[], // Буфер цветов const bool asSeries, // Флаг нумерации как в таймсерии const string label, // Имя серии const color& colors[], // Цвета линии const double emptyValue = EMPTY_VALUE, // Пустые значения серии const int width = 0, // Толщина линии const ENUM_LINE_STYLE style = STYLE_SOLID, // Стиль линии const int drawBegin = 0, // Количество баров без отрисовки const int shift=0 // Сдвиг построения в барах ) { //--- Привязываем буферы SetIndexBuffer(bufferNum,value,INDICATOR_DATA); SetIndexBuffer(bufferNum+1,clr,INDICATOR_COLOR_INDEX); //--- Устанавливаем порядок нумерации в массивах-буферах ArraySetAsSeries(value,asSeries); ArraySetAsSeries(clr,asSeries); //--- Устанавливаем тип графического построения PlotIndexSetInteger(plotIndex,PLOT_DRAW_TYPE,DRAW_COLOR_HISTOGRAM); //--- Устанавливаем имя графической серии PlotIndexSetString(plotIndex,PLOT_LABEL,label); //--- Устанавливаем пустые значения в буферах PlotIndexSetDouble(plotIndex,PLOT_EMPTY_VALUE,emptyValue); //--- Устанавливаем количество цветов индикатора const int size=ArraySize(colors); PlotIndexSetInteger(plotIndex,PLOT_COLOR_INDEXES,size); //--- Устанавливаем цвета индикатора for(int i=0; i<size; i++) PlotIndexSetInteger(plotIndex,PLOT_LINE_COLOR,i,colors[i]); //--- Устанавливаем толщину линии PlotIndexSetInteger(plotIndex,PLOT_LINE_WIDTH,width); //--- Устанавливаем стиль линии PlotIndexSetInteger(plotIndex,PLOT_LINE_STYLE,style); //--- Устанавливаем количество баров без отрисовки и значений в DataWindow PlotIndexSetInteger(plotIndex,PLOT_DRAW_BEGIN,drawBegin); //--- Устанавливаем сдвиг графического построения по оси времени в барах PlotIndexSetInteger(plotIndex,PLOT_SHIFT,shift); } //+------------------------------------------------------------------+ //| Параметры графического построения: стрелки | //+------------------------------------------------------------------+ void SetPlotParametersArrow(const int plotIndex,// Индекс графической серии const int bufferNum,// Номер первого буфера серии double &value[],// Буфер значений const bool asSeries,// Флаг нумерации как в таймсерии const string label,// Имя серии const double emptyValue=EMPTY_VALUE,// Пустые значения серии const color clr=clrRed,// Цвет стрелок const int arrowCode= 159,// Код стрелок const int arrowShift = 0,// Сдвиг стрелок по вертикали const int width=0,// Толщина стрелок const int drawBegin=0,// Количество баров без отрисовки const int shift=0 // Сдвиг построения в барах ) { //--- Привязываем буферы SetIndexBuffer(bufferNum,value,INDICATOR_DATA); //--- Устанавливаем порядок нумерации в массивах-буферах ArraySetAsSeries(value,asSeries); //--- Устанавливаем тип графического построения PlotIndexSetInteger(plotIndex,PLOT_DRAW_TYPE,DRAW_ARROW); //--- Устанавливаем имя графической серии PlotIndexSetString(plotIndex,PLOT_LABEL,label); //--- Устанавливаем пустые значения в буферах PlotIndexSetDouble(plotIndex,PLOT_EMPTY_VALUE,emptyValue); //--- Устанавливаем цвет индикатора PlotIndexSetInteger(plotIndex,PLOT_LINE_COLOR,0,clr); //--- Устанавливаем код стрелок PlotIndexSetInteger(plotIndex,PLOT_ARROW,arrowCode); //--- Устанавливаем смещение стрелок по вертикали PlotIndexSetInteger(plotIndex,PLOT_ARROW_SHIFT,arrowShift); //--- Устанавливаем толщину стрелок PlotIndexSetInteger(plotIndex,PLOT_LINE_WIDTH,width); //--- Устанавливаем количество баров без отрисовки и значений в DataWindow PlotIndexSetInteger(plotIndex,PLOT_DRAW_BEGIN,drawBegin); //--- Устанавливаем сдвиг графического построения по оси времени в барах PlotIndexSetInteger(plotIndex,PLOT_SHIFT,shift); } //+------------------------------------------------------------------+把索引DRAW_COLOR_HISTOGRAM放在 "最后",这样INDICATOR_COLOR_INDEX就在最后。如果缓冲区不被填充数值,它必须被填充PLOT_EMPTY_VALUE fxsaber 2017.09.05 07:49 #19878 为什么测试员要这样做?2017.09.05 10:42:53.349 Tester Experts\fxsaber\TesterBenchmark_Example.ex5 on EURUSD,M1 from 2017.08.01 00:00 to 2017.09.05 00:00 2017.09.05 10:42:53.349 Tester EURUSD: history data begins from 1981.01.02 00:00 2017.09.05 10:42:53.349 Tester EURUSD: preliminary downloading of history ticks started, it may take quite a long time 2017.09.05 10:42:53.349 Tester EURUSD: "bases\MetaQuotes-Demo\ticks\EURUSD\201709.tkc" download 2017.09.05 10:42:59.389 Tester EURUSD: "bases\MetaQuotes-Demo\ticks\EURUSD\201708.tkc" download (370.48 Kb/sec) 2017.09.05 10:43:12.450 Tester EURUSD: 71% ticks downloaded (356.63 Kb/sec) 2017.09.05 10:43:20.488 Tester EURUSD: 94% ticks downloaded (338.89 Kb/sec) 2017.09.05 10:43:22.491 Tester EURUSD: preliminary downloading of history ticks completed, 10.01 Mb in 0:29.141 (351.80 Kb/sec) 2017.09.05 10:43:22.491 Tester EURUSD: ticks data begins from 2017.08.01 00:00 2017.09.05 10:43:22.491 Tester complete optimization started 2017.09.05 10:43:22.491 Tester size of initial task batch is 6 2017.09.05 10:43:22.521 Core 1 agent process started 2017.09.05 10:43:23.094 Core 1 connecting to 127.0.0.1:3000 2017.09.05 10:43:23.094 Core 1 connected 2017.09.05 10:43:23.103 Core 1 authorized (agent build 1653) 2017.09.05 10:43:23.114 Core 1 common synchronization completed 2017.09.05 10:43:23.388 Core 1 EURUSD: history for 2016 year synchronized 2017.09.05 10:43:23.388 Core 1 EURUSD: history for 2017 year synchronized 2017.09.05 10:43:23.388 Core 1 EURUSD: history synchronization completed [54 Kb] 2017.09.05 10:43:23.388 Core 1 EURUSD: 54.96 Kb of history processed in 0:00.234 2017.09.05 10:43:23.402 Core 1 pass 0 tested with error "cannot synchronize history (EURUSD)" in 0:00:00.047 2017.09.05 10:43:23.404 Core 1 pass 1 tested with error "task rejected by tester agent" in 0:00:00.000 Andrey Dik 2017.09.05 07:55 #19879 Slava:1.你以前从未看过测试员的代理日志。关于清除日志的信息已经被你自己显示出来了。2.如果你正在分析测试员的日志,你就被先验地认为是一个熟练的用户。巫师必须始终关注他的工具。Windows资源管理器总是以红色显示可用空间小的驱动器BTW 即使你的仪表盘上有一个轮胎压力指示器,它也决不是取消了驾驶前对车辆的目视检查。1.我从来没有这样做过,因为没有必要这样做--测试人员的日志总是显示出预期的内容。2.谁在乎windows explorer显示什么?我们在MT5中工作,它只需要告诉用户没有足够的内存(或任何其他原因不允许正常工作)。是的,原因是自由空间小于500MB,不仅日志被完全打印出来,没有任何跳过,而且在测试期间,滞后现象也消失了(不清楚为什么会出现任何滞后现象,如果无论如何测试,日志都被打印出来)。但用户如何知道我们至少需要500Mb?为什么不是2Mb、100Mb、100500Gb?- 代理人/测试者应显示有关干扰正常操作的问题的信息。而且,只需要选择输出到日志的内容。 [删除] 2017.09.05 08:06 #19880 Alexey Viktorov:我想我已经找到了这个问题的原因和临时解决办法。我很难解释这种情况是如何发生的,但似乎是颜色缓冲器 在干扰,把一切都搞乱了。以下是我在源代码中的改动,问题消失了把索引DRAW_COLOR_HISTOGRAM放在 "最后",这样INDICATOR_COLOR_INDEX就在最后。如果缓冲区不被填充数值,必须用PLOT_EMPTY_VALUE填充。 没用的:)好吧,不需要猜测,我们需要从SD得到答案。这样的拐杖无论如何都不应该被接受! 1...198119821983198419851986198719881989199019911992199319941995...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这是正确的,有,在这里。
2017.09.05
2017.09.05 11:42:04:04 记录仪日志被清理了
2017.09.05 2017.09.05 00:00:00.000 服务器MetaTester 5停止了
外面没有别的东西了。
那么,为什么在测试人员的日志中没有完整的Print() 信息?
释放磁盘空间。如果磁盘空间小于500兆,日志将被清除。
它们是如何被清洗的?我在哪里可以了解到清洁算法的情况?日志已被清理的信息在哪里?
如果方案没有做到预期的效果,如何与之合作?- 我们谈论的也是MT5,而不仅仅是专家顾问。
在我的具体例子中,我们可以在日志中看到,刻度线被跳过。在这种情况下,用户该怎么想呢?有什么光明纯洁的思想可以不被粗俗的语言所遮蔽而产生?
在测试仪的可视模式下,速度滑块的位置被记住了。我把它设置为最大的一次。然后我运行一个重的EA--可视化器挂起。
我必须做一个假的EA,并在visualizer中运行,把滑块往后移一点。在那之后,一个沉重的EA就不会再挂了。
是否可以提前设置滑块位置(就像在MT4中一样)?
在一次没有可视化的运行中,我运行了一个专家顾问,执行了许多交易,用适当的信息堵塞了日志(测试者本身喜欢输出这些信息)。在回测结束后(或按下停止键后),我切换到日志标签,看到日志继续显示。这是第一句废话,既然回测已经结束,为什么不显示日志的结尾?
我对这些日志不感兴趣,点击 "删除日志"。之后,日志被清除,并...继续装满老唱片!
它们是如何被清洗的?我在哪里可以了解到清洁算法的情况?日志已被清理的信息在哪里?
如果方案没有做到预期的效果,如何与之合作?- 我们谈论的也是MT5,而不仅仅是专家顾问。
在我的特定例子中,你可以在日志中看到跳过的刻度。在这种情况下,用户该怎么想呢?什么样的光明纯洁的思想可以不被粗俗的语言所掩盖而产生?
你以前从未看过测试员的代理日志。
关于清除日志的信息你自己已经显示了。
如果你分析了测试者的日志,那么你就被先验地认为是一个熟练的用户。巫师必须始终关注他的工具。Windows资源管理器总是以红色显示可用空间小的驱动器
即使你的仪表盘上有一个轮胎压力指示器,它也不能取消驾驶前对车辆的目视检查。
在一次没有可视化的运行中,我运行了一个专家顾问,执行了许多交易,用适当的信息堵塞了日志(测试者本身喜欢输出这些信息)。在回测结束后(或按下停止键后),我切换到日志标签,看到日志继续显示。这是第一句废话,既然回测已经结束,为什么不显示日志的结尾?
我对这些日志不感兴趣,点击 "删除日志"。之后,日志被清除,并...继续装满老唱片!
是的,在没有可视化的测试中,禁止向日志输出是一个好主意。更多的时候,你只想看到最后的结果(利润、测试时间等),它显示在最后面。
测试期间的细节可以在可视化模式下查看。在没有可视化的情况下,被动地倾倒这 "堆 "是没有意义的。
如果你有兴趣,这里有测试代码。
我想我已经找到了这个问题的原因和临时解决办法。我很难解释它是如何发生的,但似乎是颜色缓冲区 的干扰,把一切都搞乱了。
以下是我在源代码中的改动,问题消失了
为什么测试员要这样做?
1.你以前从未看过测试员的代理日志。
关于清除日志的信息已经被你自己显示出来了。
2.如果你正在分析测试员的日志,你就被先验地认为是一个熟练的用户。巫师必须始终关注他的工具。Windows资源管理器总是以红色显示可用空间小的驱动器
BTW 即使你的仪表盘上有一个轮胎压力指示器,它也决不是取消了驾驶前对车辆的目视检查。
1.我从来没有这样做过,因为没有必要这样做--测试人员的日志总是显示出预期的内容。
2.谁在乎windows explorer显示什么?我们在MT5中工作,它只需要告诉用户没有足够的内存(或任何其他原因不允许正常工作)。
是的,原因是自由空间小于500MB,不仅日志被完全打印出来,没有任何跳过,而且在测试期间,滞后现象也消失了(不清楚为什么会出现任何滞后现象,如果无论如何测试,日志都被打印出来)。但用户如何知道我们至少需要500Mb?为什么不是2Mb、100Mb、100500Gb?- 代理人/测试者应显示有关干扰正常操作的问题的信息。
而且,只需要选择输出到日志的内容。
我想我已经找到了这个问题的原因和临时解决办法。我很难解释这种情况是如何发生的,但似乎是颜色缓冲器 在干扰,把一切都搞乱了。
以下是我在源代码中的改动,问题消失了