이 MACD 지표는 현재 차트의 타임프레임보다 높거나 낮은 모든 타임프레임에 적용할 수 있습니다.
값은 일반적인 가격 유형을 기준으로 계산될 수 있습니다. 만약 지표가 현재 차트의 타임프레임보다 낮은 타임프레임에 적용될 경우, 모든 값을 표시할 수는 없습니다. 이 경우 선택한 가격 유형에 따라 가장 적절한 값을 제공하기 위해 다른 접근 방식이 사용됩니다.
두 가지 예시를 들어보겠습니다:
- 타임프레임_1=5분, 타임프레임_2=1분, 종가 가격 시리즈로 계산:
타임프레임_1의 어떤 바에 대해서도, 지표는 타임프레임_2의 최신 바를 보여줍니다. 이 바는 타임프레임_1의 바의 종가 시점 이전 또는 그 시점에 닫힌 바입니다. 이는 닫힌 바뿐만 아니라 현재 열려 있는 바에도 적용됩니다.
- 타임프레임_1=5분, 타임프레임_2=1분, 시가 가격 시리즈로 계산:
타임프레임_1의 어떤 바에 대해서도, 지표는 타임프레임_2의 최신 바를 보여줍니다. 이 바는 타임프레임_1의 바의 시가 시점 이전 또는 그 시점에 열린 바입니다. 여기서의 논리는, 바의 시가를 기준으로 지표를 계산한다면, 아마도 새로운 바가 열릴 때 거래를 할 가능성이 높기 때문입니다. 따라서 새로운 5분 바의 시가에서, 당신은 그 바에 포함된 첫 번째 1분 바의 시가만 알 수 있습니다. 두 번째부터 다섯 번째 1분 바의 시가는 계산에서 무시됩니다.
모든 타임프레임을 서로 조합할 수 있으며, 서로 동기화되지 않더라도 가능합니다. 예를 들어 타임프레임_1 = 5분, 타임프레임_2 = 12분과 같은 경우입니다. 지표는 이들이 동기화되도록 합니다. 이 작동 방식은 위의 예시와 유사합니다.
첨부된 엑셀 시트 (Conversion between timeframes.zip)는 가능한 모든 조합의 예시와 시각적 설명을 포함하고 있습니다. 소스 코드도 확인해 보시면 도움이 될 것입니다. 이를 통해 자신만의 다중 타임프레임 지표를 만드는 데 도움이 되길 바랍니다.
타임프레임을 전환할 때 가격 데이터가 로드될 수 있도록 몇 초의 시간을 주십시오. 지표가 표시되지 않으면 차트를 수동으로 새로 고침하세요.
필요한 파일:
- MovingAverages.mqh (terminal_data_folder\MQL5\Include 폴더의 기본 포함 파일)
- MACD_Histogram_MC (mql5.com에도 게시됨)
지표가 작동하려면 MACD Histogram_MTF_MC.mq5와 MACD_Histogram_MC.mq5를 terminal_data_folder\MQL5\Indicators에 넣어주세요.
소스에서 오류 메시지를 켜고 끄는 방법을 확인하세요:
bool ShowErrorMessages=false; // 디버깅을 위한 오류 메시지 켜기/끄기

업데이트 내역:
2010 09 26: v03
- 차트의 타임프레임보다 작은 타임프레임에서 값 표시 개선;
- if(convertedTime<tempTimeArray_TF2[0]) 이후 버퍼를 EMPTY_VALUE로 설정;
- 코드 최적화;
- OnInit()에서 PLOT_DRAW_BEGIN 제거 - 단일 타임프레임 지표에서 상속;
- 버퍼와 배열의 ArraySetAsSeries를 OnInit()으로 이동;
- 신호선의 MA 방법으로 MODE_SMMA 및 MODE_LWMA 추가;
- ENUM_APPLIED_PRICE를 입력 매개변수 목록의 마지막으로 이동;
2010 08 28: v02B
- 지표 최초 게시;