시스템트레이딩 게시글

새로운 캔들 감지하는 코드 블록 (MT5용) - 더 빠르고 가벼운 방법

첨부파일
49171.zip (462 bytes, 다운로드 1회)

안녕하세요, 트레이더 여러분! 오늘은 새로운 캔들을 감지하는 방법에 대해 이야기해볼게요. 이전에는 시간을 기준으로 새로운 바를 감지했었는데, 이번에는 바 수를 이용해서 감지해보려고 해요. 이 방법이 시간 기반 방법보다 훨씬 가볍고 빠르답니다.

  • 먼저, 정수형 데이터 타입으로 바 수를 저장할 변수를 선언합니다.
  • 초기화할 때 BarsTotal_OnInt에 바 수를 할당합니다.
  • 실시간 차트에서 바 수를 할당하기 위해 iBars(); 함수를 사용하여 BarsTotal_OnTick 변수에 바 수를 업데이트합니다. 이 변수는 매 틱마다 업데이트됩니다.
  • 코드의 정확성을 확인하기 위해 코멘트알림을 사용합니다.

int BarsTotal_OnInt; 
int BarsTotal_OnTick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {  
   BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // 초기화 시 총 바 수 할당
   return(INIT_SUCCEEDED);
  }
  
void OnTick() // OnTick 함수
  {   
   BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // 최신 바 수 저장
   
   if(BarsTotal_OnTick > BarsTotal_OnInt) // 새로운 바가 도착했을 때
   {
    BarsTotal_OnInt = BarsTotal_OnTick; // 기록 업데이트
    Alert("새로운 바가 도착했습니다");
    Comment("기록의 바 수 -: ", BarsTotal_OnInt, "\n", "실시간 바 수 -: ", BarsTotal_OnTick);

    // 여기에 코드를 추가하세요. --------------------------
    // 나중에 사용할 플래그/변수를 업데이트할 수 있습니다.

   }
  }

연관 포스트

댓글 (0)