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

 
zennon писал(а) >>
MovingInWL() 함수는 입력 필터 sy,op,mn에 관계없이 모든 열린 위치를 어리석게 반복합니다. 이는 예시로 첨부된 Expert Advisor(55페이지)에도 적용됩니다.

안드레이, 감사합니다! 결정된...

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 23.04.2009                                                     |
//|  Описание : Перенос уровня стопа в безубыток                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void MovingInWL ( string sy = "" , int op = - 1 , int mn = - 1 ) {
   double po , pp ;
   int     i , k = OrdersTotal ( ) ;

   if ( sy = = "0" ) sy = Symbol ( ) ;
   for ( i = 0 ; i < k ; i + + ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) {
       if ( ( OrderSymbol ( ) = = sy | | sy = = "" ) & & ( op < 0 | | OrderType ( ) = = op ) ) {
         if ( mn < 0 | | OrderMagicNumber ( ) = = mn ) {
          po = MarketInfo ( OrderSymbol ( ) , MODE_POINT ) ;
           if ( OrderType ( ) = = OP_BUY ) {
             if ( OrderStopLoss ( ) - OrderOpenPrice ( ) < LevelWLoss * po ) {
              pp = MarketInfo ( OrderSymbol ( ) , MODE_BID ) ;
               if ( pp - OrderOpenPrice ( ) > LevelProfit * po ) {
                ModifyOrder ( - 1 , OrderOpenPrice ( ) + LevelWLoss * po , - 1 ) ;
               }
             }
           }
           if ( OrderType ( ) = = OP_SELL ) {
             if ( OrderStopLoss ( ) = = 0 | | OrderOpenPrice ( ) - OrderStopLoss ( ) < LevelWLoss * po ) {
              pp = MarketInfo ( OrderSymbol ( ) , MODE_ASK ) ;
               if ( OrderOpenPrice ( ) - pp > LevelProfit * po ) {
                ModifyOrder ( - 1 , OrderOpenPrice ( ) - LevelWLoss * po , - 1 ) ;
               }
             }
           }
         }
       }
     }
   }
}
e-MovingInWL2.mq4 Expert Advisor 도 수정되었습니다.
 

좋은 오후 이고르!

포럼에 많은 시간을 할애해 주셔서 감사합니다. Igor, "시장 깊이"라는 들어오는 구매/판매 요청에 대한 정보를 받을 가능성을 알고 있습니까?

 
Alex30 писал(а) >>
Igor, "시장 깊이"라는 들어오는 구매/판매 요청에 대한 정보를 받을 가능성을 알고 있습니까?

아니요

 
경험자를 위한 질문: 누군가 내 xMeterMTF.mq4 데모에서 표시기가 모든 것이 정상임을 보여주지만 실제 생활에서는 유로가 비어 있는 이유를 알려줄 수 있습니까? ) 이것을 고칠 수 있다면
파일:
xmetermtf.mq4  8 kb
xmeter.rar  34 kb
 

isTradeTimeString() 함수.

이 함수는 시간 거래 허가 플래그를 반환합니다. 실제로 실제로 확인되는 것은 특정 기간 내 거래 서버의 현재 시간 위치입니다. 내부에 있으면 isTradeTimeString() 함수는 true를 반환하고 그렇지 않으면 false를 반환합니다. 이 기능의 특징은 하루 내와 하루 외의 시간 간격을 설정하는 기능입니다. 이것은 사용 예에서 더 자세히 표시됩니다. isTradeTimeString() 함수는 다음과 같은 선택적 매개변수를 허용합니다.

  • TimeBegin - "HH:MM" 형식의 문자열로 거래 시작 시간을 설정합니다. 기본값은 "00:00"입니다.
  • TimeEnd - "HH:MM" 형식의 문자열로 거래 종료 시간을 설정합니다. 기본값은 "00:00"입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 29.04.2009                                                     |
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    TimeBegin - время начала торговли         (ЧЧ:ММ)                       |
//|    TimeEnd   - время окончания торговли      (ЧЧ:ММ)                       |
//+----------------------------------------------------------------------------+
bool isTradeTimeString ( string TimeBegin = "00:00" , string TimeEnd = "00:00" ) {
   datetime dtBegin , dtEnd ;          // Время начала и окончания работы
   int       hc , he ;                  // Часы текущего времени и окончания работы

  dtBegin = StrToTime ( TimeToStr ( TimeCurrent ( ) , TIME_DATE ) + " " + TimeBegin ) ;
  dtEnd   = StrToTime ( TimeToStr ( TimeCurrent ( ) , TIME_DATE ) + " " + TimeEnd ) ;
  hc     = TimeHour ( TimeCurrent ( ) ) ;
  he     = TimeHour ( dtEnd ) ;
   if ( dtBegin > = dtEnd ) {
     if ( hc > = he ) dtEnd + = 24 * 60 * 60 ; else dtBegin - = 24 * 60 * 60 ;
   }

   if ( TimeCurrent ( ) > = dtBegin & & TimeCurrent ( ) < = dtEnd ) return ( True ) ;
   else return ( False ) ;
}
 

