거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Twitter에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
Experts

새 막대 또는 캔들 시작 감지하기 - MetaTrader 5용 expert

조회수:
27
평가:
(13)
게시됨:
2025.04.03 11:16
NovaBarra.mq5 (1.53 KB) 조회
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

EA(Expert Advisor) 의 경우 메타트레이더에서 새 호가("틱")가 수신되면 터미널에서 표준 OnTick() 이벤트 처리 함수가 호출됩니다. 그러나 새 막대(캔들)가 시작될 때를 위한 표준 이벤트 처리 함수는 없습니다.

이를 감지하려면 가장 최근 바의 시작 시간을 모니터링해야 합니다. 이 시간이 변경되면 새로운 바가 시작되었음을 의미하므로 상황에 대응하여 이벤트를 처리할 수 있습니다. 다음 코드 예제는 MQL4 및 MQL5와 모두 호환되며, 이를 달성하는 방법 중 하나를 보여줍니다:

// 표준 틱 이벤트 핸들러
   void OnTick()
   {
      // 새 막대가 있는지 확인합니다(MQL4 및 MQL5와 호환).
         static datetime dtBarraCorrente   = WRONG_VALUE;
                datetime dtBarraPrecedente = dtBarraCorrente;
                         dtBarraCorrente   = iTime( _Symbol, _Period, 0 );
                bool     bEventoBarraNova  = ( dtBarraCorrente != dtBarraPrecedente );

      // 새로운 바 이벤트에 반응하고 상황을 처리합니다.
         if( bEventoBarraNova )
         {
            // 처음 수신된 틱인지 감지하고 상황을 처리합니다.
               /* 예를 들어 그래프에 처음 적용했을 때
 는 막대가 진행 중이며
 는 실제로 새 막대의 시작이 아닙니다. */
               if( dtBarraPrecedente == WRONG_VALUE )
               {
                  // 첫 번째 틱 또는 막대 중간에 무언가를 수행합니다...
               }
               else
               {
                  // 일반 막대가 나타나면 작업을 수행합니다 ...
               };

            // 이전 조건과 독립적인 작업을 수행합니다 ...
         }
         else
         {
            // 다른 작업 수행 ...
         };

      // 다른 작업 수행 ...
   };

이전 코드에서 정적 변수는 OnTick() 함수에서 돌아올 때에도 바의 개장 시간을 추적합니다. 일반 지역 변수와 달리 데이터 내용을 기억하고 함수를 벗어날 때 해제하지 않습니다. 이것이 현재 막대의 개장 시간 변경을 감지하는 핵심입니다.

또한 EA가 차트에 처음 배치되면 이전 코드는 막대가 방금 열린 것처럼 반응한다는 점에 유의해야 합니다. 이 조건은 상황을 다르게 처리해야 하는 경우 특별한 처리가 필요합니다.

모든 코드베이스 게시물의 소스 코드는 이제 MetaEditor의 "공개 프로젝트"에서 "FMIC"라는 이름으로도 사용할 수 있습니다.

MetaQuotes Ltd에서 포르투갈어로 번역함.
원본 기고글: https://www.mql5.com/pt/code/41601

캘린더 캘린더

캘린더 - 기록 및 실시간에 대한 기본 분석.

싱글 테스터 캐시 싱글 테스터 캐시

테스터의 단일 패스 데이터.

New Candle or Bar formation. New Candle or Bar formation.

This Bot detects the open of a new candle on any set timeframe, thereby making it easier to run a one-time code, place trades and call other functions. The code is written in the OnTick() function.

전문가 전문가

임의의 EA의 읽기/쓰기 매개변수 라이브러리.