분류
기술
난이도
중급
사용 상황
백테스트EA 평가

틱 데이터

틱 데이터는 한 종목에서 일어난 모든 개별 가격 변화를 시각과 매수·매도 호가까지 그대로 남긴 기록이며, MT5는 봉과 봉 사이의 경로를 지어내는 대신 «실제 틱 기반의 모든 틱» 모델에서 바로 이 기록을 재생한다.

다른 표현: 틱 히스토리, 실제 틱 데이터

업데이트일 · 검토일

쉽게 말하면

봉 데이터는 봉 하나에 네 개의 가격만 남긴다. 시가, 고가, 저가, 종가다. 틱 데이터는 그 사이의 모든 것을 남긴다 — 모든 가격 변화를 순서대로, 그 순간에 서 있던 스프레드와 함께. 둘의 차이는 거래가 봉 안에서 열리고 닫힐 때에만 무언가를 결정하는데, 바로 그 자리가 대부분의 EA 마케팅이 사는 곳이다.

왜 중요한가

백테스트는 우리가 건네준 가격으로만 매매할 수 있다. 봉 데이터는 테스터에게 봉당 네 개의 가격을 건네고 그 사이의 경로는 지어내게 두므로, 봉 안에서 진입하고 청산하는 전략은 아무도 기록한 적 없는 경로에 대해 답하는 셈이다. 틱 데이터는 그 창작을 기록으로 바꾼다. 그런데 우리가 직접 돌려 본 실행들은 불편한 두 번째 사실을 덧붙인다. 틱을 어디서 가져오느냐가, 지어낸 틱을 기록된 틱으로 바꾸는 것보다 결과를 훨씬 더 크게 움직인다.

  • 봉 안에서 벌어진 사건의 순서를 확정한다. 실제 경로가 목표가보다 손절을 먼저 건드렸다면, 순서를 반대로 지어낸 경로는 그 거래의 부호를 뒤집는다.
  • 매 순간 실제로 서 있던 스프레드를 함께 나른다. 여기서 돌린 한 USD/JPY 실제 틱 실행에서 틱 파일에는 10에서 350포인트 사이에 227개의 서로 다른 스프레드 값이 들어 있었고, 그 범위를 대신할 고정값은 하나도 없다.
  • 터미널에 실제 재고를 요구한다. 여기 공개된 열한 건의 실제 틱 실행은 모두 가져온 아카이브로 만든 커스텀 심볼을 필요로 했고, 카탈로그의 브로커 기본 종목 중 실제 틱 모델까지 도달한 것은 하나도 없다.
  • 가장 큰 지렛대는 아니다. 모델을 고정한 채 데이터 출처만 바꿨더니 한 실행의 프로핏 팩터가 1.35에서 1.13으로 갔고, 같은 출처를 생성된 틱에서 실제 틱으로 올리자 거기서 0.02가 더 움직였다.

전략 검증에 쓰는 법

어디에 쓰이나

  • 전략 테스터 → Settings → Modelling. 여기서 «실제 틱 기반의 모든 틱»(Every tick based on real ticks, Model 4)은 기록된 경로를 재생하고, 그냥 «모든 틱»(Every tick, Model 0)은 M1 봉에서 경로를 만들어 낸다.
  • View → Symbols(Ctrl+U) → Ticks 탭. 테스터가 손대기 전에 여기서 해당 종목의 틱 히스토리를 기간을 지정해 요청한다.
  • 가져온 틱 아카이브로 커스텀 심볼을 만드는 일. 이 카탈로그의 모든 실제 틱 실행이 데이터를 얻은 방식이다.
  • 완성된 전략을 두 번째 틱 출처에서 다시 돌려, 그 결과가 규칙의 것인지 데이터의 것인지 확인하는 일.

신뢰할 수 있는 결과의 모습

  • 상품 목록이 틱 출처와 테스터 모델을 같은 호흡으로 밝혀서, 독자가 그 실행을 믿는 대신 재현할 수 있다.
  • 틱 히스토리가 구간을 실제로 덮는다. 여기 공개된 모든 실행은 한 건을 빼고 2019-01-01에 시작하며, 그만큼 거슬러 올라가는 출처 위에서 돌았다.
  • 매수 호가와 매도 호가가 모두 임포트에서 살아남아, 테스터가 대신 끼워 넣은 상수가 아니라 기록된 스프레드로 체결한다.
  • 두 번째 출처가 같은 결과를 재현한다 — 그리고 재현하지 못하면 상품 목록이 어느 쪽이 실패했는지 밝힌다.

