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

 
Tsyrus писал (а) >> 를 썼습니다.

그게 다야!!!!!

감사하다 !

 

이고르, 여러 개의 양초를 하나로 결합할 수 있는 좋은 지표 가 있습니다. 그러나 시간별 차트에서만 작동합니다. 보편적으로 만들 수 있습니까?

고맙습니다.

 

GetNearestDownFractal() 함수.

이 함수는 가장 가까운 다운 프랙탈을 검색하고 해당 가격 수준을 반환합니다. 이 함수의 특징은 임의의 프랙탈 공식을 설정하는 기능입니다. 일반적으로 허용되는 표준 프랙탈 공식은 다음과 같습니다. 2-2. 즉, 왼쪽에 2개의 막대와 오른쪽에 2개의 막대가 있습니다. 그리고 이 기능을 사용하여 8-2(왼쪽에 8개, 오른쪽에 2개), 5-3(왼쪽에 5개, 오른쪽에 3개) 등과 같은 매우 이국적인 프랙탈을 설정할 수도 있습니다. . 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.

  • sy - 도구 이름. "" 또는 NULL 은 현재 문자입니다. 기본값은 NULL 입니다.
  • tf - 기간. 기본값 0 은 현재 문자입니다.
  • nl - 왼쪽에 있는 막대의 수입니다. 기본값은 2 입니다.
  • nr - 오른쪽에 있는 막대의 수입니다. 기본값은 2 입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Возвращает ценовой уровень ближайшего нижнего фрактала         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    nl - количество баров слева                                             |
//|    nr - количество баров справа                                            |
//+----------------------------------------------------------------------------+
double GetNearestDownFractal ( string sy = " 0 " , int tf = 0 , int nl = 2 , int nr = 2 ) {
   bool f ;
   int    fb , i , nb =- 1 ;

   if ( sy == "" || sy == " 0 " ) sy = Symbol () ;
   if ( nl < 1 ) nl = 1 ;
   if ( nr < 1 ) nr = 1 ;

   fb = nr ;
   while ( nb < 0 ) {
     fb ++;
     f = True ;
     for ( i = fb ; i > fb - nr ; i -- ) {
       if ( iLow ( sy , tf , i ) > iLow ( sy , tf , i - 1 )) { f = False ; break ; }
     }
     if ( f ) {
       for ( i = fb ; i < fb + nl ; i ++ ) {
         if ( iLow ( sy , tf , i ) > iLow ( sy , tf , i + 1 )) { f = False ; break ; }
       }
       if ( f ) { nb = fb ; break ; }
     }
   }

   return ( iLow ( sy , tf , nb )) ;
}
 

GetNearestDownFractal() 함수 사용의 예.

  • 현재 차트에서 가장 가까운 하위 프랙탈의 가격 수준입니다. 프랙탈 공식 2-2(표준).
     Message ( GetNearestDownFractal ()) ;
  • USDCAD H1 차트에서 가장 가까운 하위 프랙탈의 가격 수준입니다. 프랙탈 공식 4-2.
     Message ( GetNearestDownFractal ( " USDCAD " , PERIOD_H1 , 4 )) ;
  • 현재 차트에서 가장 가까운 5-3 다운 프랙탈의 가격 수준에 수평선 을 그립니다.
     double p = GetNearestDownFractal ( NULL , 0 , 5 , 3 ) ;
    SetHLine ( Red , "" , p ) ; 

추신. GetNearestDownFractal() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.

 
KimIV писал (а) >> 를 썼습니다.

GetNearestDownFractal() 함수 사용의 예.

  • 현재 차트에서 가장 가까운 하위 프랙탈의 가격 수준입니다. 프랙탈 공식 2-2(표준).
  • USDCAD H1 차트에서 가장 가까운 하위 프랙탈의 가격 수준입니다. 프랙탈 공식 4-2.
  • 현재 차트에서 가장 가까운 5-3 다운 프랙탈의 가격 수준에 수평선을 그립니다.

추신. GetNearestDownFractal() 함수를 테스트하기 위한 스크립트가 첨부되어 있습니다.

마지막 프랙탈보다 더 많은 것을 검색할 수만 있다면...........와우!!! ...

 
Tsyrus писал (а) >> 를 썼습니다.

마지막 프랙탈보다 더 많은 것을 검색할 수만 있다면...........와우!!! ...

