틱 모델은 따지면서 틱 출처는 넘어가는 것
모델은 드롭다운 한 줄이지만 출처는 아예 다른 시장의 기록이다. 위의 GBP/JPY 실행에서 출처를 바꾸자 프로핏 팩터가 0.22 깎이고 드로다운이 두 배가 된 반면, 같은 출처에서의 실제 틱 업그레이드는 0.02를 깎았다. 모델은 밝히면서 출처는 밝히지 않는 상품 목록은 더 작은 절반만 말해 준 것이다.
틱 데이터는 한 종목에서 일어난 모든 개별 가격 변화를 시각과 매수·매도 호가까지 그대로 남긴 기록이며, MT5는 봉과 봉 사이의 경로를 지어내는 대신 «실제 틱 기반의 모든 틱» 모델에서 바로 이 기록을 재생한다.
다른 표현: 틱 히스토리, 실제 틱 데이터
업데이트일 · 검토일
봉 데이터는 봉 하나에 네 개의 가격만 남긴다. 시가, 고가, 저가, 종가다. 틱 데이터는 그 사이의 모든 것을 남긴다 — 모든 가격 변화를 순서대로, 그 순간에 서 있던 스프레드와 함께. 둘의 차이는 거래가 봉 안에서 열리고 닫힐 때에만 무언가를 결정하는데, 바로 그 자리가 대부분의 EA 마케팅이 사는 곳이다.
백테스트는 우리가 건네준 가격으로만 매매할 수 있다. 봉 데이터는 테스터에게 봉당 네 개의 가격을 건네고 그 사이의 경로는 지어내게 두므로, 봉 안에서 진입하고 청산하는 전략은 아무도 기록한 적 없는 경로에 대해 답하는 셈이다. 틱 데이터는 그 창작을 기록으로 바꾼다. 그런데 우리가 직접 돌려 본 실행들은 불편한 두 번째 사실을 덧붙인다. 틱을 어디서 가져오느냐가, 지어낸 틱을 기록된 틱으로 바꾸는 것보다 결과를 훨씬 더 크게 움직인다.
EA 하나, 구간 하나, 세 번의 실행. TidewellSlack은 2019-01-01부터 M15에서 GBP/JPY를 매매하며, 상품 목록이 습관적으로 하나로 뭉뚱그리는 두 가지 — 틱이 어디서 왔는가, 그리고 테스터가 그것을 재생하는가 지어내는가 — 를 떼어 내기 위해 세 가지 방식으로 돌렸다.
세 실행 중 둘이 우리 게이트에서 떨어졌고, 살아남은 하나는 생성된 틱으로 돌린 실행이다. 그래서 상품 목록은 «실제»라는 형용사 대신 자신의 종목명과 모델 번호를 공개한다.
계산 출처 교체: 프로핏 팩터 −0.22, 드로다운 +8.26포인트. 그 위에 얹은 실제 틱 업그레이드: −0.02와 +0.02.
결과 데이터 출처는 틱 모델보다 결과를 열한 배 더 멀리 움직였다
틱 데이터는 먼저 보유 시간에 비추어 읽고, 그다음 출처에 비추어 읽어라. 봉에 견줘 목표가 촘촘할수록 결과의 더 많은 부분을 경로가 결정했다 — 다만 그 결과가 다른 곳에서도 통할지는 출처가 결정한다.
| 구간 | 의미 |
|---|---|
| 일중·스캘핑 EA, 실제 틱, 출처 명시 | 방어 가능한 경우다. 경로가 기록되어 있고, 낯선 사람도 상품 목록만으로 그 실행을 재현할 수 있다. |
| 여러 날 보유하는 스윙 시스템에 봉에서 생성한 틱 | 대체로 충분하다. 한 주 동안 들고 가는 거래를 봉 하나의 내부 경로가 결정하는 일은 드물다. |
| 실제 틱이지만 출처가 하나뿐 | 절반짜리 답이다. 우리 GBP/JPY 실행은 규칙도 구간도 똑같은 채로 한 출처에서는 통과하고 다른 출처에서는 떨어졌다. |
| 출처도 모델 번호도 없는 «실제 틱» | 검증 불가능하며, 빠진 두 항목이 바로 그 수치를 결정하는 두 항목이다. |
여기 공개된 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(공개된 실행) | 303 | 1.35 | 9.92% | 99% | PASS |
| 가져온 틱, Model 0 | 351 | 1.13 | 18.18% | 99% | FAIL |
| 가져온 틱, Model 4 실제 틱 | 345 | 1.11 | 18.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을 쓴다. 그러니 우리 것 몇 건을 포함한 대부분의 실제 틱 주장을 정직하게 읽으면, 경로는 기록되었지만 그 경로를 걷는 비용은 한 번도 합산되지 않았다는 뜻이다.