English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
MetaTrader5가 주는 새로운 기회

MetaTrader5가 주는 새로운 기회

MetaTrader 5 | 5 7월 2021, 10:14
74 0
MetaQuotes
MetaQuotes

그동안의 이야기

MetaTrader4는 불과 5년 전 처음 소개되었습니다. 아무 것도 없이 시작해서는 이미 잘 알려진 3세대 MetaQuotes 소프트웨어를 대체하려는 목표를 가지고 있었죠. MetaTrader4는 곧 투자자들의 관심을 얻었고 수백에 달하는 브로커들이 MetaTrader4 플랫폼을 통한 서비스를 제공하게 됩니다.

성공에 안주하지 않고, 3년 전 우리 개발자들은 새로운 세대의 플랫폼을 만들기로 합니다. 그리고 2009년 11월, MetaTrader5의 베타 테스트가 시작되었죠. 사람이라면 모두가 이미 알고 있거나 친숙한 것을 선호하고 변화에는 조심스러워 하죠. 투자자들도 마찬가지랍니다. 그래서 궁금해 하실 분들을 위해 이미 잘 알려진 MetaTrader4와 새로운 MetaTrader5의 차이는 무엇인지, MetaTrader5의 장점은 무엇인지에 대해 설명하고자 합니다.

새로운 시장과 상품들

MetaTrader는 편리하고 사용자 친화적인 외환 시장 거래 플랫폼이 되는 것을 목표로 삼았습니다. 몇 년 전까지만 해도 거의 모든 터미널에서 주문형 거래가 이루어졌으며, 기술적 지표나 트레이닝 로봇을 원하는 대로 만들 수 없었고, 기술적 지표는 이론적인 것이 대부분이었는데 이제는 이 모두가 상상하기 힘든 일이 되어 버렸죠. 그러면서 다른 금융 시장을 이용하던 투자자들도 MetaTrader에 관심을 보이기 시작합니다.


새로운 트레이딩 플랫폼인 MetaTrader5는 이들에게 꼭 맞는 투자 기회를 제공하죠. 주식을 거래하든, 선물이나 옵션 또는 다른 상품을 거래하든 말이예요. 따라서 투자자들은 친숙하고 사용자 친화적인 인터페이스를 사용하여 다양한 시장에서 거래할 수 있게 됐을 뿐 아니라 여러 브로커들을 통해 거래할 수 있게 됐습니다. 이와 더불어 MQL5.커뮤니티가 제공하는 도구 또는 내장된 기술 분석 도구를 활용할 수도 있고요.

MQL5 언어

세대가 바뀔 때마다 터미널 또한 향상되어 왔습니다. 시각적 측면뿐만 아니라 프로그래밍 언어 자체도 개선되었는데요. MQL5를 이용하면 여러분이 원하는 인디케이터와 트레이딩 로봇, 그리고 기타 MQL5 지원 기능까지도 작성할 수 있습니다. 새로운 MQL5 언어는 기존 버전보다 성능이 뛰어납니다. 개발자들은 현재 일반 고급 언어로 제공되는 프로그램과 동일한 실행 속도를 MQL5 플랫폼에서 달성하는 것을 목표로 하고 있습니다.

또한, MQL5는 객체 지향 방법론(OOP)을 따라 프로그램을 작성할 수 있게 해주는데, 이는 궁극적으로 다른 거래자들과 프로그래머가 작성한 사전 제작 프로그램 데이터 베이스 확장에 도움이 됩니다. 현재 세계 최대 규모인 MQL4 코드 라이브러리는 현존하는 트레이딩 플랫폼 중 가장 많은 예제를 제공하고 있죠.

OOP는 무궁무진한 가능성을 가지고 있는데요. 그래서 MQL5.com의 코드 베이스 섹션을 MQL4로는 구현하기 어려웠던 프로그램의 예제로 미리 채워놓았죠. 게다가 MQL5를 이용하면 절차적 접근이 가능하므로 PL/O를 사용하지 않아도 프로그램을 작성할 수 있습니다.

터미널 이벤트

