거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Telegram에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
조회수:
43
평가:
(24)
게시됨:
\MQL5\Experts\ \MQL5\Include\
isnewbar.mqh (1.41 KB) 조회
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

전문가가 새 막대가 도착하는 시점에 계산을 하는 데 필요한 클래스는 CIsNewBar입니다.

일반적으로 이러한 작업에는 클래스가 아닌 IsNewBar() 함수만 사용됩니다. 그러나 이러한 함수에는 정적 변수가 포함되어 있으므로 이 함수를 여러 번 호출할 수 없습니다. Expert Advisor 코드에서 이러한 함수를 여러 번 사용하려면 클래스의 멤버로 만드는 것이 훨씬 더 편리하며, 이 경우 IsNewBar.mqh 라이브러리의 도움으로 수행되었습니다.

라이브러리 코드 자체는 #include 지시문을 사용하여 전역 수준에서 파일 내용에 포함시켜야 합니다:

#include <IsNewBar.mqh>

그런 다음 OnTick() 블록에서 IsNewBar 클래스의 필요한 수의 변수를 선언해야 합니다:

static CIsNewBar NB1,NB2;

그런 다음 IsNewBar() 함수를 호출할 수 있습니다.

bool IsNewBar(string symbol,            // 통화 기호
              ENUM_TIMEFRAMES timeframe) // 차트 계산 시간 프레임

함수를 호출할 수 있습니다:

if(NB1.IsNewBar(Symbol(),PERIOD_D1)) // 새 막대가 있는지 확인
     {
      /* 거래 신호 1 수신 블록의 코드는 다음과 같습니다 */.
     }

예를 들어, 다음은 OnTick() 함수 내에서 CIsNewBar 클래스를 사용하는 가능한 코드 변형입니다:

//+------------------------------------------------------------------+
//| 전문가 틱 기능|
//+------------------------------------------------------------------+
void OnTick()
  {
//----

   double iClose1[1],iClose2[1];
//---- 정적 변수 선언
   static bool Recount1=true,Recount2=true;
   static CIsNewBar NB1,NB2;

//+----------------------------------------------+
//| 거래 신호 결정하기 |
//+----------------------------------------------+
   if(NB1.IsNewBar(Symbol(),PERIOD_D1) || Recount1) // 새 막대가 있는지 확인
     {
      Recount1=false;
      
      //---- 새로 나타난 데이터를 배열에 복사합니다.
      if(CopyClose(Symbol(),PERIOD_D1,1,1,iClose1)<=0) {Recount1=true; return;}
      
      /* 거래 신호 1 수신 블록의 코드는 다음과 같습니다 */.
      
     }
     
   if(NB2.IsNewBar(Symbol(),PERIOD_H4) || Recount2) // 새 막대가 있는지 확인
     {
      Recount2=false;
      
      //---- 새로 나타난 데이터를 배열에 복사합니다.
      if(CopyClose(Symbol(),PERIOD_H4,1,1,iClose2)<=0) {Recount2=true; return;}
      
      /* 2 */ 거래 신호 수신 블록의 코드는 다음과 같습니다.
      
     }

MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/768

ATR 채널 ATR 채널

이동 평균에서 기술 지표 ATR(평균 실제 범위)의 편차를 기반으로 하는 채널입니다.

Basic GridManager Library Basic GridManager Library

그리드를 만들고 관리하기 위한 기본 라이브러리입니다.

예측 오실레이터 예측 오실레이터

신호 라인과 컬러 도트가 추가된 정규화된 오실레이터로 트레이딩을 할 수 있습니다.

A Code block to detect A "New Candle/Bar" using bars history (very effective way) A Code block to detect A "New Candle/Bar" using bars history (very effective way)

코드 블록을 '바당 한 번만' 실행하려면 새 바가 도착했는지 여부를 확인하는 것이 중요합니다.