- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnChartEvent
이 함수는 ChartEvent 이벤트가 발생할 때 지표와 EA로 호출됩니다. 이 함수는 사용자 또는 MQL5 프로그램에 의해 수행된 차트 변경 사항을 처리하기 위한 것입니다.
void OnChartEvent()
|
Parameters
id
[in] Event ID from the ENUM_CHART_EVENT 열거값.
lparam
[in] long 타입 이벤트 파라미터
dparam
[in] double 타입 이벤트 파라미터
sparam
[in] string 타입 이벤트 파라미터
반환 값
반환값 없음
참고
사전 정의된 OnChartEvent() 함수를 사용하여 처리할 수 있는 이벤트 유형에는 11가지가 있습니다. 커스텀 이벤트를 위해 CHARTEVENT_CUSTOM 에서부터 CHARTEVENT_CUSTOM_LAST 까지 65535개 ID가 제공됩니다. 커스텀 이벤트를 생성하려면 EventChartCustom() 함수를 사용하십시오.
ENUM_CHART_EVENT 열거값의 간단한 이벤트 설명:
- CHARTEVENT_KEYDOWN — 차트 창이 포커스에 있을 때 키보드의 키를 누름;
- CHARTEVENT_MOUSE_MOVE — 마우스 및 마우스 버튼 클릭 이동 (CHART_EVENT_MOUSE_MOVE가 차트에서 참인 경우);
- CHARTEVENT_OBJECT_CREATE — 그래픽 개체 생성 (CHART_EVENT_OBJECT_CREATE가 차트에서 참인 경우);
- CHARTEVENT_OBJECT_CHANGE — 속성 대화 상자를 통해 개체 속성 변경;
- CHARTEVENT_OBJECT_DELETE — 그래픽 개체 삭제 (CHART_EVENT_OBJECT_DELETE가 차트에서 참인 경우);
- CHARTEVENT_CLICK — 차트에서 클릭;
- CHARTEVENT_OBJECT_CLICK — 차트에 속하는 그래픽 개체를 마우스 클릭;
- CHARTEVENT_OBJECT_DRAG — 마우스를 사용하여 그래픽 개체 끌기;
- CHARTEVENT_OBJECT_ENDEDIT — 그래픽 개체의 편집 입력 상자에서 텍스트 편집 완료 (OBJ_EDIT);
- CHARTEVENT_CHART_CHANGE — 차트 변경;
- CHARTEVENT_CUSTOM+n — 사용자 지정 이벤트 ID (여기서 n은 0 ~ 65535 범위). CHARTEVENT_CUSTOM_LAST 에는 마지막으로 허용된 커스텀 이벤트 ID(CHARTEVENT_CUSTOM+65535)가 포함되어 있습니다.
모든 MQL5 programs은 어플리케이션의 메인 스레드 이외의 스레드에서 작동합니다. 메인 어플리케이션 스레드는 모든 Windows 시스템 메시지를 처리하고, 그 결과 자체 어플리케이션에 대한 Windows 메시지를 생성합니다. 예를 들어, 차트(WM_MOUSE_MOVE event)에서 마우스를 이동하면 응용 프로그램 창의 후속 렌더링을 위한 여러 시스템 메시지가 생성되며 차트에서 시작된 experts 및 지표에 내부 메시지가 전송됩니다. EA 또는 지표가 마우스 이동 이벤트를 이미 수신한 상태에서 주 애플리케이션 스레드가 아직 WM_PAINT 시스템 메시지를 처리하지 않은(따라서 수정된 차트를 렌더링하지 않은) 상황이 발생할 수 있습니다. 이 경우 차트 속성 CHART_FIRST_VISIBLE_BAR은 차트를 렌더링한 후에만 변경됩니다.
각 이벤트 유형에 대해 OnChartEvent() 함수의 입력에는 해당 이벤트를 처리하는 데 필요한 특정 값이 포함됩니다. 표에는 파라미터를 통해 전달된 이벤트와 값이 나와 있습니다.
Event |
'id' 파라미터 값 |
'lparam' 파라미터 값 |
'dparam' 파라미터 값 |
'sparam' 파라미터 값 |
---|---|---|---|---|
Keystroke event |
CHARTEVENT_KEYDOWN |
pressed button code |
키를 누른 상태로 유지하는 동안 생성된 키 누름 횟수 |
키보드 키의 상태를 설명하는 비트 마스크의 문자열 값 |
마우스 이벤트 (CHART_EVENT_MOUSE_MOVE가 차트에서 참인 경우) |
CHARTEVENT_MOUSE_MOVE |
X 좌표 |
Y 좌표 |
마우스 키의 상태를 설명하는 비트 마스크의 문자열 값 |
마우스 휠 이벤트 (CHART_EVENT_MOUSE_WHEEL가 차트에서 참인 경우) |
CHARTEVENT_MOUSE_WHEEL |
커서의 키와 마우스 버튼, X 및 Y 좌표에 대한 플래그. 다음 예제의 설명을 보십시오 |
마우스 휠 스크롤의 델타 값 |
— |
그래픽 개체 생성 (CHART_EVENT_OBJECT_CREATE가 차트에서 참인 경우) |
CHARTEVENT_OBJECT_CREATE |
— |
— |
생성된 그래픽 개체의 이름 |
속성 대화 상자를 통해 개체 속성 변경 |
CHARTEVENT_OBJECT_CHANGE |
— |
— |
변경된 그래픽 개체의 이름 |
그래픽 개체 제거 (CHART_EVENT_OBJECT_DELETE가 차트에서 참인 경우) |
CHARTEVENT_OBJECT_DELETE |
— |
— |
제거된 그래픽 개체의 이름 |
차트에서 마우스 클릭 |
CHARTEVENT_CLICK |
X 좌표 |
Y 좌표 |
— |
그래픽 개체에 마우스 클릭 |
CHARTEVENT_OBJECT_CLICK |
X 좌표 |
Y 좌표 |
이벤트가 발생한 그래픽 개체의 이름 |
마우스를 사용하여 그래픽 개체 이동 |
CHARTEVENT_OBJECT_DRAG |
— |
— |
이동된 그래픽 개체의 이름 |
"입력 필드" 그래픽 객체 입력 상자에서 텍스트 편집 완료 |
CHARTEVENT_OBJECT_ENDEDIT |
— |
— |
텍스트 편집이 완료된 "입력 필드" 그래픽 개체의 이름 |
속성 대화창을 통해 차트 크기 조정 또는 차트 속성 수정 |
CHARTEVENT_CHART_CHANGE |
— |
— |
— |
커스텀 이벤트(N 번호) |
CHARTEVENT_CUSTOM+N |
EventChartCustom() 함수에 의해 정의된 값 |
EventChartCustom() 함수에 의해 정의된 값 |
EventChartCustom() 함수에 의해 정의된 값 |
샘플 차트 이벤트 리스너:
//+------------------------------------------------------------------+
|
더 보기
EventChartCustom, Types of chart events, Event handling functions, Program running, Client terminal events