AutoElliottWaveMaker-MetaTrader 5 엘리엇 파동 반자동 분석 도구

MRoVas | 5 8월, 2021


개요

'MQL5로 엘리엇 파동 자동 분석 구현하기'에서 자동 파동 라벨링 알고리즘의 몇 가지 단점을 알아보았는데요. 그 중 하나는 속도였죠. 속도가 느린 분석 도구를 실제 거래에 적용할 수는 없으므로 다음과 같은 장점을 갖는 반자동 파동 라벨링 도구로 자동 분석 도구를 대체하기로 했습니다.

해당 프로그램은 AutoElliottWaveMaker라고 불리는데요. 본문에서 자세히 설명할 겁니다. AutoElliottWaveMaker는 현재 마켓에서 구입 가능합니다.


1. 프로그램 객체

프로그램의 주요 객체는 라벨과 라벨 패널입니다(그림 1).

라벨 패널

그림 1. 라벨 패널

라벨 패널은 하나의 파동에 대한 라벨 시퀀스이며 차트 좌측 상단에 자리합니다. 패널 위치와 각 라벨 사이의 간격은 프로그램 입력 매개 변수에서 사용자가 직접 지정할 수 있습니다(그림 2).

입력 변수

그림 2. 프로그램 입력 변수

라벨 패널은 현재 파동 레벨의 명칭을 나타내기도 합니다(그림 1).

ESC 키를 눌러 해당 라벨을 숨기거나 보일 수 있습니다. 이전 라벨 또는 다음 라벨을 보려면 Q 또는 W 키를 누르세요.

드래그 앤 드롭 방식으로 라벨 패널 내 라벨을 제거할 수 있습니다. 라벨 이동 시 라벨 패널은 초기화됩니다. 라벨이 제거되는 경우 라벨 패널은 복구되지 않습니다. 복구가 필요한 경우 다른 파동 레벨로 넘어갔다가 돌아오세요.

파동 레벨 및 라벨의 개수 및 형태는 프로그램 시작 시 자동으로 생성되는 Levels.txt 파일에서 설정됩니다. Levels.txt 파일은 MetaTrader 5 데이터 디렉토리의 파일 폴더에 위치합니다. 해당 파일을 수정하여 파동 레벨 형식을 변경할 수 있습니다(그림 3).

레벨 설명

그림 3. Levels.txt

해당 파일의 네 번째 라인을 한번 볼까요?

파일 편집 시 다음 사항을 준수해야 합니다.

특히, 프로그램 실행에 앞서 MetaTrader 5 터미널(메뉴-도구-옵션-차트)에서 '바 최대 개수'를 '제한 없음'으로 설정해야 합니다.


2. 파동 라벨링 과정

엘리엇 파동은 수동 및/또는 자동 모드로 라벨링됩니다.

수동 모드에서는 다음의 두 가지 방법으로 라벨링이 가능합니다.

  1. 라벨 패널 내 라벨 드래그
  2. 차트 내 바 부근 클릭

자동 모드의 경우 정해진 알고리즘에 따라 차트가 라벨링됩니다. 덕분에 차트 전체를 분석할 수도 있고 사용자가 지정한 구역만 분석할 수도 있게 되죠.


2.1. 수동 모드

수동 모드에서 라벨은 바의 상단 또는 하단에 나타나며 차트 스케일 또는 크기 변경 시 자동으로 조정됩니다. 라벨은 파동 레벨의 우선순위를 따라 위치합니다. 따라서 동일한 바의 상단 또는 하단에 두 개 이상의 라벨이 생성되는 경우, 레벨이 높은 파동의 라벨이 낮은 파동의 라벨보다 높은 곳에 위치합니다(그림 4, 5).

라벨링 전 라벨 위치

그림 4. 라벨링 전 라벨 위치

라벨링 후 라벨 위치

그림 5. 라벨링 후 라벨 위치


그림 4의 바 상단에 SubMicro 레벨의 라벨인 (A)가 보입니다. 레벨이 상대적으로 낮은 SuperMicro의 라벨 5도 동일한 바 위에 위치하네요 . SuperMicro의 레벨이 SubMicro의 레벨보다 낮으므로 라벨 5가 라벨 (A)의 하단에 표시됩니다(그림 5).

수동으로 라벨링을 하는 경우 각 파동 라벨은 이웃하는 바보다 고점 또는 저점이 더 높거나 낮은 바의 상단 또는 하단에 나타나게 됩니다. 이러한 특성 덕분에 라벨을 보다 정확하게 배치할 수 있습니다.

위에서 언급했듯 수동 모드에서는 두 가지 방법으로 라벨링이 가능합니다. 드래그 앤 드롭 방식은 달리 설명이 필요 없지만 클릭을 통한 라벨링은 조금 다릅니다.

후자를 택한 경우 라벨 패널 내에서 라벨을 선택해야 합니다. 혹은 Z 키를 누르며 여러 라벨들 사이를 이동하여 선택 가능합니다. 라벨링은 차트 내에서 알맞은 바를 클릭하여야 완성됩니다. 라벨링을 완료하려면 아무 라벨을 클릭하거나 X 키를 누르세요.

라벨 패널에 선택된 라벨이 있는 경우 라벨링이 계속됩니다. 마우스를 클릭할 때마다 다음 라벨로 넘어갑니다. 마지막 라벨에 닿으면 클릭을 통한 라벨링이 완료되죠.


2.2. 자동 모드

자동 라벨링은 숫자 키를 이용합니다. 다음의 세 가지 방식으로 라벨링이 가능하죠.

  1. 현재 선택된 라벨까지 차트 분석
  2. 현재 선택된 라벨 이후부터 차트 분석
  3. 선택된 라벨이 없는 경우 전체 차트 분석

