해외선물이나 FX를 자동으로 매매하려면 전략보다 먼저 계좌와 계약 조건을 확인해야 합니다. 국내 주식 자동매매와 다른 지점이 여러 개 있고, 대부분 첫 실계좌 운용에서 문제가 됩니다. 아래 일곱 가지는 코드를 쓰기 전에 확인해 두는 것이 좋습니다.
1. 계좌가 어디에 있는지
MT4·MT5 계좌는 해외 브로커에 개설합니다. 국내 증권사 계좌와는 별개이며, 국내 증권사 API로는 이 계좌를 다룰 수 없습니다. 두 계층의 차이는 국내 증권사 API와 MetaTrader API 비교에 정리했습니다.
브로커를 고를 때 자동매매 관점에서 확인할 것은 규제 관할, 체결 방식, 그리고 API·EA 사용 허용 여부입니다. 약관에서 자동매매를 제한하는 브로커도 있습니다.
2. 심볼 표기와 계약 단위
가장 자주 사고가 나는 지점입니다. 같은 상품이 브로커마다 다르게 표기됩니다. XAUUSD가 GOLD일 수도 있고, 접미사가 붙어 XAUUSD.pro처럼 되기도 합니다. 계약 단위(1랏의 크기)도 상품과 브로커에 따라 다릅니다.
코드에서 심볼을 문자열로 하드코딩하지 말고, 계좌에서 사용 가능한 심볼 목록을 조회해 매핑 표를 만드는 편이 안전합니다. 최소 주문 단위와 최소 변동폭도 같이 저장해 둡니다.
3. 증거금과 레버리지
자동매매에서 계좌가 정리되는 대부분의 경우는 전략이 틀려서가 아니라 포지션 크기 계산이 틀려서입니다. 주문 전에 계좌의 여유 증거금을 조회하고, 그 값을 기준으로 수량을 계산해야 합니다.
# 주문 전 확인 — 잔고가 아니라 여유 증거금이 기준
curl -s -H "x-api-key: $KEY" \
"https://api.metatraderapi.net/AccountSummary?id=$ACCOUNT_ID"
# balance, equity, margin, freeMargin 을 함께 본다
고정 수량으로 주문을 넣는 코드는 계좌가 커지면 지나치게 보수적이 되고, 계좌가 줄어들면 위험해집니다. 잔고 대비 비율로 계산하는 편이 장기적으로 안전합니다.
4. 거래 시간과 휴장
해외선물과 FX는 시장별로 거래 시간이 다르고, 서머타임에 따라 브로커 서버 시간이 이동합니다. 브로커 서버 시간과 한국 시간의 차이는 계절에 따라 바뀝니다.
자동매매 코드가 휴장 시간에 주문을 밀어넣으면 거부되고, 그 거부를 재시도로 처리하면 로그가 폭발합니다. 거래 시간 창을 코드에 두고, 창 밖에서는 조용히 건너뛰게 만드는 것이 좋습니다.
5. 롤오버와 스왑
포지션을 하루 이상 보유하면 스왑이 발생합니다. 방향에 따라 받을 수도 지불할 수도 있고, 특정 요일에 3배가 적용되는 경우가 많습니다. 선물성 상품은 만기와 롤오버 일정이 있어 보유 중 계약이 교체되기도 합니다.
백테스트 성과와 실계좌 성과가 벌어지는 흔한 원인이 여기입니다. 야간 보유가 전략의 일부라면 스왑을 비용 항목으로 명시해 계산에 넣어야 합니다.
6. 실패했을 때 어떻게 되는가
자동매매에서 가장 위험한 상태는 손실이 아니라 ‘모르는 상태’입니다. 주문이 나갔는지 안 나갔는지 모르는 채로 다음 신호가 오는 상황을 막아야 합니다.
- 모든 주문 요청과 응답을 기록합니다. 요청 시각, 요청 본문, 응답 코드, 응답 본문.
- 타임아웃이 발생하면 재시도 전에 포지션을 먼저 조회합니다. 요청은 실패했지만 주문은 들어갔을 수 있습니다.
- 실패는 알림으로 받습니다. 성공까지 알림을 보내면 곧 무시하게 됩니다.
7. 기록을 어디에 남길 것인가
브로커 터미널의 내역 화면은 조회용이며, 몇 달치를 분석하기에는 불편합니다. 체결 내역을 주기적으로 조회해 자체 데이터베이스에 넣어두면 전략별·심볼별 성과를 분리해 볼 수 있고, 세무 자료가 필요할 때도 근거가 됩니다.
계좌가 여러 개면 이 작업이 사실상 필수입니다. 계좌별 성과를 한 화면에 모으는 구조는 프랍 챌린지 계좌 감시 글에서 다뤘습니다.
정리
해외선물 자동매매의 초기 사고는 대부분 전략이 아니라 계약 조건과 예외 처리에서 발생합니다. 심볼 매핑, 증거금 기준 수량 계산, 거래 시간 창, 실패 기록 — 이 네 가지를 먼저 만들어 두면 이후 전략을 바꿔도 구조를 다시 만들 필요가 없습니다.
구조를 만드는 단계에서 터미널과 VPS 관리까지 떠안을 필요는 없습니다. 계좌 접근을 API로 처리하는 방법은 한국 사용자 안내에서 단계별로 확인할 수 있습니다.
본 글은 기술 구현에 관한 정보이며 투자 권유나 자문이 아닙니다. 해외 브로커 이용과 자동매매 운용에 관한 규정 및 세무 처리는 이용자가 직접 확인해야 합니다.
자주 묻는 질문
해외선물 자동매매에 국내 증권사 API를 쓸 수 있나요?
국내 증권사 API는 국내 계좌와 국내 상품을 다룹니다. 해외 브로커에 개설한 MT4·MT5 계좌를 자동으로 매매하려면 해당 계좌에 접근하는 인터페이스가 별도로 필요합니다.
백테스트와 실계좌 성과가 다른 가장 큰 이유는 무엇인가요?
스프레드와 슬리피지, 그리고 야간 보유 시 발생하는 스왑이 반영되지 않은 경우가 많습니다. 심볼별 계약 단위를 잘못 계산한 것도 흔한 원인입니다.