MQL4 및 MQL5 프로그래밍 기고글

icon

커뮤니티 구성원들이 주로 작성한 수많은 게시된 글에서 트레이딩 전략 프로그래밍을 위한 MQL5 언어를 학습. 기고글은 테스터, 트레이딩 전략, 통합 프로그래밍과 관련된 질문에 대한 답변을 더 빨리 찾을 수 있도록 카테고리로 그룹화되어 있습니다.

새로운 게시물을 따라 포럼에서 토론하십시오!

새로운 기고글 추가
최신 | 최고
오류 찾기 및 로깅
오류 찾기 및 로깅

오류 찾기 및 로깅

MetaEditor 5에는 디버깅 기능이 있습니다. 그러나 MQL5 프로그램을 작성할 때 종종 개별 값이 아니라 테스트 및 온라인 작업 중에 나타나는 모든 메시지를 표시하려고 합니다. 로그 파일 내용이 큰 경우 필요한 메시지의 빠르고 쉬운 검색을 자동화하는 것이 분명합니다. 이 기사에서는 MQL5 프로그램에서 오류를 찾는 방법과 로깅 방법을 고려할 것입니다. 또한 파일 로그인을 단순화하고 로그를 편안하게 볼 수 있는 간단한 프로그램인 LogMon을 알게 될 것입니다.
2013년 2분기 MQL5 시장 결과
2013년 2분기 MQL5 시장 결과

2013년 2분기 MQL5 시장 결과

1.5년간 성공적으로 운영된 MQL5 Market은 거래 전략 및 기술 지표의 최대 거래처가 되었습니다. 전 세계 350여 명의 개발자가 제공하는 800여 개의 거래 애플리케이션을 제공합니다. 거래업체에서 이미 MetaTrader 5 터미널에 100,000개 이상의 거래 프로그램을 구입하여 다운로드했습니다.
마이크로, 미들, 메인 추세의 지표
마이크로, 미들, 메인 추세의 지표

마이크로, 미들, 메인 추세의 지표

이 글의 목적은 James Hyerczyk의 "Pattern, Price & Time: Using Gann Theory in Trading Systems"라는 책의 몇 가지 아이디어를 기반으로 지표 및 Expert Advisor의 형태로 거래 자동화 및 분석의 가능성을 조사하는 것입니다. 완전하다고 주장하지 않고 여기서 우리는 Gann 이론의 첫 번째 부분인 모델만 조사합니다.
preview
데이터 과학 및 머신 러닝 - 신경망(1부): 피드 포워드 신경망에 대한 이해

데이터 과학 및 머신 러닝 - 신경망(1부): 피드 포워드 신경망에 대한 이해

많은 사람들이 신경망을 좋아하지만 신경망의 전체 작동 원리를 이해하는 사람은 많지 않습니다. 이 글에서 저는 피드 포워드 멀티 레이어 인식의 이면에 있는 모든 것을 평이하게 설명하려고 합니다.
preview
하나의 차트에 여러 개의 지표 넣기(파트 04): Expert Advisor 만들기

하나의 차트에 여러 개의 지표 넣기(파트 04): Expert Advisor 만들기

이전 글에서 사용자 지정 지표를 사용할 때 여러 개의 하위 창으로 지표를 만드는 방법을 설명했습니다. 이번에는 Expert Advisor에 여러 개의 창을 추가하는 방법을 알아보겠습니다.
MQL5 프로그래밍 기본: 문자열
MQL5 프로그래밍 기본: 문자열

MQL5 프로그래밍 기본: 문자열

이 글에서는 MQL5에서 문자열로 할 수 있는 모든 것을 다룹니다. 초보자 MQL5 프로그래머가 주로 관심을 가져야 하는 반면 숙련된 개발자는 지식을 요약하고 체계화할 수 있는 좋은 기회를 가질 수 있습니다.
preview
Expert Advisor 개발 기초부터 (파트 9): 개념적 도약(II)

Expert Advisor 개발 기초부터 (파트 9): 개념적 도약(II)

이 기사에서는 차트 트레이드를 플로팅 창에 배치합니다. 이전 파트에서는 플로팅 창 내에서 템플릿을 사용할 수 있는 기본 시스템을 만들었습니다.
통계 캐리 거래 전략
통계 캐리 거래 전략

통계 캐리 거래 전략

원치 않는 가격 이동으로부터 오픈 퍼지티브 스왑 포지션을 통계적으로 보호하는 알고리즘. 이 자료에는 오픈 포지션이 아닌 다른 방향으로 가격 이동의 잠재적 위험을 보상할 수 있는 운송 거래 보호 전략의 변형이 수록되어 있습니다.
preview
모집단 최적화 알고리즘: 원숭이 알고리즘(MA)

모집단 최적화 알고리즘: 원숭이 알고리즘(MA)

이 글에서는 원숭이 알고리즘(MA) 최적화 알고리즘에 대해 알아보겠습니다. 원숭이들이 어려운 장애물을 극복하고 가장 접근하기 어려운 나무 꼭대기에 도달하는 능력은 MA 알고리즘의 아이디어의 기초가 되었습니다.
CCanvas 클래스 공부하기. 투명 개체를 그리는 방법
CCanvas 클래스 공부하기. 투명 개체를 그리는 방법

CCanvas 클래스 공부하기. 투명 개체를 그리는 방법

이동 평균의 어색한 그래픽 이상이 필요하십니까? 터미널에 채워진 단순한 직사각형보다 더 아름다운 것을 그리고 싶습니까? 터미널에서 매력적인 그래픽을 그릴 수 있습니다. 이것은 사용자 정의 그래픽을 만드는 데 사용되는 CСanvas 클래스를 통해 구현할 수 있습니다. 이 클래스를 사용하면 투명도를 구현하고 색상을 혼합하고 색상을 겹치고 혼합하여 투명도의 환상을 만들 수 있습니다.
Expert Advisor 매개변수 선택을 위한 테스트(최적화) 기술 및 일부 기준
Expert Advisor 매개변수 선택을 위한 테스트(최적화) 기술 및 일부 기준

Expert Advisor 매개변수 선택을 위한 테스트(최적화) 기술 및 일부 기준

시험의 성배 (Holy Grail)를 찾는 데는 문제가 없지만 제거하는 것은 훨씬 더 어렵습니다. 이 글에서는 터미널 성능 기능을 최대한 활용하고 최종 사용자 부하를 최소화할 때 최적화 및 테스트 결과의 자동화된 그룹 처리를 통해 Expert Advisor 작동 매개변수 선택에 대해 설명합니다.
적응형 거래 시스템과 MetaTrader 5 클라이언트 터미널에서의 사용
적응형 거래 시스템과 MetaTrader 5 클라이언트 터미널에서의 사용

적응형 거래 시스템과 MetaTrader 5 클라이언트 터미널에서의 사용

이 글에서는 각각 고유한 "가상" 거래 작업을 수행하는 여러 전략으로 구성된 적응형 시스템의 변형을 제안합니다. 실제 거래는 현재 가장 수익성이 높은 전략의 신호에 따라 수행됩니다. 객체 지향 접근 방식, 데이터 작업을 위한 클래스 및 표준 라이브러리의 거래 클래스 덕분에 시스템 아키텍처는 단순하고 확장 가능한 것처럼 보였습니다. 이제 수백 가지 거래 전략을 포함하는 적응형 시스템을 쉽게 만들고 분석할 수 있습니다.
인디케이터 및 통계적 매개 변수 분석하기
인디케이터 및 통계적 매개 변수 분석하기

인디케이터 및 통계적 매개 변수 분석하기

기술적 분석은 기본 시세 정보를 '보다 명확하게' 나타내는 인디케이터를 구현하여 투자자가 시장을 분석하고 가격 움직임을 예측할 수 있도록 해줍니다. 그러니 초기 시세 변동 및 획득 결과의 신뢰도와 관련된 문제를 해결할 수 없다면 인디케이터를 사용할 필요가 없겠죠. 당연히 매매 시스템에 적용할 필요도 없고요. 왜 그런지 자세히 알아보도록 하겠습니다.
preview
모집단 최적화 알고리즘: 중력 검색 알고리즘(Gravitational Search Algorithm;GSA)

모집단 최적화 알고리즘: 중력 검색 알고리즘(Gravitational Search Algorithm;GSA)

GSA는 무생물에서 영감을 얻은 모집단 최적화 알고리즘입니다. 알고리즘에 구현된 뉴턴의 중력 법칙과 그리고 물리적 객체의 상호 작용을 모델링하는 높은 신뢰성 덕분에 우리로 하여금 행성계와 은하단의 매혹적인 춤을 관찰하게 해 줍니다. 이 기사에서는 가장 흥미롭고 독창적인 최적화 알고리즘 중 하나를 살펴볼 것입니다. 우주의 객체의 움직임에 대한 시뮬레이터도 있습니다.
preview
Expert Advisor에 지표를 포함시키기 위한 기성 템플릿(1부): 오실레이터

Expert Advisor에 지표를 포함시키기 위한 기성 템플릿(1부): 오실레이터

이 기사에서는 오실레이터 카테고리에 있는 표준 지표를 살펴봅니다. 우리는 매개변수 선언 및 설정, 지표 초기화 및 초기화 해제, 지표 버퍼에서 데이터 및 신호를 수신하는 등의 EA에서 바로 사용할 수 있는 템플릿을 만들 것입니다.
리퀴드 차트
리퀴드 차트

리퀴드 차트

매 시간별 2분과 5분을 기준으로 열리는 바가 있는 시간당 차트를 보고 싶진 않으신가요? 1분마다 바가 열리는 시간이 바뀌는 차트는 어떤 모양으로 나타날까요? 이런 차트를 이용하면 거래에 도움이 될까요? 아래에서 그 답을 알아보겠습니다.
MQL5 프로그램 디버깅
MQL5 프로그램 디버깅

MQL5 프로그램 디버깅

이 글은 주로 언어를 이미 배웠지만 아직 프로그램 개발을 완전히 마스터하지 못한 프로그래머를 대상으로 합니다. 그것은 몇 가지 디버깅 기술을 보여주고 저자와 다른 많은 프로그래머의 결합된 경험을 보여줍니다.
MQL5 프로그래밍 기초: 터미널 글로벌 변수
MQL5 프로그래밍 기초: 터미널 글로벌 변수

MQL5 프로그래밍 기초: 터미널 글로벌 변수

이 문서에서는 터미널에서 글로벌 변수 작업을 용이하게 하는 객체 생성을 위한 MQL5 언어의 객체 지향 기능에 중점을 두고 알아보겠습니다. 실전적인 예를 들어보자면, 글로벌 변수가 프로그램 단계 구현을 위한 제어점으로 사용되는 경우를 고려합니다.
더 나은 프로그래머 (Part 04): 어떻게 빠른 개발자가 될 수 있을까요
더 나은 프로그래머 (Part 04): 어떻게 빠른 개발자가 될 수 있을까요

더 나은 프로그래머 (Part 04): 어떻게 빠른 개발자가 될 수 있을까요

모든 개발자는 코드를 더 빨리 작성할 수 있기를 바랍니다. 그러나 이렇게 더 빠르고 효율적으로 코드를 작성할 수 있는 것은 소수의 사람들이 가지고 태어난 일종의 특별한 능력이 아닙니다. 이러한 능력은 키보드를 몇년간 사용했는지 여부와 상관없이 코더라면 누구나가 배울 수 있는 기술입니다.
"New Bar" 이벤트 핸들러
"New Bar" 이벤트 핸들러

"New Bar" 이벤트 핸들러

MQL5 프로그래밍 언어는 새로운 수준에서 문제를 해결할 수 있습니다. 객체 지향 프로그래밍 덕분에 이미 그러한 솔루션이있는 작업조차도 더 높은 수준으로 올라갈 수 있습니다. 이 기사에서는 차트에서 새로운 바를 확인하는 매우 간단한 예를 살펴 보겠습니다. 이는 다소 강력하고 다양한 도구로 변환되었습니다. 어떤 도구? 이 기사에서 알아보십시오.
또 다른 MQL5 OOP 클래스
또 다른 MQL5 OOP 클래스

또 다른 MQL5 OOP 클래스

이 글은 이론적인 거래 아이디어를 구상하는 것부터 그 아이디어를 경험적 세계에서 현실로 만드는 MQL5 EA를 프로그래밍하는 것에 이르기까지 처음부터 객체 지향 Expert Advisor를 구축하는 방법을 보여줍니다. 행동으로 배우는 것은 IMHO 성공을 위한 확실한 접근 방식입니다. 그래서 저는 여러분이 Forex 로봇을 최종적으로 코딩하기 위해 아이디어를 주문하는 방법을 볼 수 있도록 실용적인 예를 보여주고 있습니다. 저의 목표는 또한 당신이 OO 원칙을 준수하도록 초대하는 것입니다.
preview
재구매 알고리즘: 효율성 향상을 위한 수학 모델

재구매 알고리즘: 효율성 향상을 위한 수학 모델

이 기사에서 우리는 거래 시스템의 효율성에 대한 더욱 깊은 이해를 위해 재구매 알고리즘과 수학과 논리를 사용하여 거래 효율성을 개선하는 일반적인 원칙관 관련한 작업을 수행하고 절대적인 측면에서 모든 거래 시스템의 사용 효율성을 높이는 가장 비표준 방법을 적용할 것입니다.
preview
모집단 최적화 알고리즘: 전자기 유사 알고리즘(ЕМ)

모집단 최적화 알고리즘: 전자기 유사 알고리즘(ЕМ)

이 문서에서는 다양한 최적화 문제에서 전자기 알고리즘을 사용하는 원리, 방법 및 그 가능성에 대해 알아봅니다. EM 알고리즘은 대량의 데이터와 다차원 함수를 다룰 수 있는 효율적인 최적화 도구입니다.
MQL5 프로그래밍 기본: 배열
MQL5 프로그래밍 기본: 배열

MQL5 프로그래밍 기본: 배열

배열은 변수 및 함수와 함께 거의 모든 프로그래밍 언어의 필수적인 부분입니다. 이 글은 주로 초보 MQL5 프로그래머가 관심을 가져야 하는 내용으로 구성된 반면, 숙련된 프로그래머는 지식을 요약하고 체계화할 수 있는 좋은 기회가 되어 줄 것입니다.
더 나은 프로그래머(파트 02): 성공적인 MQL5 프로그래머가 되기 위해서는 다음의 5가지를 하지 말아야 합니다.
더 나은 프로그래머(파트 02): 성공적인 MQL5 프로그래머가 되기 위해서는 다음의 5가지를 하지 말아야 합니다.

더 나은 프로그래머(파트 02): 성공적인 MQL5 프로그래머가 되기 위해서는 다음의 5가지를 하지 말아야 합니다.

이 글은 성공적인 개발자가 되고자 하는 모든 사람이라면 반드시 읽어야 하는 글입니다. 이 연재 글은 귀하가 경험이 많은 개발자라 하더라도 최고의 프로그래머가 되도록 돕는 것을 목표로 합니다. 글에서 다루는 내용은 MQL5 프로그래밍의 초보자와 전문적인 프로그래머 모두에게 적용됩니다.
시장 가격 예측을 위한 범용 회귀 모델
시장 가격 예측을 위한 범용 회귀 모델

시장 가격 예측을 위한 범용 회귀 모델

시장 가격은 다양한 경제적, 정치적, 심리적 요인에 따라 달라지는 수요와 공급 간의 안정적인 균형에서 형성됩니다. 이러한 요인들의 영향 요인과 성격의 차이로 인해 모든 구성 요소를 직접적으로 고려하기가 어렵습니다. 이 글은 정교한 회귀 모델을 기반으로 시장 가격을 예측하려는 시도를 설명합니다.
MetaTrader 5에서 RSS 피드를 표시하는 대화형 애플리케이션 구축
MetaTrader 5에서 RSS 피드를 표시하는 대화형 애플리케이션 구축

MetaTrader 5에서 RSS 피드를 표시하는 대화형 애플리케이션 구축

이 글에서는 RSS 피드 표시를 위한 응용 프로그램을 만드는 가능성을 살펴봅니다. 이 글에서는 MetaTrader 5용 대화형 프로그램을 만드는 데 표준 라이브러리의 여러 측면을 사용할 수 있는 방법을 보여줍니다.
자동 거래 시스템(Automata-Based Programming)을 위한 새로운 접근 방식
자동 거래 시스템(Automata-Based Programming)을 위한 새로운 접근 방식

자동 거래 시스템(Automata-Based Programming)을 위한 새로운 접근 방식

이 글은 MQL4와 MQL5에서 EA, 지표 및 스크립트를 개발하는 데 있어 완전히 새로운 방향을 제시합니다. 향후 이러한 프로그래밍 패러다임은 EA 구현에 있어 모든 거래자의 기본 기준이 될 것입니다. MQL5와 MetaTrader5 개발자는 오토마타 기반 프로그래밍 패러다임을 이용하여 새로운 언어인 MQL6와 새로운 플랫폼인 MetaTrader 6를 만들 수 있습니다.
TesterWithdrawal() 함수를 이용한 수익 인출 모델링
TesterWithdrawal() 함수를 이용한 수익 인출 모델링

TesterWithdrawal() 함수를 이용한 수익 인출 모델링

이 글에서는 운용 중에 자산의 특정 부분을 인출하는 것을 의미하는 거래 시스템의 위험을 추정하기 위해 TesterWithDrawal() 함수를 사용하는 방법에 대해 설명합니다. 또한 이 함수가 전략 테스터의 지분 하락 계산 알고리즘에 미치는 영향을 설명합니다. 이 함수는 Expert Advisors의 매개 변수를 최적화 할 때 유용합니다.
MetaTrader 4 및 MetaTrader 5 거래 신호 위젯
MetaTrader 4 및 MetaTrader 5 거래 신호 위젯

MetaTrader 4 및 MetaTrader 5 거래 신호 위젯

최근 MetaTrader 4 및 MetaTrader 5 사용자는 신호 제공자가 되어 추가 수익을 얻을 수 있는 기회를 얻었습니다. 이제 새 위젯을 사용하여 웹 사이트, 블로그 또는 소셜 네트워크 페이지에 거래 성공을 표시할 수 있습니다. 위젯 사용의 이점은 분명합니다. 신호 제공자의 인기를 높이고 성공적인 거래자로서의 명성을 확립하며 새로운 가입자를 유치합니다. 다른 웹 사이트에 위젯을 배치하는 모든 거래자는 이러한 이점을 누릴 수 있습니다.
2013년 3분기 MetaTrader AppStore 결과
2013년 3분기 MetaTrader AppStore 결과

2013년 3분기 MetaTrader AppStore 결과

또 다른 분기가 지났고, 우리는 MetaTrader 플랫폼용 거래 로봇 및 기술 지표의 최대 매장인 MetaTrader AppStore의 결과를 요약하기로 결정했습니다. 보고된 분기 말까지 500개 이상의 개발자가 1200개 이상의 제품을 시장에 출시했습니다.
시장에서 제품을 구매하기 위한 팁. 단계별 가이드
시장에서 제품을 구매하기 위한 팁. 단계별 가이드

시장에서 제품을 구매하기 위한 팁. 단계별 가이드

이 단계별 가이드는 필요한 제품을 더 잘 이해하고 검색하기 위한 팁과 요령을 제공합니다. 이 글은 적절한 제품을 찾고, 원하지 않는 제품을 분류하고, 제품 효율성과 필수성을 결정하는 다양한 방법을 수수께끼로 만들려고 합니다.
20 MQL5에서의 매매 신호들
20 MQL5에서의 매매 신호들

20 MQL5에서의 매매 신호들

본 문서는 매매시스템이 필요한 매매 신호를 어떻게 받는지 가르쳐줄 것입니다. 이 문서에서 다룰 20개의 매매 신호를 만드는 예시는 Expert Advisor 개발에 쓸 수 있는 별도의 커스텀 함수로 되어있습니다. 편의를 위해서, 본 문서에서 사용된 모든 함수는 미래에 Exper Advisor에 손쉽게 연결할 수 있도록 하나의 mqh include 파일에 들어 있습니다.
객체지향적 접근을 이용하여 EA 모드 프로그래밍하기
객체지향적 접근을 이용하여 EA 모드 프로그래밍하기

객체지향적 접근을 이용하여 EA 모드 프로그래밍하기

