Добрый день. Возникла небольшая проблема при использовании индикатора-при переходе на другой таймфрем начинает подтормаживать терминал, а иногда и полностью виснет.
Индикатор -полосы Болинджера с отображением значения девиации. Так как раньше токого не было, а началось именно после добавления " отображением значения девиации", но что именно в коде приводит снижению быстродействия я не знаю.
Может подскажет кто-нибудь как вообще такие вопросы решаются, или с чего начинать?
Добрый день. Возникла небольшая проблема при использовании индикатора-при переходе на другой таймфрем начинает подтормаживать терминал, а иногда и полностью виснет.
Индикатор -полосы Болинджера с отображением значения девиации. Так как раньше токого не было, а началось именно после добавления " отображением значения девиации", но что именно в коде приводит снижению быстродействия я не знаю.
Может подскажет кто-нибудь как вообще такие вопросы решаются, или с чего начинать?
Скорее всего стоит большой период для расчёта, вот и виснет, не думаю что нужно считать на 5000 баров в историю, чтоб получить текущие значения.
Trader76 вот функция которая была добавлена: iMAOnArray. В ней нужно указать количество элементов для вычисления. Я указал- все элементы массива, только так получается правильное значение средней стандартного отклонения.
Проверял накладывая на индикатор стандартного отклонения скользящую среднюю. Если же указывать конкретное число элементов, то высчитываемое значение меняется.
Вполне возможно индикатор тормозит из-за обсчета всего массива, но по другому он считает не правильно.
Trader76 вот функция которая была добавлена: iMAOnArray. В ней нужно указать количество элементов для вычисления. Я указал- все элементы массива, только так получается правильное значение средней стандартного отклонения.
Проверял накладывая на индикатор стандартного отклонения скользящую среднюю. Если же указывать конкретное число элементов, то высчитываемое значение меняется.
Вполне возможно индикатор тормозит из-за обсчета всего массива, но по другому он считает не правильно.
Это именно то что я добавил, до этого индикатор не тормозил.
//+------------------------------------------------------------------- //|Расчет среднего значения девиации//+-------------------------------------------------------------------
Averagedeviation=iMAOnArray(deviationBuffer,0,30,0,MODE_SMA,i);
//+------------------------------------------------------------------- //|Вывод значения на экран отдельным объектом//+------------------------------------------------------------------- string Text =DoubleToStr(deviation,4); // Текст для отображения с указанием количества знаков ппосле запятойif(deviation<=(Averagedeviation*1.1)&&deviation>=(Averagedeviation*0.9))// Выбор цвета зависит от динамики
Color_Day_Percent = Color_0; // Цвет для 0if(deviation>Averagedeviation*1.1) // Выбор цвета зависит от динамики
Color_Day_Percent = Color_Up; // Цвет для +if(deviation<Averagedeviation*0.9) // Выбор цвета зависит от динамики
Color_Day_Percent = Color_Dn; // Цвет для -if(ObjectFind(Obj_Name)==-1) // Если объекта нет..
{
ObjectCreate(Obj_Name,OBJ_LABEL,0,0,0); // Создаём новый объект
ObjectSet (Obj_Name,OBJPROP_CORNER, 1); // Угол привязки
ObjectSet (Obj_Name,OBJPROP_XDISTANCE,15); // Координата Х
ObjectSet (Obj_Name,OBJPROP_YDISTANCE,15); // Координата Y
}
ObjectSetText(Obj_Name,Text,10,"MS Sans Serif",Color_Day_Percent);// Текстовое описание объекта
i--;
}
//----------------------------------------------------------------------return(0);
}
int deinit()
{
ObjectDelete(Obj_Name); // Удаление объекта при выходеreturn(0);
}
//+------------------------------------------------------------------+
Я вот писал для замены коротких названий для символов, разбейте строки на буквы, и делайте замену.
Добрый день. Возникла небольшая проблема при использовании индикатора-при переходе на другой таймфрем начинает подтормаживать терминал, а иногда и полностью виснет.
Индикатор -полосы Болинджера с отображением значения девиации. Так как раньше токого не было, а началось именно после добавления " отображением значения девиации", но что именно в коде приводит снижению быстродействия я не знаю.
Может подскажет кто-нибудь как вообще такие вопросы решаются, или с чего начинать?
Добрый день. Возникла небольшая проблема при использовании индикатора-при переходе на другой таймфрем начинает подтормаживать терминал, а иногда и полностью виснет.
Индикатор -полосы Болинджера с отображением значения девиации. Так как раньше токого не было, а началось именно после добавления " отображением значения девиации", но что именно в коде приводит снижению быстродействия я не знаю.
Может подскажет кто-нибудь как вообще такие вопросы решаются, или с чего начинать?
Trader76 вот функция которая была добавлена: iMAOnArray. В ней нужно указать количество элементов для вычисления. Я указал- все элементы массива, только так получается правильное значение средней стандартного отклонения.
Проверял накладывая на индикатор стандартного отклонения скользящую среднюю. Если же указывать конкретное число элементов, то высчитываемое значение меняется.
Вполне возможно индикатор тормозит из-за обсчета всего массива, но по другому он считает не правильно.
Период высчитываемой средней равен 30.
Trader76 вот функция которая была добавлена: iMAOnArray. В ней нужно указать количество элементов для вычисления. Я указал- все элементы массива, только так получается правильное значение средней стандартного отклонения.
Проверял накладывая на индикатор стандартного отклонения скользящую среднюю. Если же указывать конкретное число элементов, то высчитываемое значение меняется.
Вполне возможно индикатор тормозит из-за обсчета всего массива, но по другому он считает не правильно.
Период высчитываемой средней равен 30.
Это именно то что я добавил, до этого индикатор не тормозил.
Это именно то что я добавил, до этого индикатор не тормозил.
Ну не хотите, как хотите
Не понял. В смысле не хочу?
Нужен весь код ? Хорошо.
Название кириллицей поэтому такие иероглифы .
Не понял. В смысле не хочу?
Нужен весь код ? Хорошо.
Название кириллицей поэтому такие иероглифы .
Проще было полностью переделать
Проще было полностью переделать
Большое спасибо за исправление индикатора, но хотелось бы узнать в чем была причина медленной работы моего кода?
Я не думаю, что мне постоянно так будут ошибки исправлять. Плюс как-то учится надо, а не зная ошибок нельзя быть уверенным что они снова не вылезут.