안녕하세요, 트레이더 여러분! 오늘은 MetaTrader 5에서 사용되는 새로운 바 이벤트 핸들러에 대해 이야기해볼까 합니다. 이 접근 방식에 대한 자세한 내용은 "새로운 바 이벤트 핸들러"라는 글에서 확인할 수 있습니다. 여기서는 이 핸들러를 이용한 지표의 구현 예시를 살펴보겠습니다. 이 접근법의 핵심은 새로운 바가 생성될 때만 재계산을 수행하도록 하는 것입니다. 즉, OnCalculate() 함수의 직접적인 사용 대신에 더욱 효율적으로 작업할 수 있다는 점이죠.
아래는 새로운 바가 생성될 때마다 선을 출력하는 간단한 지표 예제입니다:
//+------------------------------------------------------------------+ //| OnNewBarCalculate.mq5 | //| Copyright 2010, Lizar | //| Lizar@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright 2010, Lizar" #property link "Lizar@mail.ru" #property version "1.00" #property indicator_chart_window #include <OnNewBarCalculate.mqh> // OnNewBarCalculate() 함수 호출의 비밀//+------------------------------------------------------------------+ //| 지표를 위한 새로운 바 이벤트 핸들러 | //+------------------------------------------------------------------+ int OnNewBarCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spread[]) { //--- 여기에 OnCalculate()와 비슷한 코드를 작성할 수 있습니다. //--- 이 함수는 새로운 바가 나타날 때만 호출됩니다 (매 틱마다 호출되지 않음) PrintFormat("새로운 바: %s",TimeToString(TimeCurrent(),TIME_SECONDS)); //--- 다음 호출을 위한 prev_calculated의 반환 값 return(rates_total); }
이 지표를 활용하면 보다 효율적으로 시장의 변화를 감지하고 분석할 수 있습니다. 여러분의 트레이딩 전략에 많은 도움이 되길 바랍니다!