응. 예를 들어, 새로 형성된 프랙탈의 좌표와 관련하여 값이 >= 1인 모든 프랙탈(마지막 9개 막대 동안)을 (수직선으로) 표시하고 이 값을 프랙탈 위에 표시합니다. 도와주기 위해 (감히 묻지도 못함) ....

 

나는 당신이 이렇게 쓰는 일반적인 능력을 존경합니다. 자신 - 패치되지 않은 lamer. 저는 이제 막 MQL을 배우기 시작했습니다.

주제에서 벗어나서 죄송합니다!

나는 쓰는 방법을 이해하지 못한다:

1. 1 및 2 bar에 대한 스토캐스틱 라인과 새로운 0 bar가 형성될 때의 신호 기능 비교.

(대략적으로 말하면, 선의 상하 이동 방향과 이들의 교차점을 추정)

2. 1시간/30분/15분에 한번씩 하는 방법.

간단한 예를 보여주세요!

또는 비슷한 것에 대한 링크를 제공하십시오.

무시하셔도 미리 감사드립니다!!!

 
Domynus писал (а) >> 를 썼습니다.

1. 1 및 2 bar에 대한 스토캐스틱 라인과 새로운 0 bar가 형성될 때의 신호 기능 비교.

(대략적으로 말하면, 선의 상하 이동 방향과 이들의 교차점을 추정)

2. 1시간/30분/15분에 한번씩 하는 방법.

간단한 예를 보여주세요!

또는 비슷한 것에 대한 링크를 제공하십시오.

https://book.mql4.com/ru/samples/indicators
https://book.mql4.com/ru/build/conditions

 

스토캐스틱 감사합니다.

그냥 내가 할 수 있는 일이 따로 있다고 생각했다.

그리고 주어진 시간에 한 번만 거래를 하는 방법은 무엇입니까?

(예를 들어 신호 연구는 15.30분 또는 60분마다 발생)

기능 자체에 관심이 있습니다.

 

GetNearestUpFractal() 함수.

이 함수는 가장 가까운 상향 프랙탈을 검색하고 해당 가격 수준을 반환합니다. 이 함수의 특징은 임의의 프랙탈 공식을 설정하는 기능입니다. 일반적으로 허용되는 표준 프랙탈 공식은 다음과 같습니다. 2-2. 즉, 왼쪽에 2개의 막대와 오른쪽에 2개의 막대가 있습니다. 그리고 이 기능을 사용하여 8-2(왼쪽에 8개, 오른쪽에 2개), 5-3(왼쪽에 5개, 오른쪽에 3개) 등과 같은 매우 이국적인 프랙탈을 설정할 수도 있습니다. . 이 함수는 다음과 같은 선택적 매개변수를 허용합니다.

  • sy - 도구 이름. "" 또는 NULL 은 현재 문자입니다. 기본값은 NULL 입니다.
  • tf - 기간. 기본값 0 은 현재 문자입니다.
  • nl - 왼쪽에 있는 막대의 수입니다. 기본값은 2 입니다.
  • nr - 오른쪽에 있는 막대의 수입니다. 기본값은 2 입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Возвращает ближайший верхний фрактал                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL - текущий символ)                 |
//|    tf - таймфрейм                  ( 0 - текущий таймфрейм)                |
//|    nl - количество баров слева                                             |
//|    nr - количество баров справа                                            |
//+----------------------------------------------------------------------------+
double GetNearestUpFractal ( string sy = " 0 " , int tf = 0 , int nl = 2 , int nr = 2 ) {
   bool f ;
   int    fb , i , nb =- 1 ;

   if ( sy == "" || sy == " 0 " ) sy = Symbol () ;
   if ( nl < 1 ) nl = 1 ;
   if ( nr < 1 ) nr = 1 ;

   fb = nr ;
   while ( nb < 0 ) {
     fb ++;
     f = True ;
     for ( i = fb ; i > fb - nr ; i -- ) {
       if ( iHigh ( sy , tf , i ) < iHigh ( sy , tf , i - 1 )) { f = False ; break ; }
     }
     if ( f ) {
       for ( i = fb ; i < fb + nl ; i ++ ) {
         if ( iHigh ( sy , tf , i ) < iHigh ( sy , tf , i + 1 )) { f = False ; break ; }
       }
       if ( f ) { nb = fb ; break ; }
     }
   }

   return ( iHigh ( sy , tf , nb )) ;
}