isTradeTimeString() 함수 사용의 예.

  1. 하루 내의 기간입니다. 거래 서버의 현재 시간은 세그먼트 내부에 있으며 "07:50"과 동일하게 둡니다.
    if (isTradeTimeString("06:00", "09:30")) Message("Торгуем...");
    else Message("Отдыхаем...");
  2. 하루 내의 기간입니다. 거래 서버의 현재 시간은 세그먼트 외부에 있으며 "07:50"과 동일하게 둡니다.
    if (isTradeTimeString("12:00", "16:30")) Message("Торгуем...");
    else Message("Отдыхаем...");
  3. 시간 간격에는 하루의 경계가 포함됩니다. 거래 서버의 현재 시간은 세그먼트 내부에 있으며 "07:50"과 동일하게 둡니다.
    if (isTradeTimeString("21:15", "09:30")) Message("Торгуем...");
    else Message("Отдыхаем...");
  4. 시간 간격에는 하루의 경계가 포함됩니다. 거래 서버의 현재 시간은 세그먼트 외부에 있으며 "07:50"과 동일하게 둡니다.
    if (isTradeTimeString("22:00", "05:30")) Message("Торгуем...");
    else Message("Отдыхаем...");

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

 
KimIV >> :

Igor, 결함이 주기적으로 i-Sessions 표시기에 나타납니다: 아직 열리지 않은 세션 영역이 나타났다가 사라집니다...

 
DR12CED >> :

Igor, 결함이 주기적으로 i-Sessions 표시기에 나타납니다. 아직 열리지 않은 세션 영역이 나타났다가 사라집니다...

앗.. 되돌려 드리겠습니다... 이벤트를 기다리는 데에도 도움이 될 것입니다... 죄송합니다... plz...

 
KimIV >> :

isTradeTimeString() 함수.

이 함수는 시간 거래 허가 플래그를 반환합니다. 실제로 실제로 확인되는 것은 특정 기간 내 거래 서버의 현재 시간 위치입니다. 내부에 있으면 isTradeTimeString() 함수는 true를 반환하고 그렇지 않으면 false를 반환합니다. 이 기능의 특징은 하루 내와 하루 외의 시간 간격을 설정하는 기능입니다. 이것은 사용 예에서 더 자세히 표시됩니다. isTradeTimeString() 함수는 다음과 같은 선택적 매개변수를 허용합니다.

  • TimeBegin - "HH:MM" 형식의 문자열로 거래 시작 시간을 설정합니다. 기본값은 "00:00"입니다.
  • TimeEnd - "HH:MM" 형식의 문자열로 거래 종료 시간을 설정합니다. 기본값은 "00:00"입니다.

그리고 변수가 "string"이 아니라 "int"가 되도록 할 수 있습니다. 테스터에서 정렬하려면?

미리 감사드립니다.

 
vasilyt писал(а) >>
그리고 변수가 "string"이 아니라 "int"가 되도록 할 수 있습니다. 테스터에서 정렬하려면?

76페이지 에서...