BJF TRADING GROUP · 가이드
언제 거래할지는 전략이 결정합니다. 어떤 가격에, 얼마나 빠르게 체결할지는 브로커가 결정합니다. 이 가이드에서는 체결 품질이 무엇인지, 어떤 수치로 이를 설명하는지, 어떤 패턴이 단순한 불운이 아니라 개입을 가리키는지, 내 주문에서 이를 어떻게 측정하는지, 그리고 결과를 어떻게 활용할지 설명합니다.
브로커 체결 품질이란 브로커가 주문을 얼마나 빠르게, 호가에 얼마나 가깝게, 얼마나 공정하게 체결하는지를 뜻합니다. 거래 내역에는 드러나지 않지만 측정할 수 있습니다. 주문별 체결 시간, 부호 있는 슬리피지, 체결 시점의 스프레드, 독립 가격 피드와의 편차를 측정하면 됩니다. 이 가이드에서는 어떤 수치가 중요한지, 정상적인 체결의 경계가 어디인지, 실제 데이터로 내 브로커를 다른 트레이더들의 브로커와 어떻게 비교하는지 설명합니다.
이 가이드의 내용
요약: 체결 품질이란 브로커가 주문 요청을 얼마나 정확하게, 빠르게, 공정하게 체결로 바꾸는지를 말합니다. 체결 시간, 호가 대비 슬리피지, 체결 시점의 스프레드, 그리고 그 순간 브로커 가격이 전체 시장과 어떻게 비교되는지로 측정합니다.
트레이딩 터미널은 결과만 보여 줍니다. 진입 가격, 청산 가격, 손익입니다. 그 과정은 보여 주지 않습니다. 주문이 전송된 순간부터 체결되는 순간까지 브로커는 50 ms가 걸릴 수도, 500 ms가 걸릴 수도 있으며, 가격은 유리하게 또는 불리하게 움직일 수 있고, 스프레드가 벌어질 수도 있습니다. 스윙 트레이딩에서는 이런 세부 사항이 잡음에 불과합니다. 하지만 스캘핑, 뉴스 트레이딩, 모든 종류의 차익거래에서는 이것이 전부입니다. 거래당 2포인트를 버는 전략은 거래당 3포인트의 비용을 발생시키는 브로커에서 살아남을 수 없습니다.
체결 품질은 백테스트와 실거래 사이의 차이이기도 합니다. 백테스트는 고정된 지연 후 호가에 체결된다고 가정합니다. 실거래에서는 브로커의 체결이 주는 결과를 그대로 받게 됩니다. 체결을 측정해야 실제로 둘 중 어느 쪽으로 거래하고 있는지 알 수 있습니다. 틱 데이터로 테스트한다면 백테스트용 외환 틱 데이터 가이드에서 백테스트를 최대한 정직하게 만드는 방법을 확인하십시오.
| 지표 | 정의 | 중요한 이유 |
|---|---|---|
| 체결 시간 | 주문 요청부터 체결까지의 밀리초로, 진입과 청산을 각각 측정합니다. | 지연이 길수록 체결 전에 가격이 더 많이 움직일 수 있습니다. 빠른 전략일수록 먼저 우위를 잃습니다. |
| 부호 있는 슬리피지 | 체결 가격에서 요청 가격을 뺀 값(포인트)으로, 음수는 불리하다는 뜻이 되도록 부호를 붙입니다. | 슬리피지 자체는 정상입니다. 대부분 음수인 슬리피지는 정상이 아닙니다. |
| P95 체결 시간 | 전체 체결의 95%가 이 시간 이내에 이루어지는 값입니다. | 평균적으로는 빠르지만 지연이 자주 튀는 브로커를 잡아냅니다. 이런 지연은 대개 가장 나쁜 순간에 발생합니다. |
| 체결 시점의 스프레드 | 주문 체결 시점의 ask에서 bid를 뺀 값으로, 해당 심볼의 평균과 비교합니다. | 거래하는 순간에만 벌어지는 스프레드는 고정 스프레드 백테스트에서는 결코 보이지 않는 비용입니다. |
| 기준 편차 | 같은 순간 브로커 가격과 독립 기준 피드 사이의 차이입니다. | 브로커 가격이 시장과 일치했는지, 아니면 자기 자신과만 일치했는지를 보여 줍니다. |
| 시장 이탈 체결 | 요청 시점부터 체결 시점까지 제시된 모든 bid와 ask 범위를 벗어난 체결입니다. | 한 번도 제시된 적 없는 가격에 체결되는 것은 가장 명확한 위험 신호입니다. |
| 리쿼트와 거부 | 새 가격으로 응답받거나, 거부된 후 재전송된 주문입니다. | 수익성 있는 진입에서 리쿼트가 잦으면 가장 좋은 거래를 놓치게 됩니다. |
| 호가 멈춤 | 시장은 계속 움직이는데 브로커의 호가 스트림이 끊긴 구간입니다. | 호가가 멈춘 동안 체결된 주문은 오래된 가격 기준으로 체결됩니다. |
슬리피지 계산 방법과 줄이는 방법 등 슬리피지 자체를 더 깊이 알아보려면 외환 슬리피지 해설을 참조하십시오.
모든 주문을 요청 가격 그대로 0밀리초에 체결하는 브로커는 없습니다. 따라서 질문은 “슬리피지가 있는가”가 아니라 “체결이 공정한 시장처럼 작동하는가”입니다. 다음은 두 경우를 구분하는 패턴입니다.
| 패턴 | 정상 체결 | 개입 가능성 |
|---|---|---|
| 슬리피지 방향 | 대체로 균형적입니다. 유리한 슬리피지와 불리한 슬리피지가 비슷하게 발생합니다. | 한쪽으로 치우칩니다. 슬리피지 대부분이 불리하게 발생하며, 특히 수익성 있는 진입에서 그렇습니다. |
| 체결 시간 | 안정적이며 뉴스 시에만 가끔 튑니다. | 일부 계좌에서만 느리거나, 거래의 한쪽에서만 느립니다. 손실 거래는 빠르게 청산하고 수익 거래는 느리게 청산합니다. |
| 손절 | 다른 거래처에서도 실제로 기록된 가격에 의해 발동됩니다. | 어떤 기준 피드에도 나타나지 않는 짧은 급등락(Phantom spike)에 의해 발동됩니다. |
| 호가 | 연속적이며, 유동성이 낮은 심볼에서만 잠깐씩 끊깁니다. | 시장이 움직이는 동안 호가 스트림이 멈추고, 멈춘 사이에 주문이 체결됩니다. |
| 리쿼트 | 드물며 양방향으로 발생합니다. | 수익이 날 진입에서는 잦고, 나머지에서는 드뭅니다. |
이러한 패턴은 모두 무해한 원인으로도 생길 수 있습니다. 하지만 여러 심볼에 걸쳐 수백 건의 주문에서 나타나고, 같은 전략을 다른 브로커에서 실행하면 사라지는 한쪽으로 치우친 패턴은 무해한 이유로 설명하기 훨씬 어렵습니다.
모든 브로커가 같은 방식으로 수익을 내는 것은 아니며, 비즈니스 모델이 체결 방식을 결정합니다.
딜링 데스크에는 지연 플러그인부터 가상 딜러 설정까지 이러한 목적으로 만들어진 도구가 있습니다. 브로커 체결 투명성 가이드에서 A-book, B-book, 하이브리드 라우팅, 라스트 룩을 자세히 다루고, 브로커가 사용하는 차익거래 방지 플러그인 글에서 그 작동 방식을 설명합니다. 여기서 핵심은 실용적인 점입니다. 브로커 웹사이트만으로는 어떤 체결을 받게 될지 알 수 없습니다. 오직 측정으로만 알 수 있습니다.
체결을 제대로 측정하려면 네 가지 요소가 필요합니다. 각 요소는 단순한 거래 내역이 남기는 빈틈을 하나씩 메워 줍니다.
1
2
3
4
이 데이터로 주문마다 각 방향의 체결 시간, 부호 있는 슬리피지, 체결 시점의 스프레드, 기준 편차를 계산한 다음, 임계값을 넘는 주문에 플래그를 지정합니다. 내보낸 거래 내역으로 직접 계산하는 것은 주문 몇 건이라면 가능하지만 실거래 전략에서는 현실적이지 않습니다. 그래서 당사는 이 기능을 SharpTrader에 내장했습니다.
보편적인 임계값은 없습니다. 브로커 바로 옆 VPS에서 금을 스캘핑하는 트레이더와 가정용 인터넷으로 스윙 트레이딩을 하는 트레이더는 전혀 다른 환경에 있습니다. 아래는 Broker Intervention Detection에서 사용하는 기본값으로, 브로커와 가까운 VPS에서 운용하는 단기 전략에 적합한 출발점입니다.
| 검사 | 기본 임계값 | 참고 |
|---|---|---|
| Slow execution | 진입 또는 청산 시 > 200 ms | VPS가 브로커 서버와 멀리 떨어져 있다면 값을 높이십시오. |
| Excessive slippage | 불리한 방향으로 > 10포인트 | 심볼에 맞게 조정하십시오. 10포인트는 EURUSD에서는 큰 값이지만 지수에서는 작은 값입니다. |
| Spread spike | 심볼 평균의 ≥ 3배이면서 ≥ 1포인트 넓음 | 뉴스 및 롤오버 전후에는 급등이 예상됩니다. |
| Phantom spike | 기준 피드에 나타나지 않는 ≥ 2포인트의 불리한 움직임 | 기준 피드가 필요합니다. |
| Quote freeze | 기준 피드에 틱이 들어오는 동안 > 2,000 ms 동안 호가 없음 | 유동성이 낮은 심볼은 자연스럽게 멈출 수 있으므로 기준 피드와 비교하십시오. |
| Asymmetric latency | 느린 쪽이 빠른 쪽의 ≥ 3배이면서 ≥ 50 ms 더 김 | 수익 거래의 청산이 느린지 주의 깊게 살펴보십시오. |
| Rejected & resent | 직전 10초 이내에 같은 심볼·같은 방향 주문이 거부됨 | 먼저 거래량과 스톱 레벨을 확인하십시오. |
나쁜 체결 한 건으로는 아무것도 증명되지 않습니다. 하지만 한 심볼에서 연속 20건의 나쁜 체결은 주목할 가치가 있습니다. 가장 간단하면서도 유용한 검정은 슬리피지 방향에 관한 것입니다. 공정한 체결에서 슬리피지는 동전 던지기처럼 유리하게 발생할 확률과 불리하게 발생할 확률이 비슷합니다. 최근 슬리피지가 발생한 20건 중 18건이 불리했다면, 공정한 동전에서 그런 결과가 나올 확률은 약 0.02%입니다.
Broker Intervention Detection은 이 원리를 Asymmetric slippage 검사로 적용합니다. 전략의 최근 50건 체결 중 슬리피지가 발생한 체결의 최소 65%가 불리했고 이항 검정 결과가 p = 0.05 미만이면 이 패턴에 플래그를 지정합니다. 모든 패턴에 같은 원칙을 적용하십시오. 횟수를 세고, 우연으로 나올 수 있는 결과와 비교하고, 결론을 내리기 전에 다른 브로커나 커뮤니티와 비교하십시오.
내 주문은 내 계좌에 대해 알려 줍니다. 많은 트레이더의 주문은 브로커에 대해 알려 줍니다. 여러 터미널의 체결 데이터를 익명으로 모으면 개별 연결의 잡음은 평균화되고 브로커의 실제 동작만 남습니다. 일반적인 체결 시간과 느린 구간의 체결 시간, 슬리피지 방향, 시장 이탈 체결 빈도 등입니다. 커뮤니티에서는 빠르고 공정한데 나에게만 느린 브로커라면 내 환경이 원인일 가능성이 높고, 모두에게 느리고 한쪽으로 치우친 브로커라면 브로커가 원인일 가능성이 높습니다.
집계 데이터에는 안전장치가 필요합니다. 계좌 번호나 이름을 수집하지 않고, 최소 트레이더 수와 주문 수를 넘는 경우에만 공개하며, 특정 사례를 지목하는 보고서는 검토를 거쳐야 합니다.
Broker Execution Scorecard는 SharpTrader 터미널에서 수집한 커뮤니티 데이터가 공개되는 곳입니다. 스크린샷의 데모 브로커를 예로 읽는 법을 설명합니다. 스크린샷의 브로커는 예시이며, 수치는 실제 브로커가 아닌 테스트 환경에서 나온 것입니다.




다음 순서로 패널을 읽으면 대개 1분 안에 상황이 명확해집니다.
브로커는 최소 설치 수와 주문 수를 넘는 경우에만 Scorecard에 표시됩니다. 이상 비율은 진단 신호일 뿐 위반의 증거가 아닙니다. 회원 보고서는 자동 탐지와 별도로 집계됩니다. 보고서는 주장이고, 플래그는 측정입니다.
당사는 이 워크플로의 두 부분을 모두 SharpTrader에 내장했습니다.


동영상, 2:22: 모듈과 Scorecard의 실제 작동 모습.
모든 주문의 체결 시간, 부호 있는 슬리피지, 기준 편차, 이름이 붙은 검사와 커뮤니티 비교까지 제공합니다.
브로커 서버 가까이의 VPS에서 운용하는 단기 전략이라면 체결 시간 중앙값이 약 150~200 ms 미만이고 P95가 그보다 크게 높지 않은 것이 일반적입니다. 중앙값보다 더 중요한 것은 안정성과 대칭성입니다. 진입과 청산, 수익 거래와 손실 거래에서 속도가 같아야 합니다.
그것만으로는 아닙니다. 공정한 체결에서도 슬리피지는 양방향으로 발생합니다. 의미 있는 수의 주문에 걸쳐 슬리피지 대부분이 불리하게 발생할 때 경고 신호가 됩니다.
브로커 피드에만 나타나고 독립 기준 피드에는 나타나지 않는 짧은 불리한 가격 급등락입니다. 이런 급등락으로 손절이 발동되었다면, 다른 곳에서는 실제로 거래된 적 없는 가격에 손절이 걸린 것입니다.
슬리피지 방향을 판단하려면 심볼당 최소 30~50건의 슬리피지 발생 체결이 필요합니다. 지연 시간은 수십 건의 체결만으로도 일반적인 시간을 알 수 있지만, 느린 구간을 파악하려면 더 많은 데이터가 필요합니다.
측정은 수동적입니다. 청산된 주문과 호가를 읽기만 할 뿐입니다. 브로커에게 아무것도 보내지 않으며 주문 방식도 변경하지 않습니다.
규정은 감독 기관과 계좌 약관에 따라 다릅니다. 많은 약관이 급변하는 시장에서의 리쿼트와 슬리피지를 허용하지만, 수익을 내는 고객을 한쪽으로 불리하게 대우하는 것은 별개의 문제입니다. 주문별 증거를 보관하고 브로커의 약관과 감독 기관을 확인하십시오.
거래에는 위험이 따릅니다. 이 가이드는 교육용이며 투자 또는 법률 조언이 아닙니다. 탐지 결과는 진단 정보일 뿐 브로커 위반의 증거가 아닙니다.