← 모든 튜토리얼
MT5 API · 4:53

MT5 기록을 보고서로 만드세요.

실제 체결을 읽고, 입금을 분리하고, 내보냅니다.

Python 예제 다운로드 · ZIP ↓

단계별 설명

  1. 0:00

    MT5 기록을 보고서로 만드세요.

    이 튜토리얼에서는 MT5 거래 기록을 읽고, 이미 반영된 거래 손익을 계산한 다음 Python으로 보기 쉬운 보고서를 만드는 방법을 알아봅니다.

  2. 0:14

    조회 전용으로 연결하세요.

    mt5.mrpc.pro를 열고 ConnectEx를 선택합니다. 데모 계좌의 로그인 번호, 비밀번호, 브로커 서버를 입력하세요. TRIAL 또는 API 키를 사용하고, 선택 사항인 id는 비워 둡니다. 여기서는 투자자 비밀번호로 조회 전용 접속을 합니다. 콘솔은 반환된 터미널 id를 저장합니다.

  3. 0:43

    계좌 통화를 확인하세요.

    AccountSummary를 실행합니다. 이 계좌는 미국 달러를 사용하는 데모 계좌이며, 잔액은 구만 구천구백구십구 달러 구십육 센트입니다. 손익과 비용을 표시할 때는 계좌 통화를 사용하세요.

  4. 1:01

    종료된 기간 하나를 선택하세요.

    DealsHistory를 선택합니다. inputFromUtc와 inputToUtc에 Z로 끝나는 시각을 입력하세요. 대응하는 브로커 시간 필드는 비워 둡니다. 이 녹화의 조회 범위는 십월 일일부터 십월 이십팔일 시작 시점까지입니다. 이후 페이지를 조회할 때도 이 범위를 유지하세요.

  5. 1:27

    모든 페이지를 읽으세요.

    HTTP Status Code 200을 확인한 뒤에는 error부터 확인합니다. 이 응답에는 API 오류가 없습니다. pageSize가 이이면 첫 응답에는 전체 열세 건 중 두 건만 포함됩니다. nextPageToken을 pageToken에 복사하고 같은 필터로 계속 조회하세요. nextPageToken이 비어 있을 때까지 반복합니다.

  6. 1:55

    주문, 체결, 포지션.

    주문은 거래 지시이고, 체결은 실행 기록입니다. AllHistoryOrders는 주문 기록을 보여 줍니다. DealsHistory의 order는 주문 티켓과 연결되고, positionId는 같은 포지션의 체결을 묶습니다. 이 포지션에는 영 점 영 이 랏 진입 한 건과 영 점 영 일 랏 청산 두 건이 있습니다.

  7. 2:23

    반환된 부호 그대로 계산하세요.

    각 체결의 profit, commission, swap, fee를 반환된 값 그대로 더합니다. 부호를 유지하고, 이미 음수인 수수료를 다시 빼지 마세요. 이 청산 체결의 이익은 이 센트이며 비용은 없습니다. 진입할 때 수수료가 부과될 수도 있으므로 진입 체결도 포함해야 합니다.

  8. 2:49

    자금 이동은 따로 분리하세요.

    첫 기록은 십만 달러의 데모 입금입니다. 유형은 BALANCE이며 주문이나 포지션은 없습니다. 이것은 거래 이익이 아닙니다. 보고서는 Buy와 Sell 체결을 다른 유형과 분리합니다. 별도로 부과된 비용, 크레딧, 조정 내역은 other-deals 파일에서 확인하세요.

  9. 3:12

    보고서 범위를 확인하세요.

    열세 건을 모두 가져왔습니다. 열두 건의 거래 체결을 합산하면 사 센트 손실입니다. 이 예제에서 commission, swap, fee는 모두 영이고 입금은 별도입니다. 이는 선택한 기간에 반영된 금액이지 미실현 손익이 아닙니다. 기간 시작 전에 열린 포지션은 이전 비용이 이 보고서에서 제외될 수 있습니다.

  10. 3:40

    Python으로 같은 데이터를 내보내세요.

    제공 스크립트는 같은 DealsHistory 엔드포인트를 호출하고 커서 페이지를 따라가며 최종 개수를 확인합니다. 십진수 연산을 사용하고 positionId별로 금액을 묶습니다. API 키와 터미널 id는 환경 변수에 비공개로 설정하세요. 이 스크립트는 포지션을 열거나 닫지 않습니다.

  11. 4:07

    세 개의 보고서 파일을 여세요.

    고정된 UTC 날짜로 스크립트를 실행합니다. trade-deals.csv, other-deals.csv, summary.json을 생성합니다. 예제 출력은 이번에 가져온 기록과 대조했습니다. API 오류가 발생하거나 페이지가 불완전하면, 불완전한 합계를 표시하지 않고 스크립트가 중단됩니다.

  12. 4:34

    마치면 연결을 해제하세요.

    마지막으로 콘솔에서 Disconnect를 호출해 터미널을 해제합니다. 이제 세션 연결이 종료되었습니다. 거래 기록을 가져와 자금 이동과 거래 손익을 분리하고, 확인하고 재사용할 수 있는 보고서로 내보냈습니다.