MQL5의 진화를 보여주는 건 클래스만이 아닙니다. 기존의 MQL에는 없었던 이벤트 모델이 있죠. 이제 여러분은 프로그램 내에서 이벤트 추적 기능을 이용할 수 있습니다. 이벤트는 마우스나 키보드의 움직임, 또는 속성과 그래픽 등의 변화에 따라 발생하죠. 또한 타이머 이벤트 기능이 추가되어 코드를 반복적으로 작성하지 않아도 계속해서 실행시킬 수 있습니다. 

그 중에서도 가장 중요한 건 트레이드 이벤트의 처리이죠. 손절매의 실행, 대기 주문 취소, 새로 오픈된 포지션 혹은 이미 오픈된 포지션의 확장 등이 트레이드 이벤트의 예입니다. 또한, 이제 모든 거래 연산이 비동기적으로 실행되어 MetaTrader4에서와는 달리 거래 요청 전송 후 거래 서버로부터의 응답을 기다릴 필요 없이 계속해서 프로그램을 사용할 수 있습니다.

다시 말하자면 MQL5의 향상된 실행 속도, 클래스의 사용, 이벤트 핸들링 그리고 비동기적 거래 요청 덕분에 MQL4에서는 만들 수 없던 새로운 차원의 트레이딩 로봇을 구현할 수 있게 된 것이죠.

MetaEditor로 디버깅하기

모던 프로그래밍 언어들은 매우 높은 추상화 수준을 보장하는데요. MQL5도 예외는 아닙니다. 프로그램이 복잡한 만큼 발생 가능한 오류 또한 기하급수적으로 증가하는데, 이는 디버깅 도구가 있어야만 탐지할 수 있죠. MetaEditor는 프로그래머들에게 없어서는 안 될 디버거를 제공합니다.

이제 프로그램을 차근차근 트레이싱할 수 있고, 언제라도 변수의 값을 확인할 수 있으며, 필요한 부분에 지점을 설정할 수 있습니다. MQL5가 코드 내 문제 찾기 과정을 용이하게 해주도록 고안된 특별한 기능들을 포함하게 된 거죠. 우리 개발자들은 현대의 프로그램 개발자라면 누구나 겪었을 만한 디버깅에 필요한 모든 함수를 구현하고자 했습니다.

포트폴리오 테스팅

MetaTrader3의 클라이언트 터미널에는 과거 데이터에 알고리즘을 테스트해 볼 수 있는 전략 테스터가 있었죠. MetaTrader4의 테스터에는 틱 테스트와 비주얼 테스팅 기능이 추가되면서 크게 업그레이드되었고요. 옵션뿐만 아니라 유전 알고리즘을 통한 보다 빠른 입력 매개 변수 최적화가 가능해졌습니다.

MetaTrader5에서는 틱별 전략 테스터와 틱 기반 알고리즘 세대를 통해 보다 정확한 테스트 결과를 얻을 수 있습니다. 그러나 진짜 장점 중 하나는 여러 금융상품을 대상으로 프로그램을 테스팅하는 포트폴리오 테스팅 기능입니다. 이런 방식으로 테스팅을 진행하면 터미널이 자동으로 각 금융상품의 과거 기록을 다운로드하며 다시 다운로드할 필요도 없어지죠.

멀티스레드 최적화

현대의 컴퓨터가 컴퓨팅 작업을 위해 2개에서 8개의 코어를 사용하기 시작하고 운영 체제가 적절한 소프트웨어를 이용해 코어 내에서 작업량을 분산하기 시작한지도 꽤 오래 되었습니다. MetaTrader5의 테스터는 엑스퍼트 어드바이저의 입력 변수를 최적화하기 위해 이처럼 사용 가능한 모든 코어를 사용하도록 고안되었는데요. 터미널은 사용 가능한 코어 한 개당 하나의 테스팅 에이전트를 자동으로 생성하며 사용자는 사용할 코어를 선택할 수 있습니다.

