
MetaTrader 5에 AI 에이전트 연결하기
요약
인간 트레이더의 감정적 오류를 배제하기 위해 MetaTrader 5(MT5)와 AI 에이전트를 연결하는 방법을 다룹니다. MCP(Model Context Protocol)를 활용하여 브로커에 종속되지 않는 자율적인 AI 트레이딩 에이전트를 구축하는 시리즈의 첫 번째 단계입니다.
핵심 포인트
- 인간의 심리적 요인(공포, 탐욕)으로 인한 트레이딩 손실 방지
- MCP를 활용한 다양한 AI 에이전트와의 호환성 확보
- MetaTrader 5(MT5) CFD 거래를 위한 에이전트 구축 가이드
- 브로커에 종속되지 않는(Broker-agnostic) 설계 방식
원래 Fintrix engineering blog에 게시되었습니다. Trade with AI agent 시리즈의 Part 1입니다.
⚠️ 여기의 모든 내용은 **데모 계정 (demo account)**에서 실행됩니다. 이것은 엔지니어링 콘텐츠이며, 금융 조언이 아닙니다. CFD 거래는 고위험을 수반합니다. 대부분의 개인 계정은 돈을 잃습니다. 실제 자금을 사용하기 전에 면책 조항을 읽으십시오.
배경 (Background)
대다수의 트레이더들은 인간이라는 사실 때문에 좋은 전략을 사용하더라도 돈을 잃습니다.
트레이딩의 쉬운 부분(리스크 관리 (risk management))은 일반적으로 손실 금액에 대한 한도를 설정하는 것(예: 각 거래당 1% 리스크)을 포함합니다. 스탑로스 (stop-loss) 주문이 활성화되면, 떠나십시오. 불행히도, 당신이 알아차리기도 전에 또 다른 잠재적인 기회가 당신을 빤히 쳐다보고 있을 것이며, 머릿속 한구석에서는 "이번 한 번만"이라고 속삭이는 조용하고 성가신 생각이 들 것입니다.
불행히도 대부분의 경우, 이는 나쁜 결말로 이어집니다. 프랍 펌 (prop-firm) 챌린지를 시도해 본 사람들은 제가 무슨 말을 하려는지 알 것입니다. 만약 당신이 단 한 번이라도 자신의 규칙을 어긴다면, 결국 어느 회사의 누군가로부터 "안타깝게도..."로 시작하는 이메일을 읽게 될 것입니다.
데이터는 수년 동안 동일한 사실을 말해왔습니다:
개인 CFD 계정의 74–89%가 돈을 잃습니다 — 매 분기, 모든 브로커에 걸쳐 발생합니다. ESMA가 제품 개입 조치를 시행했을 때 제공업체 전반에서 발견한 범위이며, 브로커들이 오늘날에도 여전히 리스크 고지 사항에 기재하고 있는 것과 동일한 범위입니다.
좋은 전략(우위 (edge)가 있는 전략)이라 할지라도 공포, 탐욕, 피로와 같은 인간의 감정, 또는 손실을 만회하려는 순수한 어리석음, 즉 그 유명한 복수 매매 (revenge trading)로 인해 파산할 수 있습니다. 따라서 대개 전략은 괜찮지만, 특히 경험이 적은 트레이더에게는 인간의 심리가 문제가 됩니다.
따라서 이번 시리즈에서는 트레이딩 전략에 집중하는 대신, 방법의 실행(규칙/규칙 준수)과 화면 모니터링을 피로를 느끼지 않고, 이전 손실을 "따내려는" 욕심이 없으며, 지루함을 느끼지 않는 무언가에 맡기게 될 것입니다. 기본적으로 트레이딩에서 감정적인 부분을 제거하는 것입니다.
여러분은 이를 인공지능 (AI) 트레이딩 에이전트 (Trading Agent)에게 맡기게 됩니다. 앞으로 몇 편의 글을 통해, 여러분의 전략을 실행하는 자율적인 AI 트레이딩 에이전트를 점진적으로 구축해 나갈 것입니다.
이 시리즈의 목적
자신만의 에이전트를 가져오세요. 동일한 설정이 MCP를 지원하는 모든 AI 에이전트에 적용되며, MCP 등록은 이들 모두와 깔끔하게 매핑됩니다. 이미 사용 중인 것을 선택하세요:
| 에이전트 | 오픈 소스 | 본 포스트에서의 역할 |
|---|---|---|
| OpenClaw | ✅ | 이 포스트 전반에 걸친 실습 예시 |
| ... |
이것은 브로커 불문 (broker-agnostic) 입니다. 여기의 어떤 것도 특정 브로커에 종속되지 않으며, 아무도 신경 쓰지 않았던 단 한 영역, 즉 MetaTrader 5의 CFD를 목표로 합니다.
만약 여러분이 CFD를 거래하고 있다면, 트레이딩 플랫폼으로 MetaTrader 5를 사용하고 있을 가능성이 매우 높습니다. 수백만 명의 개인 트레이더들이 전문 데스크 및 브로커와 함께 MetaTrader 5를 사용하고 있습니다. 우리는 이러한 광범위한 사용성에 기대를 걸고 있습니다. 에이전트를 한 번만 연결하면 MT5를 지원하는 모든 브로커, 상품(instruments), 계좌에서 작동할 것입니다.
에이전트 기반 트레이딩 (agentic-trading)의 물결은 이미 시작되었습니다. 2026년 5월 27일, Robinhood는 "Agentic Trading"을 출시했습니다. 이는 MCP (Model Context Protocol)를 통해 여러분의 AI 에이전트를 샌드박스 계좌에 연결하는 방식입니다.
그 자체만으로도 이러한 트렌드가 단순한 눈속임(gimmick)이 아니라, 가까운 미래에 확립된 거래 방식이 될 것이라는 증거입니다. 하지만 현재는 주식, 옵션, 암호화폐(cryptocurrencies)에 국한되어 있습니다. 우리는 수많은 개인 CFD 트레이더들이 모여 있는 CFD/외환(Forex) 커뮤니티 전체를 제외했습니다. 바로 그 세그먼트가 우리가 집중하고자 하는 대상입니다.
대상 사용자
숙련된 CFD 트레이더. 당신은 전략이 문제가 아니라 규율(discipline)과 심리(psychology)가 문제라는 것을 알고 있습니다. 당신은 인간의 한계에 영향을 받지 않고 당신의 계획을 실행할 무언가를 원합니다.
트레이딩에 관심은 있지만 전략을 모를까 봐 걱정하는 소프트웨어 엔지니어. 에이전트가 트레이딩의 힘든 작업(heavy-lifting)을 수행합니다. 당신은 당신이 잘하는 것, 즉 성능을 높이기 위해 도구들을 연결하는 일을 가져오면 됩니다. 에이전트는 심지어 당신을 위해 수익성 있는 트레이딩 전략을 연구할 수도 있습니다.
프랍 계좌(funded prop account) 취득을 위해 노력 중인 사람. 에이전트는 규칙서(rulebook)를 보유합니다. 에이전트는 매 거래 전에 당신의 정확한 일일 손실 허용 잔여량을 알고 있으며, 당신이 일일/주간 손실 한도를 위반하려 할 때 경고를 주거나 실행을 차단할 수 있습니다. 평가자들이 실제로 테스트하는 "매 세션 전에 당신의 수치(numbers)를 알고 있는가?"라는 항목이 자동화됩니다.
왜 에이전트인가, 정말로
세 가지 솔직한 이유입니다. 그 중 어느 것도 "돈을 찍어낸다"는 식의 내용은 아닙니다.
1. 시간 확보. 트레이딩은 *능동적 탐색(active searching)*입니다. 에이전트는 이를 *반응적 검토(reactive reviewing)*로 전환합니다. 에이전트는 결정할 가치가 있는 상황이 발생하거나, 높은 확률의 셋업(setup)에 대해 자동으로 거래를 위임할 수 있을 때만 당신에게 알림(WhatsApp, Telegram, SMS, 전화)을 보냅니다.
| 현재의 트레이딩 — 능동적 탐색 | 에이전트와 함께하는 트레이딩 — 반응적 검토 |
|---|---|
| 셋업을 기다리며 화면을 응시함 | 24/7 모니터링하며 셋업이 나타나면 알림을 보냄 |
| ... |
2. 감정 배제. 공포도, 탐욕도, 아침의 손실을 복구하려는 복수 매매(revenge trade)의 충동도 없습니다. 지루함 때문에 과도하게 매매(overtrade)하거나, 세 번 연속 승리한 후 베팅 금액을 두 배로 늘리지 않습니다. 그저 계획을 실행할 뿐입니다. 프랍 트레이더들에게는 첫 손실 이후의 복수 매매가 그 무엇보다도 평가 탈락의 주요 원인이라는 것이 상식입니다.
3. 다시 즐거워집니다. 반복적인 작업과 불안감이 사라지면, 남는 것은 가장 흥미로운 부분입니다. 즉, 전략 설계, 실험, "이것을 가르치면 어떻게 될까?"와 같은 고민입니다. 코르티솔(cortisol, 스트레스 호르몬) 없이 즐기는 기술적 숙련(craft)입니다.
한 가지 솔직한 경고를 드리자면:
잘못된 계획을 차분하게 실행하는 에이전트는 차분하게 돈을 잃을 것입니다.
이것은 여전히 당신의 전략입니다. 돈을 찍어내는 기계가 아니라, 규율과 시간을 관리하는 기계입니다. 숙련된 트레이더의 습관을 자동화하고, 초보자의 첫걸음을 생존 가능하게 만듭니다. 그것이 이 기술의 핵심 약속입니다.
오늘 우리가 만들 것
이 포스트를 마칠 때쯤(약 15분의 설정 시간 소요), 당신의 에이전트는 첫 번째 데모 거래를 실행하고 다시 종료했을 것입니다. 즉, 터미널에서 1랏(0.01) 규모의 매수와 매도를 수행하는 단일 왕복(round trip) 거래입니다. 이는 리스크 모델, 전략, 뉴스 피드 없이도 실제로 유용한 가장 단순한 형태입니다. 당신의 에이전트는 아무런 위험을 감수하지 않고 계좌를 조회하고 동작을 수행할 수 있어야 합니다. 위 다이어그램의 다른 모든 구성 요소는 이후 포스트에서 다룰 예정입니다.
당신 → OpenClaw → [ mt5-trading-mcp ] → MetaTrader 5
우리가 설치할 구성 요소 데모 계좌
OpenClaw 대신 Codex, Claude Code, Hermes 또는 당신이 가장 편안하게 느끼는 무엇으로든 교체할 수 있습니다. 오늘 우리가 설치할 구성 요소인 mt5-trading-mcp가 강조되어 있습니다.
오늘 설치할 구성 요소는 오픈 소스이며 Metaquotes와 관련이 없습니다:
mt5-trading-mcp: MCP 서버입니다. 호환 가능한 모든 에이전트에게 승인 흐름(approval flow), 명목 한도(notional caps), 가격 드리프트 체크(price-drift checks)가 내장된, 계좌를 읽고 주문을 넣을 수 있는 안전한 도구 세트를 제공합니다.
이후 포스트에서는 동일한 기반 위에 agent-trading-skills(포지션 사이징, 리스크 규칙, 전략 인식)를 추가할 예정이지만, 오늘은 의도적으로 단순한 왕복 거래만을 다룹니다.
전 과정이 처음부터 끝까지 — 데모 계정 기준으로 약 40초 정도 소요됩니다: OpenClaw에게 GitHub URL에서 직접 mt5-trading-mcp를 설치하도록 요청하면, OpenClaw가 서버를 자신에게 연결(wire)한 다음 왕복 거래(round-trip)를 실행합니다 — 잔고(balance) → 호가(quote) → EURUSD.z 0.01 매수(BUY) → 오픈 포지션 표시 → 포지션 종료 → 실현 손익(P&L) 및 새로운 잔고 보고 순으로 진행됩니다.
단계별 구축 방법
함께 따라 해보고 싶으신가요? MetaTrader 5 터미널과 데모 계정을 준비하고, 옆에 터미널을 하나 열어두세요. 그리고 시간을 절약하고 싶다면, 해당 리포지토리에 ⭐(Star)를 눌러 다른 트레이더들이 찾을 수 있도록 도와주세요.
예시 에이전트로는 전체 과정에서 OpenClaw를 사용하겠습니다. 이는 오픈 소스이며, 동일한 MCP 등록 방식은 Codex, Claude Code, Hermes 또는 여러분이 이미 사용 중인 어떤 도구와도 깔끔하게 매핑됩니다.
📝 _명령어는 네이티브 Windows의 클린 설치 환경에서 검증되었습니다. 아래의 OpenClaw 흐름은
uvx(Python 패키지 매니저)를 통해 GitHub URL로부터 서버를 직접 설치합니다 — 수동 클론(clone)이나 PyPI 릴리스가 필요하지 않습니다. (uvx는 리포지토리에서 패키지를 직접 가져와 실행합니다.)*
0. 사전 요구 사항
기기에 다음 네 가지가 준비되어 있어야 하며, 옆에 터미널을 열어두어야 합니다:
| 필요한 사항 | 이유 | 준비 완료 시점 |
|---|---|---|
| Windows 머신 | MetaTrader5 Python 라이브러리가 로컬 터미널과 네이티브로 통신함 | Linux를 사용 중이라면 대신 headless 설정 가이드를 사용하세요 |
| ... |
1. 에이전트가 MCP 서버를 설치하도록 하기
이 부분이 위의 데모를 작동하게 만드는 핵심입니다. 아무것도 미리 연결해 둘 필요가 없습니다. 단순히 OpenClaw에게 위의 GitHub URL을 전달하고 서버를 스스로 설정하도록 내버려 두기만 하면 됩니다.
하지만 더 정확하게 수행하고 싶다면, OpenClaw에게 다음과 같은 지침을 줄 수 있습니다:
MT5 trading MCP를 해당 GitHub 리포지토리(repo)에서 설치하고, 도구(tools)를 사용할 수 있도록 자신에게 연결(wire)하세요. 다음 두 명령어를 실행하십시오:
...
에이전트가 명령어를 직접 실행하고 15개의 도구를 찾았다고 보고합니다. 에이전트에게 맡기는 대신 직접 수동으로 등록하고 싶다면, 그에 상응하는 한 줄 명령어는 다음과 같습니다:
openclaw mcp add mt5-mcp \
--command uvx \
--arg=--from --arg=git+https://github.com/vincentwongso/mt5-trading-mcp \
...
--eager-connect를 사용하는 이유는 무엇인가요? stdio를 통해 연결할 경우, 서버는 첫 번째 도구 호출 시점에 MT5에 지연(lazily) 연결됩니다. 그런데 MetaTrader5 임포트(import)와initialize()과정이 약 180초 정도 소요되기 때문에, 에이전트가 멈춘 것처럼 보일 수 있습니다. 대신--eager-connect를 사용하면 시작 시 메인 스레드에서 한 번에 연결되어 (~0.1초 소요) 이 문제를 해결합니다. 이 기능은 서버의main에 내장되어 있으므로, GitHub URL에서 직접 설치하면 별도의 설정 없이 바로 사용할 수 있습니다.다른 에이전트 (Claude Code / Claude Desktop): 가상 환경(venv)의 Python 절대 경로를 사용하여
mt5-mcp serve --eager-connect를 stdio 서버로 등록하십시오. 복사해서 사용할 수 있는 샘플.mcp.json파일이 리포지토리 루트(root)에 있습니다. (GUI 클라이언트가 서버를 실행할 때, 단순한python명령어는 다른 버전이나 32비트 인터프리터로 해석될 수 있습니다.)
2. 에이전트가 계정을 볼 수 있는지 확인하기 (먼저 읽기 전용으로 수행)
도구들이 로드되면, 데이터를 변경하는 작업을 하기 전에 무해한 질문을 먼저 던져보세요:
"내 계좌 잔고는 얼마이며, 현재 EURUSD 호가는 어떻게 되나요?"
에이전트가 읽기 전용(read-only) 도구 호출을 분산하여 실행하고 답변하는 과정을 지켜보세요. EURUSD 대신 사용 중인 브로커가 지원하는 어떤 심볼(symbol)로든 대체할 수 있습니다. 이 단계가 바로 "에이전트가 실제로 내 계좌를 볼 수 있다"는 것을 확인하는 순간입니다.
3. 전체 프로세스 실행: 매수, 매도 및 손익(P&L) 보고
다음 메시지로 아래 내용을 보내세요 (트레이딩 도구는 리로드된 다음 턴에 로드됩니다):
이제 이 데모 계정의 mt5-mcp 도구를 사용하여, 다음 순서대로 전체 프로세스(round-trip)를 수행하세요:
(1) 내 잔고 보고;
(2) EURUSD 호가 가져오기;
...
이 프로세스는 위 GIF에 나온 순서와 정확히 일치하게 주문을 넣고, 오픈된 포지션(open position)을 보여주고, 이를 종료하며, 실현 손익 (P&L) 및 새로운 잔고를 보고합니다. 다음은 MetaTrader 5의 히스토리 (History) 탭에 기록된 전체 프로세스 (round-trip)입니다:
데모 계정에서 완료된 round-trip — 1.16313에 오픈되어 1.16318에 종료되었으며, 순손익은 -0.16입니다. 작지만 실제이며, 전적으로 에이전트가 수행한 결과입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기