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

 
Money_Maker:
спасибо большое так будет быстрее, я тоже поэтому принципу решил "липить" особое спасибо за коды символов теперь их искать не надо будет.

Я вот писал для замены коротких названий для символов, разбейте строки на буквы, и делайте замену.

string sub_symb[];
ushort u_sep=StringGetCharacter(" ",0);
string SymbolArr[]={
//-------------------- в конце ставить запятую и писать через пробел
// СЕЛЬХОЗ.ПРОДУКЦИЯ
 "Молоко DC",
 "Корм GF",
 "Свинина HE",
 "Рогатый_скот LE",
 "Кукуруза ZC",
 "Соевое_масло ZL",
 "Соевая_мука ZM",
 "Соевые_бобы ZS",
 "Пшеница ZW",
// ЭНЕРГИЯ
 "#BRENT CL",
 "Мазут HO",
 "Газ NG",
 "Газ(мини) QG",
 "Нефть_WTI_(мини) QM",
 "Бензин RB",
// ИНДЕКСЫ
 "S&P_(мини) ES",
 "NASDAQ_(мини) NQ",
 "S&P_500 SP",
 "#DJI30 YM",
 "#DAX30 FDAX",
// МЕТАЛЛЫ
 "Золото GC",
 "Медь HG",
 "Палладий PA",
 "Платина PL",
 "Серебро SI",
 "IndexUSD DX",

//+---------------------------------------------------------------------------------------------+
};

string SubSymbols(string CurSymb)
 {
 for(int i=0; i<ArraySize(SymbolArr); i++)
  {
   StringSplit(SymbolArr[i],u_sep,sub_symb);
   if(CurSymb==sub_symb[0])
    {
     return(sub_symb[1]);
    }
  }
//-
 return(_Symbol);
 }
 
eevviill:

 StringGetChar()

StringGetCharacter()

Или это не то? 

не не оно .. смысл разкодировки такой: каждой русской букве присвоено значение например "а" это такая комбинация \u0430

что бы конвертировать нужно определять какой букве принадлежит то или иное значение а потом заменять эти значения буквами ... вроде можно через KernelDll но этот путь очень мутный по крайней мере у меня не получилось, инфы мало на этот счёт и похоже на то что это всё же не совсем то .. а вот своя функция это единственно простой выход на мой взгляд 
 
Trader76:

Я вот писал для замены коротких названий для символов, разбейте строки на буквы, и делайте замену.

 

спасибо Вам большое, так и сделаю.
 

Добрый день. Возникла небольшая проблема при использовании индикатора-при переходе на другой таймфрем начинает подтормаживать терминал, а иногда и полностью виснет.

Индикатор -полосы Болинджера с отображением значения девиации. Так как раньше токого не было, а началось именно после добавления " отображением значения девиации", но что именно в коде приводит снижению быстродействия я не знаю.

Может подскажет кто-нибудь  как вообще такие вопросы решаются, или с чего начинать? 

 
FiVik:

Добрый день. Возникла небольшая проблема при использовании индикатора-при переходе на другой таймфрем начинает подтормаживать терминал, а иногда и полностью виснет.

Индикатор -полосы Болинджера с отображением значения девиации. Так как раньше токого не было, а началось именно после добавления " отображением значения девиации", но что именно в коде приводит снижению быстродействия я не знаю.

Может подскажет кто-нибудь  как вообще такие вопросы решаются, или с чего начинать? 

Скорее всего стоит большой период для расчёта, вот и виснет, не думаю что нужно считать на 5000 баров в историю, чтоб получить текущие значения.
 

Trader76  вот функция которая была добавлена:  iMAOnArray. В ней нужно указать количество элементов для вычисления. Я указал- все элементы массива, только так получается правильное значение средней стандартного отклонения.

Проверял накладывая на индикатор стандартного отклонения скользящую среднюю. Если же указывать конкретное число элементов, то  высчитываемое значение меняется.

Вполне возможно индикатор тормозит из-за обсчета всего массива, но по другому он считает не правильно. 

Период высчитываемой средней равен 30. 

 
FiVik:

Trader76  вот функция которая была добавлена:  iMAOnArray. В ней нужно указать количество элементов для вычисления. Я указал- все элементы массива, только так получается правильное значение средней стандартного отклонения.

Проверял накладывая на индикатор стандартного отклонения скользящую среднюю. Если же указывать конкретное число элементов, то  высчитываемое значение меняется.

Вполне возможно индикатор тормозит из-за обсчета всего массива, но по другому он считает не правильно. 

Период высчитываемой средней равен 30. 

 

Код покажите
 

Это именно то что я добавил, до этого индикатор не тормозил.

//+------------------------------------------------------------------- 
//|Расчет среднего значения девиации
//+------------------------------------------------------------------- 
      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;                             // Цвет для 0
      if(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);
   }
//+------------------------------------------------------------------+
 
FiVik:

Это именно то что я добавил, до этого индикатор не тормозил.

 

Ну не хотите, как хотите
 
Vinin:
Ну не хотите, как хотите

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

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

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

Файлы:
Причина обращения: