← 모든 튜토리얼
MT5 API · 5:01

Python으로 MT5 사용하기

다운로드, 설정, 연결, 조회, 실시간 수신, 연결 해제.

Python 예제 다운로드 · ZIP ↓

단계별 설명

  1. 0:00

    Python으로 MT5 사용하기

    이 튜토리얼에서는 Python으로 MT5에 연결하고, 데모 계좌 정보를 조회하고, 실시간 시세를 받은 뒤 연결을 정리하는 방법을 살펴봅니다.

  2. 0:14

    먼저 예제를 다운로드하세요

    mrpc.pro의 API 페이지에 로그인한 뒤 Python을 선택하고 예제 다운로드를 클릭하세요. 웹사이트에서 받는 예제는 새 데모 계좌를 만들고 전체 데모 거래를 실행하므로 개인 API 키가 필요합니다. 다운로드한 파일에 키가 포함될 수 있으니 공개하거나 공유하지 마세요.

  3. 0:40

    목적에 맞는 예제를 선택하세요

    이번에는 별도로 제공하는 Python 시세 예제를 사용합니다. 기존 데모 계좌로 연결하며 거래 요청은 보내지 않습니다. 체험용 터미널에 여유가 있으면 기존 데모 계좌에 TRIAL을 사용할 수 있습니다. 새 데모 계좌를 만들려면 개인 키가 필요합니다. 두 예제는 시작 조건이 서로 다릅니다.

  4. 1:07

    Python 환경을 준비하세요

    Python 3.10 이상을 사용하세요. 프로젝트 폴더에 가상 환경을 만든 뒤 그 환경의 Python으로 requests와 websocket-client를 설치합니다. requests는 REST 요청을 보내고 websocket-client는 실시간 스트림을 받습니다. 웹사이트의 원래 데모는 표준 라이브러리를 사용하며, 이 두 패키지는 이번 스트리밍 예제에 필요한 것입니다.

  5. 1:39

    인증 정보를 설정하세요

    화면에 나온 환경 변수 네 개를 설정하고 각 자리 표시자를 자신의 값으로 바꾸세요. 브로커의 정확한 데모 서버 이름과 해당 계좌의 거래 비밀번호를 사용합니다. 환경 변수를 쓰면 인증 정보를 소스 파일에 넣지 않아도 됩니다. macOS나 Linux에서는 PowerShell 환경 변수 구문 대신 export를 사용하세요.

  6. 2:08

    한 번 연결하고 ID를 재사용하세요

    예제는 데모 계좌 번호, 비밀번호, 서버를 지정해 ConnectEx를 호출하고 반환된 terminalInstanceGuid를 메모리에 저장합니다. 이후 REST 요청에서는 이 값을 id 헤더에, API 키를 APIKey 헤더에 보냅니다. API 키는 MetaRPC 이용자를 식별하고 터미널 ID는 연결된 계좌를 선택합니다.

  7. 2:37

    모든 응답을 확인하세요

    먼저 HTTP 상태 코드를 확인합니다. HTTP Status Code 200이면 JSON을 해석하고 error를 확인하세요. error가 null이 아니면 해당 단계를 멈추고 오류 코드와 메시지를 비공개로 확인합니다. 그렇지 않으면 data를 읽습니다. 이 예제는 간단한 오류만 기록하며, 거래 비밀번호가 들어 있는 연결 URL은 출력하지 않습니다.

  8. 3:08

    계좌 정보를 조회하세요

    화면은 실제 Python 실행 결과입니다. 계좌 요약은 data의 accountCurrency, accountBalance, accountEquity를 사용합니다. 이 값들은 브로커 계좌의 값이며 MetaRPC 서비스 잔액과는 다릅니다. 이어지는 세 줄도 예제가 실제로 받은 시세 메시지이며 임의로 만든 값이 아닙니다.

  9. 3:35

    실시간 시세를 구독하세요

    WebSocket 주소에서 EURUSD를 구독합니다. Python은 연결 협상 헤더에 APIKey와 id를 보낼 수 있습니다. JSON 메시지마다 먼저 error를 확인한 뒤 data.symbolTick을 읽습니다. bid는 매도 호가이고 ask는 매수 호가입니다. UTC 기준 시각은 timeUtc를 사용하세요.

  10. 4:01

    구독을 중지하고 연결을 해제하세요

    전체 예제는 시세 메시지 세 개를 받으면 종료합니다. 정리 과정에서는 먼저 WebSocket을 닫고 같은 터미널 ID로 Disconnect를 호출합니다. 스트림에 오류가 생겨도 이 과정은 실행됩니다. 소켓을 닫으면 구독이 멈추고, Disconnect는 호스팅된 터미널을 해제합니다. 요청한 5분 만료 시간은 보조 수단이며 정리 과정을 대신하지 않습니다.

  11. 4:34

    첫 로컬 연동을 완성하세요

    가상 환경의 Python으로 예제를 실행하세요. 성공하면 계좌 요약, 틱 세 개, WebSocket closed, Terminal disconnected가 출력됩니다. 코드를 응용할 때도 오류 검사와 정리 과정을 유지하세요. 이제 출력문을 자신의 애플리케이션 로직으로 바꾸고 준비가 되면 개인 API 키를 사용할 수 있습니다.