Обновился до 696 билда. Увеличилось в разы время тестирования советников. Как вернуться в 670 билд? Пробовал найти точки востановления в виндовс 7, их нет.
Forexman77: Обновился до 696 билда. Увеличилось в разы время тестирования советников. Как вернуться в 670 билд? Пробовал найти точки востановления в виндовс 7, их нет.
Может быть это связано с
тем, что получаю данные пользовательского индикатора один раз на новом баре. Заметил,
что если делать запрос всего один раз на новом баре значительно снижается скорость
тестирования. На MQL4 это работает, на MQL5 не получалось.
Пробовал в MQL5 проверить циклом многократное получение нового
бара и получение данных индикатора в буфер.
Получалось, что по времени получение данных индикатора занимало меньше чем
нового бара.
Терминал Альпари. Обновлял через Метаквот(зашел в демо счет Метаквот)
Может быть это связано с тем, что получаю данные пользовательского индикатора один раз на новом баре. Заметил, что если делать запрос всего один раз на новом баре значительно снижается скорость тестирования. На MQL4 это работает, на MQL5 не получалось.
Пробовал в MQL5 проверить циклом многократное получение нового бара и получение данных индикатора в буфер. Получалось, что по времени получение данных индикатора занимало меньше чем нового бара.
Терминал Альпари. Обновлял через Метаквот(зашел в демо счет Метаквот)
Знаний пока маловато может чего напутал.
Вы ошиблись.
Вот доказательство, что уменьшения скорости нет, даже наоборот есть небольшое ускорение:
Может быть это связано с тем, что получаю данные пользовательского индикатора один раз на новом баре. Заметил, что если делать запрос всего один раз на новом баре значительно снижается скорость тестирования. На MQL4 это работает, на MQL5 не получалось.
Пробовал в MQL5 проверить циклом многократное получение нового бара и получение данных индикатора в буфер. Получалось, что по времени получение данных индикатора занимало меньше чем нового бара.
Но, не понимаю, почему когда помещаю в папку 696 билд и запускаю советника в тестере, вместо 2 часов на 670 билде начинает показывать 14 часов время тестирования)
Но, не понимаю, почему когда помещаю в папку 696 билд и запускаю советника в тестере, вместо 2 часов на 670 билде начинает показывать 14 часов время тестирования)
Ищите причины, смотрите логи, проверьте наличие интернета и активного торгового счета. Прогоняйте одиночные тесты, где выдаются полные логи.
В MQL4 использую проверку на получение нового бара и когда он новый получаю значение пользовательского индикатора.
staticdatetime t;
if (Time[0] > t)
{
Здесь получаю значения индикатора, если новый бар
}
t=Time[0];
Попробовал сделать аналогично в MQL5. Улучшения не получил, скорость тестирования вроде наоборот немного стала хуже.
Тогда решил проверить сколько времени уходит на получение нового бара(времени)
datetime New_Time[];//буффер для проверки нового бараvoidOnStart()
{
uint start=GetTickCount();
for(int i=0;i<1000000;i++)
{
staticdatetime t;//записываем старое время ArraySetAsSeries(New_Time,true);//направление индексацииCopyTime(_Symbol,_Period,0,1,New_Time);//копируем время нового бара
t=New_Time[0];
}
uint time=GetTickCount()-start;
Print("New_Time = ",time," ms");
}
Получается: 2014.09.18 16:35:24.024проверка времени (EURUSD,M15)New_Time = 1545 ms
Проверил сколько затрачивается времени на получение значения индикатора:
inputint q=2; // qr - период, по которому вычисляется моментумinputint r=20; // rr - период 1-й EMA, применительно к моментумуinputint s=5; // sr - период 2-й EMA, применительно к результату первого сглаживанияinputint u=3; // ur - период 3-й EMA, применительно к результату второго сглаживанияint TSIHandle; // хэндл индикатора TSIdouble TSITrade[]; // динамические массивы для хранения численных значений TSI//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
TSIHandle=iCustom(NULL,0,"Blau_TSI",q,r,s,u,PRICE_CLOSE);
if(TSIHandle<0){Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");return;}
ArraySetAsSeries(TSITrade,true);
uint start1=GetTickCount();
for(int i=0;i<1000000;i++)
{
CopyBuffer(TSIHandle,0,0,3,TSITrade);
double znachenie=TSITrade[1];
}
uint time1=GetTickCount()-start1;
Print("TSITrade = ",time1," ms");
}
2014.09.18 16:41:34.898проверка индикатора (EURUSD,M15)TSITrade = 219 ms
Что гораздо меньше, чем проверка нового бара.
Проверил такую конструкцию:
voidOnStart()
{
int t;
int s;
uint start=GetTickCount();
for(int i=0;i<1000000;i++)
{
MqlDateTime m;
TimeCurrent(m);
t=m.min;
s=m.sec;
}
uint time=GetTickCount()-start;
Print("time = ",time," ms");
}
2014.09.18 16:42:33.484проверка времени3 (EURUSD,M15)time = 47 ms
Но даже с такой проверкой нового бара на контрольных точках в MQL5 скорость значительно меньше чем в MQL4. Пробовал запускать другие советники не свои, на контрольных точках скорость приемлемая. Спрашивал давно на пятом форуме что у меня не так, ответа не нашел.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Обновился до 696 билда. Увеличилось в разы время тестирования советников. Как вернуться в 670 билд? Пробовал найти точки востановления в виндовс 7, их нет.
upd: не разводите панику, ничего не увеличилось
Обновился до 696 билда. Увеличилось в разы время тестирования советников. Как вернуться в 670 билд? Пробовал найти точки востановления в виндовс 7, их нет.
А где доказательства?
Может быть это связано с тем, что получаю данные пользовательского индикатора один раз на новом баре. Заметил, что если делать запрос всего один раз на новом баре значительно снижается скорость тестирования. На MQL4 это работает, на MQL5 не получалось.
Пробовал в MQL5 проверить циклом многократное получение нового бара и получение данных индикатора в буфер. Получалось, что по времени получение данных индикатора занимало меньше чем нового бара.
Терминал Альпари. Обновлял через Метаквот(зашел в демо счет Метаквот)
Знаний пока маловато может чего напутал.
Может быть это связано с тем, что получаю данные пользовательского индикатора один раз на новом баре. Заметил, что если делать запрос всего один раз на новом баре значительно снижается скорость тестирования. На MQL4 это работает, на MQL5 не получалось.
Пробовал в MQL5 проверить циклом многократное получение нового бара и получение данных индикатора в буфер. Получалось, что по времени получение данных индикатора занимало меньше чем нового бара.
Терминал Альпари. Обновлял через Метаквот(зашел в демо счет Метаквот)
Знаний пока маловато может чего напутал.
Вы ошиблись.
Вот доказательство, что уменьшения скорости нет, даже наоборот есть небольшое ускорение:
Moving Average, EURUSD, 2012-2014 years
Может быть это связано с тем, что получаю данные пользовательского индикатора один раз на новом баре. Заметил, что если делать запрос всего один раз на новом баре значительно снижается скорость тестирования. На MQL4 это работает, на MQL5 не получалось.
Пробовал в MQL5 проверить циклом многократное получение нового бара и получение данных индикатора в буфер. Получалось, что по времени получение данных индикатора занимало меньше чем нового бара.
Аналогичный отчет по MACD Sample
MACD, EURUSD, 2012-2014 years
Аналогичный отчет по MACD Sample
MACD, EURUSD, 2012-2014 years
Проверил на 696 скорость лучше:
2014.09.18 16:20:41.877 проверка индикатора EURUSD,H1: T_HLMErgodic = 826 ms(696 билд)
2014.09.18 16:21:46.442 проверка индикатора EURUSD,H1: T_HLMErgodic = 842 ms (696 билд)
2014.09.18 16:25:48.715 проверка индикатора EURUSD,H1: T_HLMErgodic = 874 ms (670 билд)
2014.09.18 16:25:46.657 проверка индикатора EURUSD,H1: T_HLMErgodic = 858 ms (670 билд)
Проверял циклом:
Но, не понимаю, почему когда помещаю в папку 696 билд и запускаю советника в тестере, вместо 2 часов на 670 билде начинает показывать 14 часов время тестирования)Проверил на 696 скорость лучше:
2014.09.18 16:20:41.877 проверка индикатора EURUSD,H1: T_HLMErgodic = 826 ms(696 билд)
2014.09.18 16:21:46.442 проверка индикатора EURUSD,H1: T_HLMErgodic = 842 ms (696 билд)
2014.09.18 16:25:48.715 проверка индикатора EURUSD,H1: T_HLMErgodic = 874 ms (670 билд)
2014.09.18 16:25:46.657 проверка индикатора EURUSD,H1: T_HLMErgodic = 858 ms (670 билд)
Проверял циклом:
Но, не понимаю, почему когда помещаю в папку 696 билд и запускаю советника в тестере, вместо 2 часов на 670 билде начинает показывать 14 часов время тестирования)Ничего не понятно.
Попытаюсь ясно выразиться)
В MQL4 использую проверку на получение нового бара и когда он новый получаю значение пользовательского индикатора.
Попробовал сделать аналогично в MQL5. Улучшения не получил, скорость тестирования вроде наоборот немного стала хуже.
Тогда решил проверить сколько времени уходит на получение нового бара(времени)
Получается: 2014.09.18 16:35:24.024 проверка времени (EURUSD,M15) New_Time = 1545 ms
Проверил сколько затрачивается времени на получение значения индикатора:
2014.09.18 16:41:34.898 проверка индикатора (EURUSD,M15) TSITrade = 219 ms
Что гораздо меньше, чем проверка нового бара.
Проверил такую конструкцию:
2014.09.18 16:42:33.484 проверка времени3 (EURUSD,M15) time = 47 ms
Но даже с такой проверкой нового бара на контрольных точках в MQL5 скорость значительно меньше чем в MQL4. Пробовал запускать другие советники не свои, на контрольных точках скорость приемлемая. Спрашивал давно на пятом форуме что у меня не так, ответа не нашел.