경고 신호

  • 출처를 밝히지 않은 «실제 틱 데이터». 결과를 결정하는 것은 바로 그 밝히지 않은 절반이다.
  • 실제 틱의 증거인 양 흔드는 히스토리 품질 백분율. 이 카탈로그의 한 Model 0 실행은 100%를 찍었다.
  • 출처의 틱보다 먼저 시작하는 테스트 구간. 초기 몇 년을 조용히 보간에 넘겨준다.
  • 틱 데이터 위에 설정한 고정 스프레드. Model 4에서 테스터는 그 항목을 어차피 무시하므로, 그 설정은 독자보다 작성자를 더 오래 속인다.

백테스트와 실거래의 차이

  • 틱 데이터는 가격 경로를 고정할 뿐 체결에는 손대지 않는다. 지연, 리쿼트, 부분 체결, 브로커 자체의 정책은 여전히 테스터 밖에 있다.
  • 기록된 스프레드는 그것을 기록한 쪽의 것이다. 같은 순간을 호가한 다른 브로커의 값은 상당히 다를 수 있으며, 주요 세션 밖에서 특히 그렇다.
  • 슬리피지는 파일에 아예 들어오지 않는다. 테스터는 기록된 가격으로 체결하지만, 실거래 주문은 아주 조금 늦게 도착해 거기 있는 것을 받는다.
  • 남은 격차는 가격이 아니라 체결에 관한 것이라고 보면 된다. 봉 데이터가 남기는 격차보다 훨씬 좁고 훨씬 예측 가능한 격차다.

권장 검증 방법

  1. 1먼저 구간 전체에 대해 해당 종목의 틱 히스토리를 요청하고, 그다음 Ticks 탭에서 실제로 반환된 범위가 그 구간을 덮는지 확인하라.
  2. 2출처 이름 옆에 모델 번호를 적어라. «모든 틱»과 «실제 틱 기반의 모든 틱»은 같은 드롭다운에서 한 줄 차이로 붙어 있지만 서로 다른 실험을 가리킨다.
  3. 3Model 4에서는 테스터의 스프레드 항목을 건드리지 말고 수수료를 손으로 더하라. 여기서 Spread=10과 Spread=100을 돌렸더니 틱 단위 스프레드가 동일했다.
  4. 4그 수치를 믿기 전에 두 번째 출처에서 다시 돌려라. 출처 간의 불일치는 성가신 일이 아니라 그 자체가 결과다.

예시

EA 하나, 구간 하나, 세 번의 실행. TidewellSlack은 2019-01-01부터 M15에서 GBP/JPY를 매매하며, 상품 목록이 습관적으로 하나로 뭉뚱그리는 두 가지 — 틱이 어디서 왔는가, 그리고 테스터가 그것을 재생하는가 지어내는가 — 를 떼어 내기 위해 세 가지 방식으로 돌렸다.

브로커 M1 히스토리, Model 0(공개된 실행)
PF 1.35, 최대 드로다운 9.92%
거래 303건, 히스토리 품질 99%, 우리 게이트를 통과한다.
가져온 틱, 여전히 Model 0
PF 1.13, 최대 드로다운 18.18%
거래 351건. 바뀐 것은 출처뿐이다.
가져온 틱, Model 4 실제 틱
PF 1.11, 최대 드로다운 18.20%
거래 345건. 바뀐 것은 모델뿐이다.

세 실행 중 둘이 우리 게이트에서 떨어졌고, 살아남은 하나는 생성된 틱으로 돌린 실행이다. 그래서 상품 목록은 «실제»라는 형용사 대신 자신의 종목명과 모델 번호를 공개한다.

계산 출처 교체: 프로핏 팩터 −0.22, 드로다운 +8.26포인트. 그 위에 얹은 실제 틱 업그레이드: −0.02와 +0.02.

결과 데이터 출처는 틱 모델보다 결과를 열한 배 더 멀리 움직였다

해석하는 법

틱 데이터는 먼저 보유 시간에 비추어 읽고, 그다음 출처에 비추어 읽어라. 봉에 견줘 목표가 촘촘할수록 결과의 더 많은 부분을 경로가 결정했다 — 다만 그 결과가 다른 곳에서도 통할지는 출처가 결정한다.

구간 의미
일중·스캘핑 EA, 실제 틱, 출처 명시 방어 가능한 경우다. 경로가 기록되어 있고, 낯선 사람도 상품 목록만으로 그 실행을 재현할 수 있다.
여러 날 보유하는 스윙 시스템에 봉에서 생성한 틱 대체로 충분하다. 한 주 동안 들고 가는 거래를 봉 하나의 내부 경로가 결정하는 일은 드물다.
실제 틱이지만 출처가 하나뿐 절반짜리 답이다. 우리 GBP/JPY 실행은 규칙도 구간도 똑같은 채로 한 출처에서는 통과하고 다른 출처에서는 떨어졌다.
출처도 모델 번호도 없는 «실제 틱» 검증 불가능하며, 빠진 두 항목이 바로 그 수치를 결정하는 두 항목이다.
  • 모델을 고르기 전에 Ticks 탭이 반환한 범위부터 확인하라. 출처의 틱보다 먼저 시작하는 구간은 초기 몇 년을 보간으로 되돌리면서도 실행 전체에 대해 하나의 수치만 보고한다.
  • 매수 호가와 매도 호가를 지켜라. Model 4에서 테스터는 틱 파일의 스프레드를 쓰고 입력한 숫자는 무시한다 — 한 USD/JPY 실행에서 10에서 350포인트 사이 227개의 서로 다른 값이 나왔고, 그중 설정값은 하나도 없었다.
  • 스프레드를 아예 재는 사람이 얼마나 드문지 헤아려 보라. 여기 공개된 23건의 실행 중 측정된 평균을 실은 것은 정확히 하나, 테스터 안에서 기록한 19.14포인트이며 그 실행은 Model 0을 쓴다.
  • 두 번째 출처를 잡일이 아니라 실험으로 다뤄라. 일치는 틱 데이터 백테스트를 증거로 승격시키고, 불일치는 그보다 더 많은 것을 가르쳐 준다.

여기 공개된 23건의 실행 중 열한 건이 Model 4를, 열두 건이 Model 0을 쓴다. 그리고 Model 4 실행은 모두 종목명에 _DUKA 접미사를 달고 있다. 가져온 틱은 커스텀 심볼 위에서만 살 수 있기 때문이다. 그 열한 건 중 열 건의 매니페스트는 가격 출처 항목에 여전히 브로커의 M1 히스토리를 적고 있는데, 옮겨 나온 계보에서 남은 흔적이다. 모델 번호와 종목명을 읽어라. 그 주위의 산문은 더 빨리 낡는다.

흔한 오해

틱 모델은 따지면서 틱 출처는 넘어가는 것

모델은 드롭다운 한 줄이지만 출처는 아예 다른 시장의 기록이다. 위의 GBP/JPY 실행에서 출처를 바꾸자 프로핏 팩터가 0.22 깎이고 드로다운이 두 배가 된 반면, 같은 출처에서의 실제 틱 업그레이드는 0.02를 깎았다. 모델은 밝히면서 출처는 밝히지 않는 상품 목록은 더 작은 절반만 말해 준 것이다.

히스토리 품질 수치를 실제 틱의 증거로 읽는 것

그 백분율은 히스토리가 구간을 얼마나 완전하게 덮었는지를 재는 것이지 어떤 모델이 그 결과를 만들었는지를 재지 않는다. KestrelHover 뒤의 Model 0 그림자 실행은 100%를 찍었고, 이는 실제 틱으로 돌린 형제 실행과 같은 수치다. 두 모델 모두가 도달할 수 있는 숫자는 둘을 구별하지 못한다.

틱 데이터 위에 고정 스프레드를 설정하는 것

Model 4에서 테스터는 틱 파일 자체의 매도 호가에서 매수 호가를 뺀 값으로 체결하고 그 항목은 완전히 무시한다. 한 USD/JPY 테스트를 Spread=10으로, 다시 Spread=100으로 돌렸더니 틱 단위 스프레드가 동일하게 나왔다. 그 설정은 실행에서 아무것도 바꾸지 않으면서, 작성자가 그 실행이 무엇을 쟀다고 믿는지를 조용히 바꾼다.

틱이 덮지 않는 구간을 테스트하는 것

틱이 2019년에 시작하는 출처 위에서 2015년부터 테스트하면 초기 몇 년은 보간하고 뒤쪽은 재생한 다음, 그 둘을 하나의 결과로 보고한다. Ticks 탭은 자신이 보유한 범위를 밝히지만, 테스터는 당신의 구간이 그것을 넘어섰다고 결코 경고하지 않는다.

실제 틱이 실거래와의 격차를 메워 주리라 기대하는 것

가격 쪽 절반은 메우지만 체결 쪽 절반은 그대로 둔다. 지연, 리쿼트, 부분 체결, 브로커의 정책은 시뮬레이션 밖에 남으므로, 실제 틱 실행도 체결이 어땠을지에 대한 낙관적인 서술로 남는다 — 다만 실제로 일어난 경로 위에 세워진 낙관적인 서술이다.

자세히

세 번의 실행, 한 번에 하나씩만 바꾸기

TidewellSlack — GBP/JPY, M15, 2019-01-01부터거래 수프로핏 팩터최대 드로다운히스토리 품질우리 게이트
브로커 M1 히스토리, Model 0(공개된 실행)3031.359.92%99%PASS
가져온 틱, Model 03511.1318.18%99%FAIL
가져온 틱, Model 4 실제 틱3451.1118.20%100%FAIL

첫째 줄에서 둘째 줄로 갈 때 바뀐 것은 데이터뿐이다. 규칙도 구간도 테스터 모델도 같다. 프로핏 팩터는 0.22 떨어지고 드로다운은 대략 두 배가 된다. 둘째 줄에서 셋째 줄로 갈 때 바뀐 것은 모델뿐으로, 같은 아카이브의 생성된 틱을 기록된 틱으로 올린 것이다. 프로핏 팩터는 0.02 떨어지고 드로다운은 0.02포인트 움직인다. 가져온 틱을 쓴 두 줄은 모두 우리 게이트에서 떨어지고, 살아남은 것은 생성된 틱으로 돌린 실행이다.

그 순서가 보편적인 것은 아니며, 그 점이 정직한 대목이다. KestrelHover는 반대로 갔다. 실제 틱에서 거래 291건에 프로핏 팩터 1.33, 브로커의 생성된 틱에서는 거래 292건에 1.30이 나왔고 두 실행 모두 통과했다. 어떤 때는 출처가 이야기의 전부이고 어떤 때는 잡음일 뿐이다 — 그리고 그것은 두 번 돌려 봐야만 알 수 있다. TidewellSlack의 상품 페이지를 그 옆에 두고 읽으면 요점은 저절로 드러난다.

실제 틱에는 커스텀 심볼이라는 대가가 붙는다

여기 공개된 23건의 실행 중 열한 건이 Model 4를, 열두 건이 Model 0을 쓴다. Model 4 실행은 하나도 빠짐없이 이름이 _DUKA로 끝나는 종목을 매매하는데, 가져온 틱은 브로커 자신의 종목 위에서 살 수 없기 때문이다 — Symbols 창에서 커스텀 심볼을 만들고 거기에 아카이브를 임포트해야 한다. 이 카탈로그에서 브로커 기본 종목이 실제 틱 모델까지 도달한 적은 한 번도 없으며, 공개된 백테스트가 그토록 자주 이 모드를 쓰지 않는 실질적인 이유가 여기에 있다. 모드는 공짜지만 그 뒤의 재고는 공짜가 아니다.

이는 백분율을 믿는 흔한 지름길도 무너뜨린다. KestrelHover 뒤의 Model 0 그림자 실행은 히스토리 품질 100%를 찍었고 이는 실제 틱으로 돌린 형제 실행과 같은 수치이므로, 그 숫자로는 둘을 구별할 수 없다. 모델링 품질은 다른 질문 — 히스토리가 구간을 얼마나 완전하게 덮었는가 — 에 답하며, 두 모델 모두에 대해 답한다.

아무도 확인하지 않는 나머지 절반, 스프레드

틱 데이터의 두 번째 선물은 기록된 매수·매도 호가이며, 가장 자주 버려지는 것도 바로 그것이다. Model 4에서 테스터는 각 틱 자체의 매도 호가에서 매수 호가를 뺀 값으로 체결하고 설정한 스프레드는 무시한다. 한 USD/JPY 테스트를 Spread=10으로, 다시 Spread=100으로 돌렸더니 틱 단위 스프레드가 동일하게 나왔고, 10에서 350포인트에 걸친 227개의 서로 다른 값이 들어 있었다. 그 항목은 조작 장치처럼 생겼지만 주석처럼 행동한다.

그렇게 생긴 비용을 재는 사람도 거의 없다. 여기 23건의 실행 중 측정된 스프레드 평균을 밝힌 것은 정확히 하나 — 테스터 안에서 기록한 19.14포인트 — 이며 그 실행은 실제 틱이 아니라 Model 0을 쓴다. 그러니 우리 것 몇 건을 포함한 대부분의 실제 틱 주장을 정직하게 읽으면, 경로는 기록되었지만 그 경로를 걷는 비용은 한 번도 합산되지 않았다는 뜻이다.

자주 묻는 질문

EA를 백테스트하려면 실제 틱 데이터가 꼭 필요한가요?
전략이 얼마나 오래 보유하는지에 달려 있습니다. 하루 안에 진입하고 청산하는 것이라면 실제 틱을 써야 합니다. 봉 내부 경로가 너무 많은 거래를 결정하기 때문에 가정으로 넘길 수 없습니다. 며칠씩 들고 가는 스윙 시스템은 차이를 거의 느끼지 못합니다. 어느 쪽이든 출처는 반드시 밝히세요. 우리 GBP/JPY 테스트에서 출처 변경은 프로핏 팩터를 0.22 움직였고 실제 틱 업그레이드는 0.02 움직였습니다.
MT5의 틱 데이터는 어디서 오나요?
두 곳입니다. MetaTrader 브로커는 틱 히스토리를 자사 서버에 저장하며, 터미널은 View → Symbols(Ctrl+U) → Ticks에서 종목과 기간을 지정해 내려받습니다. 독립 공급자는 틱 아카이브를 배포하고, 이를 커스텀 심볼로 임포트합니다. 이 카탈로그의 모든 실제 틱 실행은 두 번째 경로를 택했고, 그래서 하나같이 종목명에 _DUKA 접미사를 달고 있습니다.
두 틱 출처가 백테스트 결과를 다르게 내놓는 이유는 무엇인가요?
각 출처는 한 거래 장소의 기록이고, 가격은 — 특히 스프레드는 — 장소마다 다르기 때문입니다. 같은 GBP/JPY EA를 같은 구간에서 돌렸을 때 브로커 자체 히스토리에서는 프로핏 팩터 1.35, 가져온 아카이브에서는 1.13이 나왔고 최대 드로다운은 9.92%에서 18.18%로 올랐습니다. 두 출처를 비교하는 것은 가장 값싼 강건성 테스트입니다.
실제 틱 데이터를 쓰면 백테스트가 정확해지나요?
가격 계열이 충실해질 뿐이며, 그것은 같은 말이 아닙니다. 체결은 여전히 테스터 밖에 있고, 어떤 출처를 골랐는지가 여전히 결과를 지배합니다. 두 방식 모두로 돌려 본 우리 EA 두 개는 정반대의 자리에 떨어졌습니다. 하나는 거의 움직이지 않았고 — 실제 틱에서 거래 291건에 프로핏 팩터 1.33, 생성된 틱에서 거래 292건에 1.30 — 다른 하나는 출처가 바뀌는 순간 게이트에서 떨어졌습니다.
공개된 백테스트가 어떤 틱 데이터를 썼는지 어떻게 알 수 있나요?
세 항목을 순서대로 보세요. 테스터가 인쇄한 모델 이름, 그 실행이 매매한 종목명, 그리고 그 종목 뒤의 공급자입니다. 커스텀 심볼 이름은 대개 틱을 임포트했다는 단서입니다. 백분율과 형용사만 있고 이 셋이 하나도 없는 상품 목록이라면, 그 주장은 거짓이라기보다 미검증으로 다루세요.