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

 

안녕하세요 이고르

이 연산자가 mql4 - OrderValue(cnt,VAL_TYPE)=OP_BUY(mql3)에서 대체된 연산자를 알 수 있습니까?

미리 감사드립니다.

 
현재 바 의 종가 로 주문을 마감하는 방법을 알려주시겠습니까? 즉, 바는 주문과 함께 닫힙니다.
 

안녕하세요 이고르입니다.

얼마나 많은 함수와 연산자를 보지 않았는지 - 나는 그것을 찾을 수 없습니다.

각 틱마다 선택된 하나만이 아니라 모든 열린 위치 를 한 번에 수정합니다.

실례가 되지 않는다면 알려주세요.

 
KimIV >> :

이 주제에서는 MQL4 프로그래밍 언어로 내 기능의 코드를 게시하고 사용 예를 제공하고 사용과 관련된 질문에 답합니다. 각 기능을 두 개의 게시물로 게시할 것입니다. 첫 번째 포스트에서는 함수 코드, 두 번째 포스트에서는 사용 예시와 간단한 설명을 하고 있습니다. 나는 때때로 결과가 표시된 기능의 실제 테스트를 위해 두 번째 게시물에 스크립트 코드를 첨부할 것입니다.

마지막에 " 두 명의 전문가 고문을 동시에 실행하는 방법 " 주제에서 Lukyanov 의 요청에 따라 주문과 함께 작동하도록 설계된 기능부터 시작하겠습니다.

주문 설정 기능을 첫 번째 기능으로 설정합니다(MT4 테스터용 버전).

안녕하세요 이고르입니다. 당신은 알터 트레이더 터미널에 익숙하지 않습니까? 그렇다면 저와 관련된 3~4개의 질문에 대한 답변을 말씀해 주시겠습니까?

 
ipm писал(а) >>
이고르. 안녕하세요.
간단한 작업을 그릴 수 있습니까?
신호선이 MACD를 교차할 가격 값으로 설정됩니다. 즉, MACD 히스토그램이 0이 됩니다.

안녕하세요 올렉입니다!

실제로 나는 그러한 문제를 해결하지 못했습니다. 예, 이론적으로 이것이 어떻게 수행되는지 막연하게 상상합니다. 아마도 McDuck의 값은 y로 취하고 가격은 x에 대한 것이며 함수 y=f(x)는 가격에 대한 McDuck 값의 의존성을 나타냅니다. 그렇게 간단하다면 x를 y x=F(y)로 표현하여 함수 y=f(x)를 역전시킬 수 있습니다. 그러나 어려움은 함수 y=f(x)가 하나의 x에 의존하지 않고 여러 x에 의존한다는 것입니다. 대학교에서 강의를 건너뛰었습니다 :-)

 
Duke3D писал(а) >>

안녕하세요 이고르님

이 연산자가 mql4 - OrderValue(cnt,VAL_TYPE)=OP_BUY(mql3)에서 대체된 연산자를 알 수 있습니까?

미리 감사드립니다.

분명히 그것은 OrderType() 일 것입니다.

 
mozg писал(а) >>
현재 바의 종가로 주문을 마감하는 방법을 알려주시겠습니까? 즉, 바는 주문과 함께 닫힙니다.
 static datetime prevTimeOpen = 0
if ( prevTimeOpen > 0 & & prevTimeOpen < Time [ 0 ] ) {
   for ( цикл перебора позиций ) {
     if ( выбрана позиция , которую надо закрыть ) {
       OrderClose ( . . . ) ;
     }
   }
}
prevTimeOpen = Time [ 0 ] ;
 
amur писал(а) >>

안녕하세요 이고르입니다.

얼마나 많은 함수와 연산자를 보지 않았는지 - 나는 그것을 찾을 수 없습니다.

한 번에 모든 열린 위치를 수정하고 각 틱마다 선택된 위치를 수정하지 않습니다.

실례가 되지 않는다면 알려주세요.

그러한 조치가 적절하지 않을 것입니다. 결국 각 위치에는 일반적으로 개별 매개 변수가 있습니다. 따라서 특정 하나가 선택됩니다 ...

정확히 무엇을 수정하시겠습니까?

 

NameDayOfWeek() 함수

매개변수로 전달된 숫자로 요일의 이름을 반환합니다.

  • ndw - 요일의 수. 필수 매개변수입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование дня недели                             |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    ndw - номер дня недели                                                  |
//+----------------------------------------------------------------------------+
string NameDayOfWeek ( int ndw ) {
   if ( ndw = = 0 ) return ( "Воскресенье" ) ;
   if ( ndw = = 1 ) return ( "Понедельник" ) ;
   if ( ndw = = 2 ) return ( "Вторник" ) ;
   if ( ndw = = 3 ) return ( "Среда" ) ;
   if ( ndw = = 4 ) return ( "Четверг" ) ;
   if ( ndw = = 5 ) return ( "Пятница" ) ;
   if ( ndw = = 6 ) return ( "Суббота" ) ;
}
 

NormalizeLot() 함수.

이 함수는 거래된 로트의 정규화된 값을 반환합니다. 정규화 외에 로트 크기를 딜링 센터에서 설정한 제한 내로 유지하는 기능도 있습니다(로트 변경 단계는 물론 최소 및 최대 로트 값 확인). NormalizeLot() 함수는 다음 매개변수를 사용합니다.

  • lo - 정규화할 로트 값입니다. 필수 매개변수입니다.
  • ro - 반올림 방법. 거짓 -아래, -위. 기본값은 False - down입니다.
  • sy - 거래 상품의 이름. NULL 또는 "" 는 현재 문자입니다. 기본값은 "" 입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 16.05.2008                                                     |
//|  Описание : Возвращает нормализованное значение торгуемого лота.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    lo - нормализуемое значение лота.                                       |
//|    ro - способ округления          (   False    - в меньшую,               |
//|                                        True     - в большую сторону)       |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//+----------------------------------------------------------------------------+
double NormalizeLot ( double lo , bool ro = False , string sy = "" ) {
   double l , k ;
   if ( sy = = "" | | sy = = "0" ) sy = Symbol ( ) ;
   double ls = MarketInfo ( sy , MODE_LOTSTEP ) ;
   double ml = MarketInfo ( sy , MODE_MINLOT ) ;
   double mx = MarketInfo ( sy , MODE_MAXLOT ) ;

   if ( ml = = 0 ) ml = 0.1 ;
   if ( mx = = 0 ) mx = 100 ;

   if ( ls > 0 ) k = 1 / ls ; else k = 1 / ml ;
   if ( ro ) l = MathCeil ( lo * k ) / k ; else l = MathFloor ( lo * k ) / k ;

   if ( l < ml ) l = ml ;
   if ( l > mx ) l = mx ;

   return ( l ) ;
}

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

파일: