분류
플랫폼
난이도
초급
사용 상황
MT5 운용EA 평가

가상 사설 서버

가상 사설 서버(VPS)는 MetaTrader를 하루 종일 켜 두려고 임대하는 원격 컴퓨터다. 쓰던 컴퓨터가 절전에 들어가거나 연결이 끊겨도 EA는 계속 거래하며, 브로커 서버와 더 가까운 자리에 놓인다.

다른 표현: VPS, 포렉스 VPS, MT5 VPS, 가상 호스팅

업데이트일 · 검토일

쉽게 말하면

데이터센터에 놓인 컴퓨터 한 대이고, 그 컴퓨터가 하는 일은 MetaTrader를 켜 두는 것뿐이다. 전략을 더 좋게 만들어 주지는 않는다. 매매와 아무 상관 없는 이유로 전략이 멈추는 경로들을 없애 줄 뿐이다.

왜 중요한가

EA는 자기 터미널이 돌아가는 동안에만 존재하므로, 정지 시간은 거래를 잃게 하는 것이 아니라 아예 지워 버린다. 여기 공개된 기록 27개에서 모든 백테스트 진입의 절반 넘게가 08:00–16:59 UTC 바깥에 떨어지고, 진입이 가장 몰리는 한 시간인 00:00 UTC는 도쿄에서 아침 아홉 시다.

  • 놓친 진입은 아무 기록도 남기지 않는다. 그 거래는 그냥 없고, 원장은 추적할 오류 하나 없이 백테스트에서 멀어진다.
  • Windows는 자기 일정대로 재시작한다. 데스크톱에서는 방해에 그치지만, 포지션을 들고 있는 기계에서는 정지다.
  • 지연이 중요한 정도는 노리는 폭에 비례하는데, 여기 있는 전략들은 보유 시간이 길다. 보유 시간 중앙값이 한 시간을 밑도는 기록은 하나도 없다.

MetaTrader 5에서

MT5에서의 위치

  • Navigator → 계좌 우클릭 → Register a Virtual Server — MetaTrader 자체 호스팅이며 터미널 안에서 임대한다
  • Tools → Options → Expert Advisors → Allow Algo Trading — 재시작할 때마다 다시 확인해야 하는 스위치
  • Toolbox → Journal — 로컬 로그다. 호스팅된 터미널은 자기 것을 따로 갖는다

EA가 사용하는 방식

  • EA 안에서는 아무것도 바뀌지 않는다. VPS는 터미널이 돌아가는 장소이지, 코드가 다루는 대상이 아니다.
  • 가상 호스팅은 스냅샷을 옮긴다. 서드파티 VPS는 완전한 터미널을 돌리며, 커스텀 파일이나 DLL, 또는 터미널 여러 개가 필요할 때 쓰는 쪽이 그것이다.
  • 가동 시간은 EA가 재시작을 견뎌야 도움이 된다. OnInit에서 열린 포지션으로부터 상태를 다시 세우는 EA는 살아나고, 상태를 메모리에만 들고 있던 EA는 살아나지 못한다.

일반적인 설정

설정 일반적인 값 비고
지연과 RAM 이 카탈로그에서는 측정하지 않는다 이 사이트는 호스트 계측치를 공개하지 않으므로, 여기에 밀리초나 메모리 수치를 적어도 출처가 없다. 측정된 것은 보유 시간이다. 1,362.6분.
운영체제 Windows Server MetaTrader는 Windows 바이너리다. 호환 계층은 자기만의 고장 방식을 하나 더 얹는다.
호스트 시계 건드리지 말 것 EA가 읽는 것은 호스트 시계가 아니라 브로커 시각인 TimeCurrent()다. 여기 있는 기록 27개 가운데 일곱 개가 GMT 오프셋 입력값을 노출하며, 그중 여섯 개는 0으로 둔다.

자주 생기는 운용 문제

  • 임대가 끊기거나 카드가 만료되어, 포지션이 열려 있는 채로 인스턴스가 정지된다.
  • 터미널은 뜨는데 계좌가 로그인되어 있지 않다. 차트는 정상으로 보이고, EA는 아무 일도 하지 않는다.

관련 MT5 함수

TerminalInfoInteger(TERMINAL_CONNECTED)
터미널이 거래 서버와 이어져 있는지 여부 — 로그로 남길 심박이다.
TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)
터미널 수준의 허용 여부. Algo Trading이 꺼진 채로 재시작되면 false다.
TimeCurrent()
브로커 서버 시각 — 세션 필터가 읽는 시계이며, 호스트 시계가 아니다. 이 페이지의 원장 타임스탬프는 UTC로, 또 다른 세 번째 것이다.

