English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
AutoElliottWaveMaker-MetaTrader 5  엘리엇 파동 반자동 분석 도구

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

MetaTrader 5 | 5 8월 2021, 10:12
230 0
MRoVas
[삭제]

개요

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

  • 수동 라벨링
  • 차트 내 지정 구역 분석을 통한 속도 개선

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


1. 프로그램 객체

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

라벨 패널

그림 1. 라벨 패널

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

  • interval-라벨 패널 내 라벨 사이 간격
  • x_distance-차트 좌측 상단 기준 X축에 대한 라벨 패널 위치
  • y_distance-차트 좌측 상단 기준 Y축에 대한 라벨 패널 위치

입력 변수

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

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

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

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

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

레벨 설명

그림 3. Levels.txt

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

  • SubMinuette-파동 레벨 명칭
  • i, ii, iii, iv, v, a, b, c, d, e, w, x, y, xx, z-고점
  • Times New Roman-글꼴
  • 8-글자 크기
  • 15-글자 높이(픽셀)
  • 255, 140, 0-RGB 색상 표기

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

  • 파동의 고점이 15개일 것
  • 각각의 고점을 다르게 표기할 것

특히, 프로그램 실행에 앞서 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 키를 다시 누르면 선택이 해제됩니다.

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

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

  • Del 키를 눌러 삭제
  • A 또는 S 키를 눌러 파동 레벨 감소 또는 증가

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


4. 단축키 목록

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

키보드 단축키

그림 12. 키보드 단축키


결론

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

  • 차트 내 모든 바에 대한 꼭지점 라벨 자동 바인딩
  • 라벨 패널 내 라벨 드래그 또는 마우스 연속 클릭을 통한 꼭지점 라벨링
  • 차트 내 파동 레벨 순서에 따른 자동 꼭지점 라벨링
  • 차트에 표시되는 파동 레벨 수에 대한 자동 및 수동 제어
  • 커스텀 파동 레벨 라벨 생성
  • 차트 전체 또는 지정 구역에 대한 엘리엇 파동 자동 분석
  • 세 가지 자동 라벨링 결과 확인
  • 파동 규칙 변경 가능
  • 마우스와 키보드를 통한 라벨링 과정 제어

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


MetaQuotes 소프트웨어 사를 통해 러시아어가 번역됨.
원본 기고글: https://www.mql5.com/ru/articles/378

마켓에 제품 출시하기 마켓에 제품 출시하기
Marekt을 통해 전 세계 수백만 명의 MetaTrader 사용자에게 트레이딩 애플리케이션을 제공하십시오. 이미 구축된 인프라가 있습니다: 많은 사용자, 라이선스 솔루션, 평가판, 업데이트 게시 및 결제등의 인프라를 활용할 수 있습니다. 간단한 판매자 등록 절차를 완료하고 제품을 게시하기만 하면 됩니다. 이러한 서비스를 통해 저희가 구축해 놓은 각종 기술들을 사용해서 귀하의 프로그램을 만들어 추가적인 수익을 창출 하십시오.
EX5 라이브러리로 프로젝트 홍보하기 EX5 라이브러리로 프로젝트 홍보하기
클래스 및 함수 구현 세부 사항을 .ex5 파일에 은닉함으로써 다른 개발자들과 노하우를 공유하고 공동 프로젝트 작업을 하며 온라인에서 프로젝트를 홍보할 수도 있습니다. MetaQuotes에서 EX5 라이브러리 클래스의 직접 상속을 가능하게 하기 위해 열심히 개발 중이긴 하지만 우리가 한번 먼저 구현해 보도록 하겠습니다.
MetaTrader 5 와 MQL5가 제공하는 무궁무진한 기회 MetaTrader 5 와 MQL5가 제공하는 무궁무진한 기회
이번 글에서는 자동 매매 프로그램의 예를 살펴보겠습니다. 그리고 아무것도 모르는 상태에서 시작해 9개월만에 제 MQL5 활용 능력이 얼마나 늘었는지도 보여 드릴게요. 매매 프로그램은 가격 차트의 아주 작은 공간만을 활용하는 반면 굉장히 유익한 다양한 기능을 가지고 있죠. 거래 정보 패널이 얼마나 한눈에 알아보기 쉬운지도 살펴보겠습니다. 그 밖에도 정말 많은 기능이 있습니다.
MQL5 코드 보호하기: 보안 암호, 키 생성기, 시간 제한, 원격 라이선스 및 고급 EA 라이선스 키 암호 테크닉 MQL5 코드 보호하기: 보안 암호, 키 생성기, 시간 제한, 원격 라이선스 및 고급 EA 라이선스 키 암호 테크닉
개발자라면 자신이 개발한 프로그램이 안전하게 보호되길 바라죠. 이번 글에서는 MQL5 소프트웨어를 보호할 수 있는 몇 가지 방법을 알아보겠습니다. 어떻게 하면 MQL5 스크립트, 엑스퍼트 어드바이저 및 인디케이터에 대한 라이선스를 획득할 수 있는지 설명해 드릴게요. 보안 암호, 키 생성기, 계정 라이선스, 시간 제한 및 MQL5-RPC 원격 호출에 대해 다룰 겁니다.