따라서, 멀티 코어 프로세서를 이용한 최적화 시간이 크게 줄었습니다. 테스터가 각 에이전트에게 매개 변수를 지정해 주고 다음 테스트 구간도 정해주니까요. 이게 다가 아닙니다. 로컬 네트워크로든 인터넷으로든 연결만 되어 있다면 어떤 컴퓨터라도 사용할 수 있죠. MetaTester.exe로 원거리에 있는 컴퓨터에 필요한 만큼의 테스팅 에이전트를 설치하기만 하면 됩니다. 


이제 회사의 로컬 네트워크를 초대형 컴퓨터 네트워크로 전환해 컴퓨팅 리소스를 100% 활용할 수 있게 된 것입니다. 원격 에이전트가 테스터로부터 테스트 기록을 전달받기 때문에 서버에 여러 번 요청을 할 필요도 없습니다. 원격 에이전트에 대한 접근은 패스워드로 안전하게 보호되고요.

각 에이전트 사이에는 다음의 메커니즘이 구현되었습니다.

  • 트래픽 압축을 통해 완전히 암호화 된 클라이언트 터미널과 에이전트 사이의 네트워크 프로토콜
  • 패스워드 액세스
  • 클라이언트 터미널에 접속 가능한 IP 주소 제한 기능
  • 적절한 터미널 해상도를 가진 로컬 에이전트만이 사용 가능한 DLL
  • 에이전트 디스크에 저장되지 않고 덤프에서는 액세스가 불가능하게 변환된 상태로 전송되는 엑스퍼트 어드바이저 코드
  • 엑스퍼트 어드바이저의 이름을 모르며 계산 오류 결과를 디스크에 저장하지 않는 에이전트(연산에 필요한 정보의 최소화)
  • 또한 에이전트는 분해 및 수정으로부터 보호됩니다.

한마디로, MetaTrader5의 테스터는 거래자들이 슈퍼컴퓨터 없이는 꿈도 꾸지 못했던 복잡한 엑스퍼트 어드바이저 최적화 문제에 대한 해결책을 제공하죠.

엑스퍼트 어드바이저가 없는 경우

자동 매매의 인기가 날이 갈수록 높아지는데요. 그렇다면 엑스퍼트 어드바이저를 사용하지 않거나 수동 거래만을 선호하는 거래자들에게도 MetaTrader5가 도움이 될 수 있을까요? 인디케이터나 트레이딩 로봇을 작성할 줄 모른다면 MQL5.community의 구인란에서 주문할 수 있습니다. 저희가 곧 시작할 서비스인데요. 커스텀 엑스퍼트 어드바이저를 쓸 줄 아는 프로그래머들이 서비스를 제공할 수 있는 좋은 플랫폼이 될 겁니다.

게다가 유료 트레이딩 시그널을 구입하거나 판매하고 싶어하는 투자자들도 있죠. 매매 전략 프로그램화가 어렵게 느껴지거나, 아니면 매매를 모두 수동으로 진행하고 싶어서 그럴 겁니다. 시그널 판매는 전문가들에게는 좋은 추가 수입원이 될 수 있죠. 초보자들은 트레이딩 시그널에 구독함으로서 예수금을 흔한 실수로부터 보호할 수 있고요.

하지만 시그널을 구독하기에 앞서 해당 시그널의 기반이 되는 통계 자료의 안정성이 보장되어야 하겠죠. 엑스퍼트 어드바이저에서는 원하는 거래 시스템을 테스트하기만 하면 됩니다. 하지만 이 조차도 미래의 안정성을 완벽히 보장할 수는 없기 때문에 투자자들은 실제 혹은 연습용 계좌를 이용해 오랜 기간 진행된 트레이드 오퍼레이션 통계에 관심을 두게 되었죠. 바로 이 점을 위해 고안된 또 하나의 서비스가 MQL5.com에 추가될 건데요. 이제 MetaTrader5 플랫폼에서 계좌를 모니터할 수 있습니다.

여기에서 더 추가될 수 있는 건 새 플랫폼을 더욱 향상시키고자 하는 우리 개발자들의 끊임없는 열정뿐이겠군요. 위에서 언급된 모든 서비스는 빠른 시일 내에 MetaTrader5와 MetaEditor5에서도 이용할 수 있게 될 겁니다. 새로운 서비스에 대한 접근을 최대한 용이하게 하기 위해 MQL5 언어 또한 지속적으로 업데이트할 예정입니다.

거래의 진화

많은 투자자들이 MetaTrader5의 겉모습은 MetaTrader4와 별 차이가 없다고 생각했죠. MetaTrader5 개발 과정에서 MetaTrader만의 편리함과 장점은 그대로 보존되었죠. 차별화를 위해서요. 다른 터미널과는 비교할 수 없게요. 따라서 두 플랫폼 사이의 많은 구조적 차이에도 불구하고 투자자들과 브로커들이 쉽게 적응할 수 있습니다.

MetaTrader5의 공식 발매와 함께 MetaTrader4에 대한 기술 지원이 없어질까 하는 걱정 없이 계속 MetaTrader4를 사용하셔도 좋습니다. MetaTrader4는 MQL4.community에서 제공되는 방대한 양의 코드와 각종 자료라는 장점이 있으니까요. 그렇지만 MetaTrader5가 제공하는 새로운 기능들은 앞으로도 계속 늘어날 것이고 MQL5.community를 통해 자연스레 배우게 되실 겁니다.

간단하게 말하자면, MetaTrader5는 자동 매매 시스템 세계에 새로운 지평선을 열어 주는 혁명을 일으킬 것이라 볼 수 있죠. 그러나 터미널의 겉모습은 크게 바뀌지 않아 새로운 플랫폼을 배우는 스트레스 없이도 이러한 질적 도약이 가능해 졌습니다.

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

초보자를 위한 MQL5 Expert Advisor 코드 작성 가이드 초보자를 위한 MQL5 Expert Advisor 코드 작성 가이드
MQL5의 Expert Advisors 프로그래밍은 간단하며 쉽게 배울 수 있습니다. 이 단계별 가이드를 통해 개발된 거래 전략에 따라 간단한 Expert Advisor를 작성할 때 필요한 기본 단계를 확인할 수 있습니다. Expert Advisor의 구조, 내장 기술 인디케이터 및 거래 기능의 사용, 디버그 모드의 세부 사항 및 Strategy Tester의 사용 등이 소개되어 있습니다.
MQL5로 틱 인디케이터 만들기 MQL5로 틱 인디케이터 만들기
이 글에서는 가격을 틱 차트로 나타내는 틱 인디케이터와 특정 개수의 틱을 이용해 캔들을 그리는 캔들 인디케이터 두 가지의 작성 방법을 다룰 겁니다. 두 인디케이터 모두 가격 정보를 파일로 만들어 인디케이터 재가동 시 저장된 데이터(다른 프로그램에서도 이용 가능)를 이용합니다.
구글 차트 API와 표준 라이브러리 클래스를 이용하여 정보 보드 만들기 구글 차트 API와 표준 라이브러리 클래스를 이용하여 정보 보드 만들기
MQL5 프로그래밍 언어는 주로 자동화된 거래 시스템과 복잡한 기술 분석 수단을 만드는 것을 목표로 합니다. 하지만 이것 외에도, 그것은 우리가 시장 상황을 추적하기 위한 흥미로운 정보 시스템을 만들 수 있게 해주며, 거래자와의 반품 연결을 제공합니다. 본 문서는 MQL5 표준 라이브러리 구성요소를 다룰 것이며, 목표 달성을 위한 실전 사례 또한 적어두었습니다. 또한 차트 작성에 쓰인 구글 차트 API의 실제 예시 또한 실려있습니다.
MQL5의 드로잉 스타일 MQL5의 드로잉 스타일
MQL4에서는 6가지 드로잉 스타일이, MQL5에서는 18가지 드로잉 스타일이 지원됩니다. 그러니까 MQL5의 드로잉 스타일을 알아 보면 되겠죠? 이번 글에서는 MQL5에서 지원되는 드로잉 스타일에 대해 상세히 알아 보겠습니다. 그리고 인디케이터를 생성해서 드로잉 스타일도 설명하고 플롯도 개선해 보도록 할게요.