안녕하세요, 트레이더 여러분! 오늘은 메타트레이더 5에서 사용할 수 있는 틱스 인디케이터에 대해 알아볼게요. 이 인디케이터는 다른 틱 인디케이터와는 달리, 메인 차트에서 바 위에 직접적으로 틱 이력을 보여줍니다. 이를 통해 스프레드 이력을 명확히 볼 수 있으며, 각 바의 형성 과정을 시각적으로 확인할 수 있습니다. 현재 실시간 바의 형성도 쉽게 볼 수 있답니다.

주의 사항
이 인디케이터는 차트에 보이는 모든 시간 간격에 대한 가격 틱 이력을 보여주기 때문에, 시각화할 틱의 수가 수십만에서 수백만에 이를 수 있습니다. 이렇게 많은 데이터를 처리하는 것은 인디케이터가 느리게 작동하게 만들 수 있어요. 예를 들어, H1의 최소 규모에서 보게 되면 여러 달의 데이터가 보일 수 있습니다. 이 경우, 인디케이터는 수백만 개의 틱을 로드하고 표시하기 위해 매우 느리게 작동할 것입니다.
틱을 모니터링하려면 작은 시간 프레임(M5 이하)과 큰 스케일을 사용하는 것이 합리적입니다. 이렇게 하면 가격 이력을 상세히 볼 수 있답니다(위 그림처럼요).
이 인디케이터는 블로그에서 가져와 약간 수정한 것으로, 배열 오버플로우 문제가 있었어요. 해당 LowAsk와 HighBid에 해당하는 영역을 채우는 몇 가지 줄을 추가했습니다. 또한 원본에서 불필요한 부분을 많이 제거했으며, 인디케이터의 OOP 구조와 사용되지 않는 mqh 파일이 포함되어 있었습니다.
놀랍게도(인디케이터 버퍼가 전혀 없어요) 안정적입니다.
디자인은 최적화되어 있지 않지만, 이는 작성 당시 CopyTicks 함수의 많은 버그가 수정되지 않았기 때문으로 보입니다. 그럼에도 불구하고, 이 인디케이터는 역사 데이터는 올바르게 빠르게 보여줍니다(속도를 상당히 증가시킬 여지가 있어요).
이 인디케이터를 iCustom이나 IndicatorCreate로 호출하는 것은 의미가 없습니다. 인디케이터 버퍼가 없기 때문이죠. 이 인디케이터는 오직 역사 시각화 용도로만 사용되며, 보여주는 기능이 주요 목적입니다.
예를 들어, EA와 유사하답니다.
#property strict #include <fxsaber\ChartObjects\ChartObjectTicks.mqh> CHARTOBJECTTICKS ChartObject; void OnChartEvent( const int id, const long& lparam, const double& dparam, const string& sparam ) { EVENTBASE::MyEvent(id, lparam, dparam, sparam); } void OnTick( void ) { if (::ChartGetInteger(0, ::CHART_FIRST_VISIBLE_BAR) <= ::ChartGetInteger(0, ::CHART_VISIBLE_BARS)) ChartObject.Visual(); }
즉, 이 인디케이터는 상호작용하는 그래픽 객체의 사용자 정의 유형 중 하나를 단순히 사용합니다. 그래서 역설적으로, 이 인디케이터는 형식적으로만 인디케이터일 뿐, MT 프로그램의 기술적 형식입니다.
이 객체의 투명도 수준은 입력 매개변수에서 설정할 수 있습니다.
이 인디케이터는 독립적이며, 표준 라이브러리를 사용하지 않습니다.
터미널을 사용하여 스크린샷을 찍는 것은 문제를 일으킬 수 있으며, 터미널에서 보여주는 것과 일치하지 않을 수 있습니다.
메타트레이더 4에서도 사용 가능하지만, 물론 아무 것도 보여주지 않습니다(복사된 틱 데이터가 없기 때문이죠).