1을 누르면 첫 번째 방식의 라벨링이 시작됩니다. 선택된 라벨 좌측에 다른 라벨이 없는 경우 처음부터 선택된 라벨까지 분석이 진행됩니다. 다른 라벨이 있는 경우 좌측의 가장 가까운 라벨부터 선택된 라벨까지 분석이 진행됩니다.

그림 6에 두 개의 라벨이 보이는데요. 두 번째 라벨이 선택된 상태입니다. 1을 누르면 두 라벨 사이의 차트가 분석될 겁입니다. 분석 결과는 그림 7에서 확인 가능합니다.

분석 1 실행 전

그림 6. 분석 1 실행 전 차트 초기 상태


분석 1 실행 후

그림 7. 선택된 두 라벨 사이의 구간에 대한 자동 분석 결과

2를 누르면 두 번째 방식의 라벨링이 시작됩니다. 선택된 라벨 우측에 다른 라벨이 없는 경우 선택된 라벨부터 차트 끝까지 분석이 진행됩니다. 다른 라벨이 있는 경우 선택된 라벨부터 우측의 가장 가까운 라벨까지 분석이 진행됩니다.

그림 8의 차트에는 라벨이 한 개 있네요. 해당 라벨이 선택되어 있습니다. 2를 누르면 해당 라벨부터 차트 끝까지에 대한 분석이 진행됩니다. 그림 9는 분석 결과입니다.

분석 2 실행 전

그림 8. 분석 2 실행 전 차트 초기 상태

분석 2 실행 후

그림 9. 선택된 라벨부터 차트 끝까지의 구간에 대한 자동 분석 결과


세 번째 방식의 라벨링은 1 또는 2를 눌러서 진행할 수 있는데요. 이 경우 모든 라벨이 삭제됩니다.

엘리엇 파동 자동 분석이 진행되며 곧바로 라벨링 결과 확인이 가능합니다.

라벨링 결과는 다음의 세 가지 방식으로 나타납니다.

  1. 선택된 파동에 대한 세 가지 라벨링 결과
  2. 선택된 파동 다음에 위치한 파동에 대한 세 가지 라벨링 결과
  3. 선택된 파동이 없는 경우 차트 분석 구간에 대한 세 가지 라벨링 결과

첫 번째의 경우 3을 누르면 이전 결과로, 4를 누르면 그 다음 결과로 넘어가며 두 번째의 경우 5를 누르면 이전 결과로, 6을 누르면 그 다음 결과로 넘어갑니다. 세 번째의 경우 네 가지 숫자 모두 사용 가능합니다.

그림 10은 그림 7에서 라벨링된 파동에 대한 다음 라벨링 결과입니다.

다음 라벨링 결과

그림 10. 선택된 파동에 대한 다음 라벨링 결과

그림 7, 9 및 10에서 볼 수 있듯 몇몇 라벨은 회색으로 표시되는데요. 이는 자동 라벨링 실행 이전의 라벨입니다. 분석 실행 이전의 차트에 있던 라벨이죠. 이 라벨들은 마우스 클릭이 불가능합니다. 덕분에 수동 라벨링과 자동 라벨링을 구분할 수 있는데요.

자동 모드에서 수동 모드로 전환하려면 V 키를 누르면 됩니다. 그러면 모든 라벨이 원래 색상으로 돌아가고 선택도 가능해지죠. 하지만 V 키를 누르고 나면 세 가지 라벨링 결과를 볼 수 없게 됩니다.

또한 자동 분석후 획득된 모든 파동의 명칭과 관련된 정보가 사용자에게 제공됩니다. 차트 상단(그림 11)에서 해당 정보를 확인 가능할 수 있는데요. 분석 후 라벨을 선택하거나 원하는 결과에 맞는 숫자 키를 누르면 됩니다.

파동 유형 정보

그림 11. 선택된 파동 유형 정보

자동 분석은 몇 가지 파동 규칙을 따릅니다. 프로그램 시작 시 생성되는 Rules.txt 파일에서 파동 구분 규칙을 확인할 수 있습니다. 해당 파일은 MetaTrader 5 데이터 디렉토리의 파일 폴더에 위치합니다.


3. 기타 기능

차트 내 모든 라벨은 라벨 그룹으로 나뉠 수 있습니다. 라벨 선택 후 Tab 키를 누르면 그룹에 포함시킬 나머지 라벨을 선택할 수 있습니다. 선택된 모든 라벨은 하나의 동일 그룹을 형성합니다. Tab 키를 다시 누르면 선택이 해제됩니다.

라벨 선택 후 새로운 라벨을 생성하는 방식으로도 그룹에 들어갈 라벨을 선택할 수 있습니다. 새로 생성된 라벨은 선택된 라벨이 포함된 그룹에 속하게 됩니다.

다음은 선택된 레벨에 적용 가능합니다.

또한, 현재 타임프레임에 나타난 파동 레벨의 개수를 파악할 수 있는 자동 메커니즘이 알고리즘에 포함되어 있습니다. 프로그램 알고리즘에 따라 시간 축 상에서 서로 다른 좌표를 갖는 라벨은 동일한 바에 위치할 수 없습니다. 파동 레벨의 개수는 E 또는 R 키를 눌러 감소시키거나 증가시킬 수 있습니다.


4. 단축키 목록

그림 12는 키보드 단축키 및 각 단축키에 대한 설명입니다.

키보드 단축키

그림 12. 키보드 단축키


결론

MetaTrader 5 의 엘리엇 파동 반자동 분석 도구에 대해 알아보았습니다. 해당 프로그램은 다음의 고유한 기능을 자랑합니다.

MQL5의 리소스가 정말 대단하죠? 많은 개발자들이 MQL5를 이용해 복잡하고 다양한 프로그램을 만들었으면 좋겠네요.