이 문서에서는 MQL5에서 멀티모드용 봇 프로그램을 짜는 아이디어에 대해 논해볼 것입니다. 모드들은 객체지향적 접근으로 구현되었습니다. 모드 클래스 계층 구조와 테스트용 클래스의 인스턴스가 모두 제공됩니다. 트레이딩 봇의 멀티 모드 프로그래밍은 MQL5로 작성된 EA의 모든 작동 모드의 모든 특성을 고려해야 합니다. 해당 모드를 식별하기 위해 함수나 열거가 생성됩니다.
다중 선형 회귀 분석 올인원 전략 생성기와 전략 테스터
다중 선형 회귀 분석 올인원 전략 생성기와 전략 테스터

다중 선형 회귀 분석 올인원 전략 생성기와 전략 테스터

이번 글에서는 매매 시스템 개발에 여러 방식으로 다중 선형 회귀 분석을 적용하는 방법을 다룹니다. 자동 전략 검색에 회귀 분석을 이용하는 방법을 알아보겠습니다. 프로그래밍에 대한 이해도가 높지 않아도 이용할 수 있는 회귀 방정식이 포함된 EA를 예로 들겠습니다.
MQL4에서 MQL5로 인디케이터 넘기기
MQL4에서 MQL5로 인디케이터 넘기기

MQL4에서 MQL5로 인디케이터 넘기기

이 문서에서는 MQL4로 쓰인 가격 생성을 MQL5로 넘길때의 특이성에 대해 다뤄보겠습니다. MQL4에서 인디케이터 계산을 MQL5로 보다 쉽게 이전하기 위해선 mql4_2_mql5.mqh 라이브러리 함수를 추천드립니다. 기본적으로 활용법은 MACD, Stochastic 그리고 RSI 인디케이터 이전의 기초입니다.
Delphi로 MQL5용 DLL 짜는 법
Delphi로 MQL5용 DLL 짜는 법

Delphi로 MQL5용 DLL 짜는 법

이 문서는 Delphi 환경에서 인기좋은 언어 ObjectPascal을 이용해 DLL 모듈을 짜는 법에 대해서 알아볼 것입니다. 본 문서에서 제공하는 자료는 주로 외부 DLL 모듈을 연결하여 MQL5의 내장 프로그래밍 언어의 경계를 허문 초보자 프로그래머를 대상으로 합니다.
매매 전략 다목적 엑스퍼트 어드바이저
매매 전략 다목적 엑스퍼트 어드바이저

매매 전략 다목적 엑스퍼트 어드바이저

이 글은 대기 주문을 활용하는 전략 및 해당 전략 개발에 사용되는 Metalanguage, 그리고 그 Metalanguage를 기반으로 작동하는 다목적 엑스퍼트 어드바이저에 대한 설명입니다.
트레이더의 통계 도우미: 가설들
트레이더의 통계 도우미: 가설들

트레이더의 통계 도우미: 가설들

이 문서에서는 수리통계학의 기초 중 하나인 가설에 대해 다뤄보겠습니다. 다양한 가설들은 실제 예시에 수리통계적 관점으로 접근해서 검토, 검증됩니다. 실제 데이터는 비모수적 방법을 사용하여 일반화됩니다. 데이터 처리에는 Statistica 패키지와 포팅된 ALGLIB MQL5 수리분석 라이브러리가 사용됩니다.
preview
하나의 차트에 여러개의 지표 넣기(파트 06): MetaTrader 5를 RAD 시스템으로 전환하기(II)

하나의 차트에 여러개의 지표 넣기(파트 06): MetaTrader 5를 RAD 시스템으로 전환하기(II)

이전 기사에서 저는 MetaTrader 5 객체를 사용하여 차트 거래를 생성하고 플랫폼을 RAD 시스템으로 전환하는 방법을 보여드렸습니다. 시스템은 매우 잘 작동하며 많은 독자분들은 제가 제안한 시스템에서 여러가지 확장된 기능들을 할 수 있는 라이브러리를 만드는 것에 대해 생각해 봤을 것입니다. 그렇게 하면 보다 멋지고 사용하기 쉬운 인터페이스로 보다 직관적인 Expert Advisor를 개발할 수 있을 것입니다.