MQL4 외부 변수란 무엇인가?
MQL4(MetaQuotes Language 4) 프로그래밍 환경에서 외부 변수는 개발자가 작성한 자동매매 프로그램(Expert Advisor, EA)이나 기술적 분석 지표의 설정을 사용자가 차트에서 직접 조정할 수 있도록 하는 특별한 변수입니다. 일반 변수가 프로그램 내부에서만 값을 가지고 동작하는 것과 달리, 외부 변수는 프로그램이 실행될 때 사용자 인터페이스(MT4 터미널의 '입력' 탭)를 통해 값이 전달됩니다. 즉, 코드를 변경하거나 재컴파일하는 번거로움 없이도 투자자가 원하는 대로 EA의 동작 방식을 미세하게 조절할 수 있게 해주는 핵심 기능입니다.
외부 변수를 활용하면 거래량을 결정하는 랏(lot) 크기, 이동평균선의 기간 설정, 혹은 계좌의 일정 비율 이상 투자하지 않도록 하는 위험 관리 비율 등 다양한 파라미터를 사용자가 직접 입력하여 최적의 거래 환경을 구축할 수 있습니다. 이러한 유연성은 EA나 지표의 활용도를 극대화하며, 특히 백테스팅 결과를 바탕으로 최적의 파라미터를 찾아내는 최적화 과정에서 필수적인 역할을 수행합니다.
외부 변수의 중요성과 적용 사례
외부 변수의 가장 큰 장점은 프로그래밍 지식이 없는 사용자도 EA나 지표를 자신의 투자 전략에 맞게 쉽게 맞춤 설정할 수 있다는 점입니다. 예를 들어, 특정 EA가 주문 시 사용할 거래량을 조절하고 싶다면, 소스 코드를 건드리지 않고 EA 설정 창에서 해당 외부 변수의 값을 변경하기만 하면 됩니다. 이는 사용자 편의성을 크게 높여주며, 다양한 시장 상황에 신속하게 대응할 수 있도록 돕습니다.
또한, 이동평균선을 기반으로 매매하는 EA가 있다고 가정해 봅시다. 이 EA를 차트에 적용할 때, 이동평균선의 기준이 되는 기간(period)을 매번 다르게 설정하고 싶다면 외부 변수를 사용하면 됩니다. 이렇게 하면 EA를 실행하기 전에 원하는 기간 값을 직접 지정할 수 있어, 여러 기간 값으로 테스트하며 최적의 설정을 찾는 과정을 효율적으로 수행할 수 있습니다. 이처럼 외부 변수는 프로그램의 재사용성과 효율성을 높이는 데 크게 기여합니다.
MQL4 외부 변수 선언 및 사용 방법
MQL4에서 외부 변수를 선언하기 위해서는 일반 변수 선언 앞에 `extern` 키워드를 붙여주면 됩니다. 예를 들어, 틱(tick) 데이터를 바탕으로 특정 가격 정보를 출력하는 EA를 만든다고 할 때, 몇 틱마다 정보를 출력할지 결정하는 변수를 `extern`으로 선언할 수 있습니다. 이 변수에는 기본값을 할당하고, 함께 설명을 덧붙여 사용자가 쉽게 이해하도록 할 수 있습니다. `extern` 키워드가 붙은 변수는 MT4 터미널에서 EA를 차트에 적용할 때 나타나는 설정 창의 '입력' 탭에 표시됩니다.
코드를 작성할 때 `extern int X = 10; // X 틱마다 가격 출력` 과 같이 선언하면, EA 실행 시 '입력' 탭에 'X'라는 이름의 입력란이 나타나며 기본값으로 10이 설정됩니다. 사용자는 이 값을 원하는 대로 변경할 수 있습니다. 외부 변수는 숫자형뿐만 아니라 문자열(`string`) 타입으로도 선언할 수 있습니다. 예를 들어, 주문에 특정 주석(commentary)을 추가하는 EA라면, 주석 내용을 설정하는 `extern string Commentary = "";` 와 같은 변수를 만들어 사용할 수 있습니다. 이를 통해 프로그램의 유연성을 더욱 확장시킬 수 있습니다.