MT4와 MT5 비교 글은 대부분 트레이더용 기능 목록입니다. 시간대 개수, 지표 개수, 시장 심도 같은 항목들입니다. 자동매매를 만드는 입장에서 실제로 영향을 주는 차이는 다른 곳에 있습니다.

먼저 결론

새로 만든다면 MT5가 기술적으로 더 넓은 선택지를 줍니다. 그런데 붙여야 하는 계좌가 MT4에 있으면 그 논의는 의미가 없습니다. 플랫폼은 대개 브로커와 고객이 이미 정해놓은 조건이고, 개발자가 고르는 항목이 아닙니다.

1. 언어와 개발 환경

MQL4와 MQL5는 이름이 비슷하지만 호환되지 않습니다. MQL5는 객체지향 구조가 정리되어 있고 표준 라이브러리가 더 넓습니다. MQL4 코드를 MQL5로 옮기는 작업은 문법 치환이 아니라 재작성에 가깝습니다.

외부 API로 계좌를 다루는 경우 이 차이는 거의 사라집니다. 두 플랫폼 모두 같은 HTTP 인터페이스로 접근하게 되므로, 코드에서 신경 쓸 부분은 아래 2~4번뿐입니다.

2. 헤지와 네팅 — 가장 실질적인 차이

이 항목이 코드 구조를 바꿉니다.

  • MT4: 항상 헤지 방식입니다. 같은 심볼로 매수와 매도를 동시에 보유할 수 있고, 포지션은 티켓 단위로 각각 존재합니다.
  • MT5: 계좌 설정에 따라 네팅이 될 수 있습니다. 네팅 계좌에서는 같은 심볼의 포지션이 하나로 합산됩니다. 매수 1랏 보유 중에 매도 0.4랏을 넣으면 새 포지션이 생기는 대신 기존 포지션이 0.6랏으로 줄어듭니다.

포지션 관리 코드를 티켓 기준으로 작성했다면 네팅 계좌에서 예상과 다르게 동작합니다. 계좌 종류를 먼저 확인하고, 가능하면 ‘심볼별 순포지션’ 기준으로 로직을 작성하는 편이 양쪽에서 안전합니다.

3. 주문 모델과 체결 방식

MT5는 주문·거래·포지션을 개념적으로 분리합니다. 주문이 체결되면 거래 기록이 남고 그 결과로 포지션이 생기는 구조입니다. MT4는 이 세 가지가 사실상 하나의 티켓에 묶여 있습니다.

내역을 집계하는 코드에서 이 차이가 드러납니다. MT5 쪽 내역을 MT4와 같은 방식으로 읽으면 한 포지션이 여러 건으로 보이거나, 부분 청산이 별도 거래로 잡혀 승률 계산이 어긋납니다. 성과 집계는 ‘포지션 단위’로 다시 묶는 단계를 넣어야 합니다.

4. 심볼과 계약 규격

MT5는 심볼 정보와 계약 규격을 더 자세히 노출합니다. 최소 주문 단위, 단위 증분, 마진 계산 방식 등을 조회해 코드에서 쓸 수 있습니다. MT4에서도 조회는 가능하지만 브로커별 편차가 더 큽니다.

어느 쪽이든 심볼 이름을 하드코딩하지 않는 것이 원칙입니다. 같은 상품이 브로커마다 다르게 표기되고, 접미사가 붙는 경우도 흔합니다.

5. 브로커 지원 현황

MetaQuotes는 MT4 신규 라이선스 발급을 오래전에 중단했습니다. 그래서 신규 브로커는 MT5로 시작하고, 기존 브로커는 두 플랫폼을 함께 운영하는 경우가 많습니다. 다만 기존 고객 계좌가 MT4에 남아 있기 때문에 MT4 수요는 상당 기간 유지됩니다.

제품을 만드는 입장에서는 “어느 쪽이 미래인가”보다 “내 고객 계좌가 어디에 있는가”가 결정적입니다. 프랍 펌 계좌는 MT4·MT5가 섞여 있고, 카피 트레이딩 팔로어도 마찬가지입니다.

둘 다 지원해야 할 때

실무에서 가장 흔한 상황입니다. 이때 코드가 지저분해지지 않게 하려면 계좌 접근 부분을 하나의 인터페이스로 감싸고, 플랫폼 차이는 그 안에서만 처리합니다.

class Account:
    def __init__(self, acc_id, platform):   # platform: "mt4" | "mt5"
        self.id, self.platform = acc_id, platform

    def net_position(self, symbol):
        # MT4: 티켓들을 합산해서 순포지션 계산
        # MT5(네팅): 그대로 하나
        ...

    def close_ratio(self, symbol, ratio):
        # 비율 청산: 플랫폼과 무관한 의미로 표현
        ...

상위 로직은 net_position과 close_ratio만 알면 되고, 헤지·네팅 차이는 이 클래스 안에 갇힙니다. 두 플랫폼을 함께 붙이는 요금 조건은 요금제에서 확인할 수 있습니다.

정리

개발자 기준 차이는 사실상 네 가지입니다. 언어(MQL 사용 시), 헤지·네팅, 내역 구조, 심볼 정보의 상세함. 외부 API로 접근하면 첫 번째는 사라지고, 나머지 세 개만 코드에서 다루면 됩니다.

자주 묻는 질문

MT4와 MT5 중 자동매매에 어느 쪽이 유리한가요?

새로 시작한다면 MT5가 심볼 정보와 주문 모델이 더 정리되어 있어 유리합니다. 다만 붙여야 하는 계좌가 MT4에 있다면 선택의 문제가 아니며, 실무에서는 두 플랫폼을 함께 지원하는 경우가 많습니다.

네팅과 헤지 차이가 코드에 왜 중요한가요?

MT5 네팅 계좌에서는 같은 심볼의 포지션이 하나로 합산되므로, 티켓 단위로 포지션을 관리하는 코드가 예상과 다르게 동작합니다. 심볼별 순포지션 기준으로 작성하면 양쪽에서 안전합니다.

MT4·MT5 계좌를 코드로 연결하기

계정을 만들고 API 키를 받으면 30분 안에 첫 계좌 조회와 주문을 실행할 수 있습니다.

계정 만들기 → API 문서 보기