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

 
KimIV >> :

여기

감사합니다. 어제 거기에 없었거나 제가 놓쳤습니다.

 
beginner писал(а) >>

감사합니다. 어제 거기에 없었거나 제가 놓쳤습니다.

하지 않았다...

 

예, 이제 이

#include "b-KimIV.mqh" // 추가 기능 라이브러리

 

KimIV님께, e-SOTrailing을 다음과 같이 수정해 주실 것을 부탁드립니다. (이 경우 전체적인 작업 전술은 가장 가까운 프랙탈에서 일정 거리 떨어진 곳에 스톱 오더를 하고 가격을 따라 움직이는 것입니다.) 이해하세요. FindNearFractal 기능을 사용하는 것은 어렵지 않습니다. 아마도 그렇게 될까요?

무효 TrailingOrders() {

......

pa=FindNearFractal(OrderSymbol(), 0, MODE_UPPER); //MarketInfo(OrderSymbol(), MODE_ASK);

......

pb=FindNearFractal(OrderSymbol(), 0, MODE_LOWER);//MarketInfo(OrderSymbol(), MODE_BID);

 
beginner писал(а) >>

예, 이제 이

#include "b-KimIV.mqh" // 추가 기능 라이브러리

나중에 가져올게...

 
KimIV >> :

첫 번째 페이지에서 더 이상 가능하지 않습니다 ...

여기에 올릴께요...업데이트 글이 차단되면 다시 올리겠습니다. 그러니 계속 지켜봐 주세요 :-)

감사합니다. 그게 바로 당신이 필요로 하는 것입니다.

 

ArrayZ() 함수.

이 함수는 참조에 의해 배열에 전달된 숫자 시리즈의 Z-점수를 계산하고 반환합니다.

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 27.10.2008                                                     |
//|  Описание : Возвращает Z-счёт числового ряда.                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    arr - массив значений числового ряда                                    |
//+----------------------------------------------------------------------------+
double ArrayZ ( double & arr [ ] ) {
   double x , z ;
   int     i , l = 0 , n = ArraySize ( arr ) , r = 1 , w = 0 ;

   for ( i = 0 ; i < n ; i + + ) {
     if ( i = = 0 ) r = 1 ;
     else {
       if ( arr [ i - 1 ] * arr [ i ] < 0 ) r + + ;
     }
     if ( arr [ i ] > 0 ) w + + ; else l + + ;
   }

   if ( n > 2 ) {
     if ( w > 0 & & l > 0 ) {
      x = 2 * w * l ;
       if ( x ! = n ) z = ( n * ( r - 0.5 ) - x ) / MathSqrt ( x * ( x - n ) / ( n - 1 ) ) ;
     } else {
       if ( l = = 0 ) z = 100 ; else z = - 100 ;
       Print ( "ArrayZ(): Нет чередования серий!" ) ;
     }
     return ( z ) ;
   } else {
     Print ( "ArrayZ(): В массиве недостаточно элементов!" ) ;
     return ( 0 ) ;
   }
}

추신. ArrayZ() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다. 그건 그렇고, 이 스크립트에서 배열은 Ralph Vince의 책 "The Mathematics of Money Management"의 데이터로 채워져 있습니다.

ZZY. 내 사이트에서 b-Array 라이브러리를 업데이트했습니다.

파일:
 

ArrayDeleteInt() 함수

주어진 인덱스에서 배열 요소를 삭제합니다. 새 배열의 크기를 반환하거나 제거할 수 없는 경우 -1 을 반환합니다. ArrayDeleteInt() 함수는 다음 필수 매개변수를 사용합니다.

  • m - 요소의 배열.
  • i - 배열 요소의 인덱스.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 31.10.2008                                                     |
//|  Описание : Выполняет удаление элемента массива с заданным индексом.       |
//|             Возвращает размер нового массива или -1,                       |
//|             если не удалось ничего удалить.                                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    m - массив элементов                                                    |
//|    i - индекс элемента                                                     |
//+----------------------------------------------------------------------------+
int ArrayDeleteInt ( int & m [ ] , int i ) {
   int j , k = ArraySize ( m ) ;

   if ( i > = 0 & & i < k ) {
     for ( j = i ; j < k ; j + + ) m [ j ] = m [ j + 1 ] ;
    k = ArrayResize ( m , k - 1 ) ;
     return ( k ) ;
   } else Print ( "ArrayDeleteInt(): Неверный индекс элемента массива! i=" , i ) ;

   return ( - 1 ) ;
}
추신. ArrayDeleteInt() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.
파일:
 

ArrayDeleteDouble() 함수

주어진 인덱스에서 배열 요소를 삭제합니다. 새 배열의 크기를 반환하거나 제거할 수 없는 경우 -1 을 반환합니다. ArrayDeleteDouble() 함수는 다음 필수 매개변수를 사용합니다.

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

   if ( i > = 0 & & i < k ) {
     for ( j = i ; j < k ; j + + ) m [ j ] = m [ j + 1 ] ;
    k = ArrayResize ( m , k - 1 ) ;
     return ( k ) ;
   } else Print ( "ArrayDeleteDouble(): Неверный индекс элемента массива! i=" , i ) ;

   return ( - 1 ) ;
}
PS Attached는 ArrayDeleteDouble() 함수를 테스트하기 위한 스크립트입니다.
 

ArrayDeleteString() 함수

주어진 인덱스에서 배열 요소를 삭제합니다. 새 배열의 크기를 반환하거나 제거할 수 없는 경우 -1 을 반환합니다. ArrayDeleteString() 함수는 다음 필수 매개변수를 사용합니다.

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

   if ( i > = 0 & & i < k ) {
     for ( j = i ; j < k ; j + + ) m [ j ] = m [ j + 1 ] ;
    k = ArrayResize ( m , k - 1 ) ;
     return ( k ) ;
   } else Print ( "ArrayDeleteString(): Неверный индекс элемента массива! i=" , i ) ;

   return ( - 1 ) ;
}
추신. ArrayDeleteString() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.