포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 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()

아니면 그렇지 않습니까?

아닙니다 .. 디코딩의 의미는 다음과 같습니다. 각 러시아어 문자 에는 값이 할당됩니다( 예: "a"는 이러한 조합입니다. \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 :
글쎄, 원하지 않아, 네가 원하는 대로

이해하지 못했습니다. 내가 원하지 않는다는 말입니까?

모든 코드가 필요합니까? 좋은.

키릴 자모의 이름은 왜 그런 상형 문자입니다.

파일:
사유: