KimIV의 유용한 기능 - 페이지 28

 

ArrayMax() 함수.

이 함수는 배열의 최대 요소 값을 반환합니다.

  • x - 값으로 최대 요소 검색이 수행되는 double 유형의 요소 배열입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 17.05.2008                                                     |
//|  Описание : Возвращает значение максимального элемента массива.            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    x - массив значений числового ряда                                      |
//+----------------------------------------------------------------------------+
double ArrayMax ( double & x []) {
   if ( ArraySize ( x ) > 0 ) return ( x [ ArrayMaximum ( x )]) ;
   else {
     Print ( " ArrayMax(): Массив пуст! " ) ;
     return ( 0 ) ;
   }
}
PS Attached는 ArrayMax() 함수를 테스트하기 위한 스크립트입니다.
파일:
 

ArrayMin() 함수.

이 함수는 배열의 최소 요소 값을 반환합니다.

  • x - 값으로 최소 요소 검색이 수행되는 double 유형의 요소 배열입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 17.05.2008                                                     |
//|  Описание : Возвращает значение минимального элемента массива.             |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    x - массив значений числового ряда                                      |
//+----------------------------------------------------------------------------+
double ArrayMin ( double & x []) {
   if ( ArraySize ( x ) > 0 ) return ( x [ ArrayMinimum ( x )]) ;
   else {
     Print ( " ArrayMin(): Массив пуст! " ) ;
     return ( 0 ) ;
   }
}
추신. ArrayMin() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.
파일:
 

안녕하세요, 포럼에서 몇 가지 ZigZag 기능을 찾았습니다. 이것이 내가 필요한 것입니다. 이 함수들의 성능을 확인하기로 해서 주석으로 이 함수를 간단히 호출할 수 있는 Expert Advisor를 만들었습니다. 지그재그 막대 번호 = 너무. 문제는 다음과 같습니다. 이 기능은 제로 바에 있지 않을 때만 지그재그 바 번호를 표시합니다. 지그재그가 제로 바에 있으면 이전 지그재그의 바를 보여줍니다. 그리고 0에서 보여주기만 하면 됩니다. 즉, 언제 새로운 지그재그가 나타났는지 알 수 있습니다.

어드바이저 코드는 아래와 같습니다.

 int init ()
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit ()
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start ()
  {
//----
GetExtremumZZBar () ;
 Comment ( " бар зигзага = " , GetExtremumZZBar ()) ;         //Просто проверяю работоспособность функции
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
int GetExtremumZZBar ( string sym = " EURUSD " , int tf = 0 , int ne = 0 , int dp = 12 , int dv = 5 , int bc = 3 ) {
  if ( sym == "" ) sym = Symbol () ;
  double zz ;
  int    i , k = iBars ( sym , tf ) , ke = 0 ;
 
  for ( i = 1 ; i < k ; i ++ ) {
    zz = iCustom ( sym , tf , " ZigZag " , dp , dv , bc , 0 , i ) ;
    if ( zz != 0 ) {
      ke ++;
      if ( ke > ne ) return ( i ) ;
    }
  }
  Print ( " GetExtremumZZBar(): Экстремум ЗигЗага номер " , ne , " не найден " ) ;
  return ( 0 ) ;
}
 
Climber писал (а) >>

이 기능은 제로 바에 있지 않은 경우에만 지그재그 바 번호를 표시합니다.
지그재그가 제로 바에 있으면 이전 지그재그의 바를 보여줍니다.
그리고 0에서 보여주기만 하면 됩니다. 즉, 언제 새로운 지그재그가 나타났는지 알 수 있습니다.

좋아... 제로 바 수정

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Возвращает номер бара экстремума ЗигЗага по его номеру.        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    tf - таймфрейм                  (      0     - текущий ТФ)              |
//|    ne - номер экстремума           (      0     - последний)               |
//|    dp - ExtDepth                                                           |
//|    dv - ExtDeviation                                                       |
//|    bs - ExtBackstep                                                        |
//+----------------------------------------------------------------------------+
int GetExtremumZZBar ( string sy = "" , int tf = 0 , int ne = 0 , int dp = 12 , int dv = 5 , int bc = 3 ) {
   if ( sy == "" || sy == " 0 " ) sy = Symbol () ;
   double zz ;
   int      i , k = iBars ( sy , tf ) , ke = 0 ;

   for ( i = 0 ; i < k ; i ++ ) {
     zz = iCustom ( sy , tf , " ZigZag " , dp , dv , bc , 0 , i ) ;
     if ( zz != 0 ) {
       ke ++;
       if ( ke > ne ) return ( i ) ;
     }
   }
   Print ( " GetExtremumZZBar(): Экстремум ЗигЗага номер " , ne , " не найден " ) ;
   return ( - 1 ) ;
}
 
TheXpert писал (а) >>

나는 저자에게 내 게시물에 대해 사과합니다. 나는 헛되이 썼습니다. 어쨌든 나는 이 코드를 사용하지 않을 것이다. 나는 필요한 모든 것을 갖춘 나만의 라이브러리를 가지고 있습니다. 이후 오랜 시간 동안 명백하게 부정적인 리뷰가 없었습니다. 이는 작성자의 코드가 적합함을 의미합니다. 참을 수 없었어요 :) 죄송합니다.

똑똑한 사람은 많지만 똑똑하고 친절한 사람은 거의 없습니다. 그래서 당신은 당신이 코딩을 더 잘한다고 생각하지만 라이브러리를 게시하지 않으며 Igor는 무료 사용을 위해 거의 모든 개발을 업로드합니다.

 
khorosh писал (а) >>

똑똑한 사람은 많지만 똑똑하고 친절한 사람은 거의 없습니다. 그래서 당신은 당신이 코딩을 더 잘한다고 생각하지만 라이브러리를 게시하지 않으며 Igor는 무료 사용을 위해 거의 모든 개발을 업로드합니다.

이유는 이미 게시했습니다. 내 코드가 완전히 보편적이지 않기 때문입니다. 포스팅할 일이 있으면 꼭 올리도록 하겠습니다.

 

ArrayAvg() 함수.

이 함수는 배열 요소의 산술 평균을 반환합니다.

  • x - double 유형의 요소 배열입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 16.05.2008                                                     |
//|  Описание : Возвращает среднее аримфетическое элементов массива.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    x - массив значений числового ряда                                      |
//+----------------------------------------------------------------------------+
double ArrayAvg ( double & x []) {
   double s = 0 ;
   int      i , k = ArraySize ( x ) ;

   for ( i = 0 ; i < k ; i ++ ) s += x [ i ] ;
   if ( k > 0 ) s /= k ; else Print ( " ArrayAvg(): Массив пуст! " ) ;

   return ( s ) ;
}
PS Attached는 ArrayAvg() 함수를 테스트하기 위한 스크립트입니다.
파일:
 
KimIV писал (а) >> 를 썼습니다.

좋아... 제로 바 수정

매우 감사합니다. 직장에서 인터넷에 뭔가가 있었는데, 나는 전에 감사할 수 없었습니다.

 

ArrayAvGeom() 함수.

이 함수는 배열 요소의 기하 평균을 반환합니다.

  • x - double 유형의 요소 배열입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 16.06.2008                                                     |
//|  Описание : Возвращает среднее геометрическое элементов массива.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    x - массив значений числового ряда                                      |
//+----------------------------------------------------------------------------+
double ArrayAvGeom ( double & x []) {
   double s = 1 , k = ArraySize ( x ) ;
   int      i ;

   for ( i = 0 ; i < k ; i ++ ) s *= x [ i ] ;
   if ( k > 0 ) s = MathPow ( s , 1 / k ) ; else Print ( " ArrayAvGeom(): Массив пуст! " ) ;

   return ( s ) ;
}
추신. ArrayAvGeom() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.
파일:
 
KimIV писал (а) >> 를 썼습니다.

ArrayAvGeom() 함수.

이 함수는 배열 요소의 기하 평균을 반환합니다.

  • x - double 유형의 요소 배열입니다.
추신. ArrayAvGeom() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.

친애하는 KimIV , 기능에 감사드립니다!

모드 계산을 위해 같은 종류의 함수를 작성할 수 있습니까?