Slava: Free up disk space. The logs are cleared if the disk space is less than 500 meg
How are they cleaned? Where can I find out about the cleaning algorithm? Where is the message that the logs have been cleaned?
How to work with the programme if it does not do what is expected of it? - We are talking about MT5 as well, not only about Expert Advisor.
In my specific example we can see in the logs that the ticks are skipped. What is a user to think in this case? What bright pure thoughts can arise unclouded by foul language?
During a single run without visualization, I run an Expert Advisor that performs many trades, clogging the log with appropriate messages (the tester itself likes to output them). After the backtest (or immediately after pressing Stop) I switch to the Log tab and see the logs continue to be displayed. This is the first nonsense, since the backtest is over, why not show the end of the logs?
I'm not interested in the logs and click "Delete logs". After which the log is cleared and... continues to fill up with old records!
How are they cleaned? Where can I find out about the cleaning algorithm? Where is the message that the logs have been cleaned?
How to work with the programme if it does not do what is expected of it? - We are talking about MT5 as well, not only about Expert Advisor.
In my particular example, you can see in the logs that ticks are skipped. What is a user to think in this case? What bright pure thoughts may arise unclouded by foul language?
You've never looked at the tester agent logs before.
The message about clearing the logs is the one you showed yourself.
If you analyze the logs of the tester, then you are a priori considered a skilled user. A wizard must always keep an eye on his tool. Windows Explorer always shows a drive with little free space in red
BTW even if your dashboard has a tyre pressure indicator, this in no way cancels a visual inspection of the vehicle before driving
During a single run without visualization, I run an Expert Advisor that performs many trades, clogging the log with appropriate messages (the tester itself likes to output them). After the backtest (or immediately after pressing Stop) I switch to the Log tab and see the logs continue to be displayed. This is the first nonsense, since the backtest is over, why not show the end of the logs?
I'm not interested in the logs and click "Delete logs". After which the log is cleared and... continues to fill up with old records!
Yes, it's a good idea to disable the output to the log during a test without visualisation. More often you just want to see the final result (profit, test time, etc.), which is displayed at the very end.
Details during the test can be viewed in the visualisation mode. There is no point in reactively dumping this "pile" without visualization.
I think I've found the cause and a temporary solution to this problem. It's hard for me to explain how it happens, but it seems that the colour buffer interferes and messes everything up.
Here's what I changed in the source code and the problem disappeared
#property indicator_separate_window#property indicator_plots3#property indicator_buffers4//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+inputbool inpUseArrows=false;
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+double bufGisto[];
double bufGistoColor[];
double bufArrowUp[];
double bufArrowDn[];
//---constdoubleEMPTY=EMPTY_VALUE;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- Размечаем массив цветов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);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
if(inpUseArrows)
{
ArrayInitialize(bufArrowUp,EMPTY);
ArrayInitialize(bufArrowDn,EMPTY);
}
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &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;
}
}
}
elseif(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 callreturn(rates_total);
}
//+------------------------------------------------------------------+//| Параметры графического построения: цветная гист-а от 0 линии |//+------------------------------------------------------------------+void SetPlotParametersColorHistogram(constint plotIndex,// Индекс графической серииconstint bufferNum,// Номер первого буфера серииdouble& value[], // Буфер значенийdouble& clr[], // Буфер цветовconstbool asSeries, // Флаг нумерации как в таймсерииconststring label, // Имя серииconstcolor& colors[], // Цвета линииconstdouble emptyValue = EMPTY_VALUE, // Пустые значения серииconstint width = 0, // Толщина линииconstENUM_LINE_STYLE style = STYLE_SOLID, // Стиль линииconstint drawBegin = 0, // Количество баров без отрисовкиconstint 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);
//--- Устанавливаем количество цветов индикатораconstint 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);
//--- Устанавливаем количество баров без отрисовки и значений в DataWindowPlotIndexSetInteger(plotIndex,PLOT_DRAW_BEGIN,drawBegin);
//--- Устанавливаем сдвиг графического построения по оси времени в барахPlotIndexSetInteger(plotIndex,PLOT_SHIFT,shift);
}
//+------------------------------------------------------------------+//| Параметры графического построения: стрелки |//+------------------------------------------------------------------+void SetPlotParametersArrow(constint plotIndex,// Индекс графической серииconstint bufferNum,// Номер первого буфера серииdouble &value[],// Буфер значенийconstbool asSeries,// Флаг нумерации как в таймсерииconststring label,// Имя серииconstdouble emptyValue=EMPTY_VALUE,// Пустые значения серииconstcolor clr=clrRed,// Цвет стрелокconstint arrowCode= 159,// Код стрелокconstint arrowShift = 0,// Сдвиг стрелок по вертикалиconstint width=0,// Толщина стрелокconstint drawBegin=0,// Количество баров без отрисовкиconstint 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);
//--- Устанавливаем количество баров без отрисовки и значений в DataWindowPlotIndexSetInteger(plotIndex,PLOT_DRAW_BEGIN,drawBegin);
//--- Устанавливаем сдвиг графического построения по оси времени в барахPlotIndexSetInteger(plotIndex,PLOT_SHIFT,shift);
}
//+------------------------------------------------------------------+
Put index DRAW_COLOR_HISTOGRAM "at the end" so that INDICATOR_COLOR_INDEX was last.
If the buffer is not to be filled with a value, it must be filled with PLOT_EMPTY_VALUE
1. You have never looked at the tester agent logs before.
The message about clearing the log is the one you showed yourself.
2. If you are analysing the tester logs, you are a priori considered a skilled user. A wizard must always keep an eye on his tool. Windows Explorer always shows a drive with little free space in red
BTW even if your dashboard has a tyre pressure indicator, it by no means cancels a visual inspection of the vehicle before driving
1. I've never had to do this because it wasn't necessary - the tester logs always showed what was expected.
2. Who cares what windows explorer shows? We work in MT5 and it just has to tell the user that there is not enough memory (or any other reason not allowing to work normally).
Yes, the reason was that the free space was less than 500mb and not only logs were printed completely without any skips, but the lags disappeared during the test (it is unclear why any lags occur at all if logs are printed anyway regardless of the test). But how does the user know that we need at least 500Mb? Why not 2Mb, 100Mb, 100500Gb? - The agent/tester should display messages about problems interfering with normal operation.
And, there just needs to be a choice of what to output to the log.
I think I've found the cause and a temporary solution to this problem. It's hard for me to explain how this happens, but it seems that the colour buffer is interfering and messing everything up.
Here's what I changed in the source code and the problem disappeared
Put index DRAW_COLOR_HISTOGRAM "at the end" so that INDICATOR_COLOR_INDEX was last.
If the buffer is not to be filled with a value, it must be filled with PLOT_EMPTY_VALUE
Didn't work:) Ok, no need to guess, we need to get an answer from the SD. Such crutches shouldn't be acceptable anyway!
Allow the use of cookies to log in to the MQL5.com website.
Please enable the necessary setting in your browser, otherwise you will not be able to log in.
You are signed in. Two-factor authentication has been disabled. Set it up again and scan a new QR code, or continue with two-factor authentication disabled.
That's right, there are, here they are:
2017.09.05
2017.09.05 11:42:04:04 Logger log was cleaned
2017.09.05 2017.09.05 00:00:00.000 Server MetaTester 5 stopped
There's nothing else out there.
So why is there no complete Print() information in the tester logs?
Free up disk space. The logs are cleared if the disk space is less than 500 meg
How are they cleaned? Where can I find out about the cleaning algorithm? Where is the message that the logs have been cleaned?
How to work with the programme if it does not do what is expected of it? - We are talking about MT5 as well, not only about Expert Advisor.
In my specific example we can see in the logs that the ticks are skipped. What is a user to think in this case? What bright pure thoughts can arise unclouded by foul language?
In the tester visual mode, the speed slider position is memorised. I set it to maximum once. Then I run a heavy EA - the visualizer hangs.
I have to make a dummy EA and run it in the visualizer and move the slider back a bit. A heavy EA does not hang after that.
Is it possible to set the slider position in advance (as it is in MT4)?
During a single run without visualization, I run an Expert Advisor that performs many trades, clogging the log with appropriate messages (the tester itself likes to output them). After the backtest (or immediately after pressing Stop) I switch to the Log tab and see the logs continue to be displayed. This is the first nonsense, since the backtest is over, why not show the end of the logs?
I'm not interested in the logs and click "Delete logs". After which the log is cleared and... continues to fill up with old records!
How are they cleaned? Where can I find out about the cleaning algorithm? Where is the message that the logs have been cleaned?
How to work with the programme if it does not do what is expected of it? - We are talking about MT5 as well, not only about Expert Advisor.
In my particular example, you can see in the logs that ticks are skipped. What is a user to think in this case? What bright pure thoughts may arise unclouded by foul language?
You've never looked at the tester agent logs before.
The message about clearing the logs is the one you showed yourself.
If you analyze the logs of the tester, then you are a priori considered a skilled user. A wizard must always keep an eye on his tool. Windows Explorer always shows a drive with little free space in red
BTW even if your dashboard has a tyre pressure indicator, this in no way cancels a visual inspection of the vehicle before driving
During a single run without visualization, I run an Expert Advisor that performs many trades, clogging the log with appropriate messages (the tester itself likes to output them). After the backtest (or immediately after pressing Stop) I switch to the Log tab and see the logs continue to be displayed. This is the first nonsense, since the backtest is over, why not show the end of the logs?
I'm not interested in the logs and click "Delete logs". After which the log is cleared and... continues to fill up with old records!
Yes, it's a good idea to disable the output to the log during a test without visualisation. More often you just want to see the final result (profit, test time, etc.), which is displayed at the very end.
Details during the test can be viewed in the visualisation mode. There is no point in reactively dumping this "pile" without visualization.
Here's the test code if you're interested.
I think I've found the cause and a temporary solution to this problem. It's hard for me to explain how it happens, but it seems that the colour buffer interferes and messes everything up.
Here's what I changed in the source code and the problem disappeared
Why does the tester do this?
1. You have never looked at the tester agent logs before.
The message about clearing the log is the one you showed yourself.
2. If you are analysing the tester logs, you are a priori considered a skilled user. A wizard must always keep an eye on his tool. Windows Explorer always shows a drive with little free space in red
BTW even if your dashboard has a tyre pressure indicator, it by no means cancels a visual inspection of the vehicle before driving
1. I've never had to do this because it wasn't necessary - the tester logs always showed what was expected.
2. Who cares what windows explorer shows? We work in MT5 and it just has to tell the user that there is not enough memory (or any other reason not allowing to work normally).
Yes, the reason was that the free space was less than 500mb and not only logs were printed completely without any skips, but the lags disappeared during the test (it is unclear why any lags occur at all if logs are printed anyway regardless of the test). But how does the user know that we need at least 500Mb? Why not 2Mb, 100Mb, 100500Gb? - The agent/tester should display messages about problems interfering with normal operation.
And, there just needs to be a choice of what to output to the log.
I think I've found the cause and a temporary solution to this problem. It's hard for me to explain how this happens, but it seems that the colour buffer is interfering and messing everything up.
Here's what I changed in the source code and the problem disappeared