예시

정지 한 시간이 각 전략에서 앗아 가는 한 해의 몫은 서로 다르다. 진입이 고르게 퍼져 있지 않기 때문이다.

Sundial, UTC 기준 한 시간 안에 든 진입
557건 중 557건
Tradewind, 같은 기준
6.12 %
기록 27개의 중앙값
14.85 %

호스트끼리 가동 시간 수치를 견주기 전에, 그 EA에게 필요한 시간이 언제인지부터 물어라.

계산 Sundial의 진입 557건 가운데 555건이 00:55 UTC 타임스탬프를 달고 있다

결과 정지 창 하나가 어떤 전략은 통째로 지우고 다른 전략은 스치기만 한다

사용하는 법

요금제 가격이 아니라 전략이 얼마나 오래 들고 있는지에 호스팅을 맞춰라.

구간 의미
보유 시간 중앙값 2시간 미만 (27개 중 2개) 왕복 시간이 움직임 폭에서 눈에 보이는 몫을 차지한다. 브로커가 있는 지역을 골라라.
보유 시간 중앙값 2–24시간 (27개 중 6개) 가까운 곳의 기본 인스턴스면 충분하다. 대신 재시작 동작에 돈을 써라.
보유 시간 중앙값 하루 초과 (27개 중 19개) 지연은 무관하다. 여기서 사는 것은 가동 시간 하나뿐이다.
보유 시간과 무관하게, 집 컴퓨터에서 지켜보는 동안에만 굴러간다. 여기 있는 포지션 대부분은 열린 날을 넘겨 살아남는다.
  • MetaTrader가 Windows와 함께 시작하도록 설정한 다음, 일부러 재부팅해서 그것을 증명하라. 계좌가 다시 로그인되었는지, Algo Trading이 여전히 켜져 있는지 확인하라.
  • 왕복 시간은 책상이 아니라 VPS에서 브로커 거래 서버까지를 재라.

브로커가 얹어 주는 무료 VPS 혜택에는 최소 잔고나 월간 거래량 조건이 붙는다. 자격 요건을 먼저 읽어라.

흔한 오해

자기와 가장 가까운 위치를 고르기

중요한 구간은 서버에서 브로커까지다. 사람은 일주일에 한 번 접속하지만, EA는 주문마다 접속한다.

MetaTrader의 가상 호스팅이 계속 동기화된다고 여기기

시키면 스냅샷을 한 번 옮길 뿐이다. 그 뒤에 로컬에서 입력값을 바꾸면, 호스팅된 사본은 옛날 값으로 거래한다.

진입이 가장 몰리는 시간을 엉뚱한 시계로 읽기

이 원장 타임스탬프는 UTC다. 08:00–16:59를 브로커 시각으로 읽으면 책상 앞 시간 바깥의 몫은 54.28 %에서 64.49 %로 옮겨 간다.

자세히

터미널이 실제로 깨어 있어야 하는 때

공개된 기록 27개, 백테스트 진입 18,219건 기준수치
08:00–16:59 UTC 바깥의 진입54.28 %
서로 다른 날짜에 열리고 닫힌 거래64.71 %
보유 시간 중앙값, 전체 거래1,362.6분
보유 시간 중앙값이 가장 짧은 기록 (Chrysalis)67.5분
GMT 오프셋·서머타임·세션 시각 입력값을 실은 기록27개 중 8개
기록당 연간 진입 건수 중앙값56.4

두 행이 구매를 결정한다. 전체 진입의 절반 넘게가 책상 앞 시간 바깥에 도착하고, 포지션의 3분의 2 가까이가 다음 날짜까지 살아남는다 — 다만 하루를 넘겨 굴러가는 것은 48.36 %뿐이다. 날짜 경계는 지속 시간이 아니기 때문이다. 일곱 개 기록이 GMT 오프셋 입력값을 노출하고 그중 여섯 개는 0으로 두며, 여덟 개 가운데 어떤 시계 입력값이든 0이 아닌 값으로 설정한 것은 세 개다. 터미널을 지역 사이로 옮겨도 그것이 언제 거래하는지는 하나도 바뀌지 않는다.

놓친 한 시간은 그냥 한 시간이 아니다

중앙값에 해당하는 기록은 자기 진입의 14.85 %를 가장 붐비는 한 시간에 몰아 넣는다. Sundial은 557건 전부를 거기에 넣으며, 그 가운데 555건이 정확히 00:55에 찍힌다. Tidewell Slack은 모든 진입을 연속한 두 시간 안에 담고, Almanac은 하루 세 번 고정된 시각 — 00:55, 07:50, 15:00 — 에 발동하므로 정지 한 번이 가져갈 수 있는 것은 그중 하나뿐이다. Tradewind의 가장 붐비는 한 시간은 6.12 %를 담는다.

정지의 비용은 호스트의 성질이 아니라 전략의 성질이다. 가동 시간 99 %라는 수치는 매시간 거래하는 EA에게 뜻하는 바와 00:55에만 존재하는 EA에게 뜻하는 바가 다르다.

조용한 전략과 죽은 터미널은 똑같아 보인다

가장 뜸할 때, 중앙값에 해당하는 기록은 연속한 두 진입 사이에 53.4일을 보낸다. Windrose는 한 번 193.4일 동안 진입이 없었다. Chrysalis는 760.8일이었다 — 그러나 여기서 원장이 한 해를 통째로 건너뛰는 기록은 그것 하나뿐이고, 그 침묵 동안 나머지 26개는 3,770건의 진입을 남겼다. “이번 주에 아무 거래도 없으면 알려 줘” 꼴의 규칙은 건강한 전략 위에서 쉴 새 없이 울리고, 느린 전략이 멈춰 있는 동안에는 잠자코 있는다.

원장이 아니라 터미널을 지켜보라. TERMINAL_CONNECTED를 타이머로 기록하고, 사라진 심박을 경보로 다루어라.

관련 용어와 다음에 확인할 것

VPS는 엑스퍼트 어드바이저가 어디서 도는지를 바꿀 뿐, 그것이 무엇을 하는지는 결코 바꾸지 않는다. 이 결정의 체결 쪽 절반은 슬리피지와 브로커의 체결 모델에 속한다. 전략 쪽 절반은 스캘핑과 맞대어 읽어야 한다. 노리는 폭이 작아서 왕복 시간이 드러나는 유일한 계열이기 때문이다. 브로커가 끼워 주는 VPS 혜택에는 잔고와 거래량 조건이 걸려 있는데, 여기 문서로 남아 있는 것은 XM의 것이다. 카탈로그의 모든 상품은 그 뒤에 있는 원장을 공개하므로, 호스팅하려는 EA가 어느 시간에 진입하는지 직접 확인할 수 있다.

자주 묻는 질문

MT5 EA를 돌리려면 VPS가 꼭 필요한가요?
감시자 없이 돌릴 생각이라면 필요합니다. EA는 터미널이 켜져 있고 연결되어 있는 동안에만 거래하므로, 절전에 들어가거나 업데이트하거나 연결이 끊기는 컴퓨터는 아무 소리 없이 전략을 멈춰 세웁니다. 게다가 여기 공개된 기록에서 진입 대부분은 책상 앞에 앉아 있는 시간 바깥에 떨어집니다.
EA에는 어느 정도의 VPS 지연이 필요한가요?
노리는 폭에 따라 달라집니다. 한 자릿수 핍을 쫓는 스캘핑 전략은 브로커와 같은 데이터센터 지역을 써야 합니다. 이 카탈로그는 지연 측정치를 공개하지 않으므로, 거기에 밀리초 수치를 붙이지는 않겠습니다. 몇 시간씩 들고 있는 전략이라면 수백 밀리초는 영향을 받지 않으며, 여기 있는 기록은 모두 한 시간 넘게 보유합니다.
MetaTrader에 내장된 가상 호스팅은 VPS와 같은 것인가요?
목적은 같고 방식이 다릅니다. MetaTrader 안에서 호스팅된 터미널을 임대하고 차트와 EA의 스냅샷을 옮겨 줍니다. 간단하지만 한 번 복사하고 끝입니다. 통상적인 VPS는 직접 관리하는 완전한 Windows 기계이며, 커스텀 파일이나 터미널 여러 개가 필요할 때 쓰는 쪽이 그것입니다.
VPS를 쓰면 EA가 더 많이 벌어 주나요?
아닙니다. 정지 시간을 없애고 주문이 지나갈 거리를 줄여 줄 뿐, 전략 자체는 건드리지 않습니다. 달라지는 것은 백테스트가 담고 있는 거래와 계좌가 실제로 체결한 거래 사이의 간격입니다.
호스팅된 터미널이 아직 거래 중인지 어떻게 확인하나요?
거래 목록으로는 확인되지 않습니다. 조용한 전략과 죽은 터미널은 몇 주 동안 똑같이 빈 화면을 보여 주기 때문입니다. TerminalInfoInteger(TERMINAL_CONNECTED)를 타이머로 기록하고, 심박이 사라지면 경보를 울리십시오.

관련 글