Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1019

 
FiVik:

Не понял. В смысле не хочу?

Нужен весь код ?  Хорошо.  

Название кириллицей поэтому такие иероглифы .

Проще было полностью переделать

Файлы:
 
Vinin:

Проще было полностью переделать

 

Большое спасибо за исправление индикатора, но хотелось бы узнать в чем  была причина медленной работы моего кода? 

Я не думаю, что мне постоянно так будут ошибки исправлять. Плюс как-то учится надо, а не зная ошибок нельзя быть уверенным что они снова не вылезут.

 
FiVik:

Большое спасибо за исправление индикатора, но хотелось бы узнать в чем  была причина медленной работы моего кода? 

Я не думаю, что мне постоянно так будут ошибки исправлять. Плюс как-то учится надо, а не зная ошибок нельзя быть уверенным что они снова не вылезут.

Основная ошибка - работа с графикой (объектом) в цикле. Хотя нужно были только последнее расчетное значение.

Ну и первый разработчик видимо не знал о стандартных функциях и реализовывал свои. Плохого в этом ничего нет, но и хорошего тоже.

 
Vinin:

Проще было полностью переделать

 

Почему проще. просто 2 перестановки.

Просто

if(i==0)
{
   string Text =DoubleToStr(deviation,4);                   // Текст для отображения с указанием количества знаков ппосле запятой
      if(deviation<=(Averagedeviation*1.1)&&deviation>=(Averagedeviation*0.9))// Выбор цвета зависит от динамики
      Color_Day_Percent = Color_0;                             // Цвет для 0
      if(deviation>Averagedeviation*1.1)                       // Выбор цвета зависит от динамики
      Color_Day_Percent = Color_Up;                            // Цвет для +
      if(deviation<Averagedeviation*0.9)                       // Выбор цвета зависит от динамики
      Color_Day_Percent = Color_Dn; 
}

 +

    
      i--;   
     }
   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);// Текстовое описание объекта  
 
eevviill:

Почему проще. просто 2 перестановки.

Просто

 +

 

Мне совесть не позволяет плохой код отдавать.

 
Vinin:

Мне совесть не позволяет плохой код отдавать.

 

И что там плохого?
 

Добрый день. Столкнулся с проблемой. Нужен динамическое наименование которое не повторялись. Ниже пример как, я сделал но проблема в том что в одном тике может понадобится несколько наименование. Что посоветуйте?

string name=DoubleToStr(TimeCurrent(), 0);
 
abeiks:

Добрый день. Столкнулся с проблемой. Нужен динамическое наименование которое не повторялись. Ниже пример как, я сделал но проблема в том что в одном тике может понадобится несколько наименование. Что посоветуйте?

TimeCurrent()+GetMicrosecondCount()

 

или

int counter=1; 

 TimeCurrent()+=counter; 

 
eevviill:

TimeCurrent()+GetMicrosecondCount()

 

или

int counter=1; 

 TimeCurrent()+=counter; 

А другое решение? Я работаю с фракталами и там по времени может совпасть М1, М5, М15.

void OnTick(){
string name=DoubleToStr(TimeCurrent(), 0);
SetArrow(6, Red, name, FrakTime_M1, FrakPrice_M1, 3);
SetArrow(6, Yellow, name, FrakTime_M5, FrakPrice_M5, 3);
...
}
 
abeiks:

А другое решение? Я работаю с фракталами и там по времени может совпасть М1, М5, М15.

Time[0]+Volume[0]
Причина обращения: