단일 브로커 삼각 차익거래는 더 이상 일관된 수익을 내지 못합니다 — 브로커들은 크로스레이트 호가를 실시간으로 균등화합니다. 기회는 멀티 브로커 실행으로 이동했습니다. 이곳에서는 독립적인 유동성 공급자 사이에 실제 크로스레이트 불일치가 존재합니다. 이 이동은 레이턴시에 오염된 신호, 증가한 수수료 노출, 그리고 새로운 독성 흐름 분류 위험을 가져옵니다. 이 가이드는 전체 기술 아키텍처를 다룹니다.
삼각 차익거래는 두 개의 직접 호가에서 도출된 내재 크로스레이트가 실제로 제시된 크로스레이트와 다를 때, 세 통화쌍 사이의 일시적 불일치를 이용합니다. 통화 A로 시작해 B로 바꾸고, 다시 C로 바꾼 뒤 A로 돌아오면 효율적인 시장에서는 정확히 처음 금액으로 돌아와야 합니다. 더 많은 금액으로 돌아온다면, 그 차이가 차익거래 수익입니다.
EUR/USD, GBP/USD, EUR/GBP 세 쌍이 있을 때 무차익 조건은 다음을 요구합니다:
Example:
EUR/USD = 1.08500 GBP/USD = 1.27000
EUR/GBP implied = 1.08500 ÷ 1.27000 = 0.85433
If EUR/GBP quoted = 0.85200 (23 pips below implied):
Step 1: Sell EUR → buy USD at 1.08500 (1,000 EUR → 1,085 USD)
Step 2: Buy GBP with USD at 1.27000 (1,085 USD → 854.33 GBP)
Step 3: Sell GBP → buy EUR at 0.85200 (854.33 GBP → 1,002.74 EUR)
Net: 1,000 EUR → 1,002.74 EUR = +2.74 EUR before costs
이 사이클은 동시에 또는 거의 동시에 실행되어야 합니다 — 레그 사이의 지연은 방향성 노출을 만듭니다. 수익 창은 잘못된 가격이 지속되는 동안에만 존재합니다. 일반적으로 시장 유동성과 불일치의 원천에 따라 밀리초에서 몇 초까지 지속됩니다.
현대 리테일 브로커는 자동화된 크로스레이트 합성을 통해 실시간으로 크로스레이트 일관성을 강제합니다. EUR/USD 또는 GBP/USD가 업데이트되면 EUR/GBP도 동시에 재계산되고 다시 호가됩니다 — 마이크로초 단위입니다. 단일 브로커의 장부에서 발생하는 삼각 가격 오류는 리테일 수준의 실행 시스템이 이를 감지하고 행동하기보다 빠르게 가격 엔진에 의해 수정됩니다.
브로커의 가격 엔진은 직접 통화쌍으로부터 크로스레이트 호가를 실시간으로 수학적으로 도출합니다. EUR/USD가 업데이트되면 EUR/GBP도 동시에 재계산되고 다시 호가됩니다 — 마이크로초 이내입니다. 내재 크로스레이트와 실제 호가는 항상 정렬됩니다.
단일 계정 ECN/STP 브로커에서는 세 통화쌍 모두 같은 기반 유동성 풀에서 가격을 가져옵니다. 일시적인 EUR/GBP 가격 오류를 만드는 가격 이벤트는 동시에 EUR/USD와 GBP/USD도 업데이트합니다. 업데이트가 전파될 때쯤에는 세 호가가 모두 다시 일관됩니다.
단일 브로커 장부에 실제 불일치가 나타나는 드문 경우에도, 코로케이션된 100마이크로초 미만 시스템을 가진 기관 참여자가 리테일 수준 소프트웨어가 반응하기 전에 이를 닫습니다. 1–20ms의 리테일 VPS-브로커 레이턴시는 이에 맞설 수 없습니다.
단일 브로커 삼각 차익거래 백테스트는 지속적으로 겉보기 수익 기회를 보여줍니다. 실시간 실행에서는 수익성 있는 거래가 거의 0에 가깝습니다. 그 차이는 이렇습니다. 과거 틱 데이터는 잠깐 존재했던 가격 상태를 포착하지만, 실행 엔진은 체결이 처리되기 전에 수정된 가격을 봅니다.
단일 브로커 삼각 차익거래는 2026년에 실행 가능한 전략이 아닙니다. 수익성 있는 삼각 차익거래에는 독립적인 유동성 소스 사이의 실제 가격 불일치가 필요합니다 — 이는 곧 멀티 브로커 실행을 의미합니다.
| 역할 | 제공 항목 | 기능 |
|---|---|---|
| Broker A | EUR/USD + GBP/USD | 소프트웨어가 두 직접 통화쌍을 모두 모니터링하고 내재 EUR/GBP를 실시간으로 계산합니다. |
| Broker B | EUR/GBP (크로스레이트) | 실제 크로스레이트 호가를 제공합니다. 내재 가격과 실제 호가 사이의 격차가 모든 비용을 제외한 기준으로 임계값을 초과하면 거래가 실행됩니다. |
| 실행 | 동시 3레그 | EUR/USD와 GBP/USD는 Broker A에서 열리고, EUR/GBP는 Broker B에서 반대 방향으로 열립니다. 세 레그가 모두 체결되어야 합니다 — 부분 체결은 방향성 노출을 만듭니다. |
3브로커 구성은 각 브로커에 하나의 통화쌍을 배분하여 브로커 간 가격 오류 가능성을 극대화합니다. 하지만 부분 체결 위험도 극대화합니다 — 세 레그 중 하나가 타임아웃 내에 체결되지 않으면 나머지 두 레그는 헤지되지 않은 방향성 포지션을 만들며, 이를 명시적으로 닫아야 합니다.
| 브로커 | 통화쌍 | 실행 요건 |
|---|---|---|
| Broker A | EUR/USD | 빠른 FIX API 권장 — 첫 번째 레그 |
| Broker B | GBP/USD | 빠른 FIX API 권장 — 두 번째 레그 |
| Broker C | EUR/GBP | A와 B에서 계산한 내재 가격을 C의 실제 호가와 실시간으로 비교 |
단일 브로커에서 멀티 브로커로 이동하면 비용 구조가 증가합니다. 최소 수익 불일치는 고정되어 있지 않습니다 — 실시간 스프레드와 수수료 입력값으로부터 동적으로 계산되어야 합니다:
Where:
S(x) = half-spread at broker x (pips)
C(x) = commission per lot at broker x (account currency)
PipValue = pip value for EUR/GBP at configured lot size
SlippageBuffer = conservative slippage estimate per leg
Example (2-broker, 1 standard lot, EUR/GBP pip = $10.78):
S(A)=0.15, S(B)=0.25, C(A)=$3, C(B)=$4, Slippage=0.2 pips
MinDiscrepancy = 0.15 + 0.25 + [(3+4)/10.78] + 0.2
= 0.40 + 0.65 + 0.20 = 1.25 pips minimum to break even
동적으로 계산된 이 임계값보다 낮은 감지된 불일치는 모두 폐기해야 합니다. SharpTrader의 삼각 차익거래 모듈은 설정 시 고정된 값이 아니라 실시간 스프레드와 수수료 입력값을 기반으로 각 틱 이벤트마다 이 임계값을 계산합니다.
멀티 브로커 구성에서 감지된 삼각 불일치는 근본적으로 다른 두 가지 원인에서 발생할 수 있습니다. (1) 독립적인 LP 사이의 실제 크로스레이트 가격 오류, 또는 (2) 한 피드만 업데이트되고 다른 피드들은 아직 업데이트되지 않았기 때문에 생기는 일시적인 겉보기 가격 오류입니다. 이 두 원인은 신호 생성 순간에는 구별할 수 없습니다 — 하지만 실행 결과는 완전히 다릅니다.
다음 200ms 시퀀스를 살펴보십시오:
| 시간 | 이벤트 | 겉보기 불일치 |
|---|---|---|
| T = 0ms | EUR/USD가 모든 LP에서 3 pips 움직입니다. Broker A의 피드가 즉시 업데이트됩니다(빠른 연결). | 발생: 2.8 pip 삼각 불일치 |
| T = 0–80ms | Broker A는 새로운 EUR/USD를 보여줍니다. Broker C의 EUR/GBP는 아직 업데이트되지 않았습니다. 시스템이 “불일치”를 감지합니다. | 불일치는 피드 타이밍에만 존재 |
| T = 80ms | Broker C의 EUR/GBP 피드가 같은 이벤트를 수신하고 업데이트합니다. 불일치가 사라집니다. | 0으로 붕괴 |
| T = 100ms | 시스템이 T=0ms에 실행했다면, 주문은 이제 Broker C에 도착합니다 — 이미 호가가 업데이트된 상태입니다. | 거래가 수정된 불리한 가격에 체결 — 손실 |
레이턴시에 오염된 신호로 실행하는 시스템은 브로커가 독성으로 분류하는 특정 주문 흐름 패턴을 만듭니다. 가격 피드 업데이트 이벤트에 집중된 빠른 3방향 포지션 오픈, 불리한 체결 후 즉시 청산되는 높은 비율이 그것입니다. 이는 실제 시장 구조에서 거래하는 것이 아니라 인프라를 이용하는 시스템의 시그니처입니다. 브로커는 이 패턴을 식별하고 계정을 제한합니다 — 이로 인해 실제 불일치에서 나오는 수익성 있는 거래까지 악화됩니다.
레이턴시에 오염된 삼각 신호를 필터링하려면 순차적으로 적용되는 네 가지 독립 테스트를 결합해야 합니다. 단일 테스트만으로는 충분하지 않습니다.
(1) MaxFeedTimestampDelta < SynchronisationThreshold
— All three feeds have updated within ~60ms of each other
— No single feed is running ahead of the others
(2) Discrepancy.Duration >= PersistenceWindow (e.g. 80ms)
— Genuine LP discrepancies persist; latency artifacts collapse in 30–100ms
— Applied before the more expensive checks below
(3) abs(FastFeed.RateOfChange, 100ms) < DirectionalEventThreshold
— No significant price movement in the preceding 100ms window
— A directional event is the most common cause of feed latency artifacts
(4) CurrentDiscrepancy > LiveMinThreshold × (1 + SafetyMargin)
— Computed dynamically from live spreads + commissions + slippage
— Safety margin (typically 20–30%) covers execution slippage variability
Failure of ANY condition → signal discarded, no order placed.
신호 감지 시점에 피드들이 대략 동기화되어 있지 않다면, 하나의 피드가 시장 이벤트로 인해 다른 피드보다 먼저 업데이트되었을 가능성이 높습니다. 일반적인 임계값: 모든 피드 중 가장 최근 업데이트 간 60ms.
레이턴시 아티팩트는 30–100ms 안에 붕괴합니다. 실제 LP 불일치는 200ms에서 몇 초까지 지속됩니다. 실행 전에 불일치가 최소 창을 견디도록 요구하십시오 — 빠르게 움직이는 아티팩트는 스스로 필터링됩니다.
직접 통화쌍(EUR/USD 또는 GBP/USD) 중 하나라도 직전 100ms 동안 설정된 임계값보다 크게 움직였다면, 이 불일치는 최근 시장 이벤트가 서로 다른 속도로 피드를 통해 전파되면서 생긴 레이턴시 아티팩트일 가능성이 높습니다.
최소 수익 불일치는 실시간 스프레드와 수수료 입력값을 기반으로 모든 틱에서 다시 계산됩니다. 뉴스 이벤트 중 스프레드가 3–5배 확대될 때, 정상 조건에서는 수익성이 있었을 신호도 자동으로 이 조건을 통과하지 못하고 폐기됩니다.
잘 보정된 배포 환경에서는 이 4조건 필터 스택이 레이턴시로 인한 신호 오염을 필터링되지 않은 신호의 일반적인 60–80%에서 15% 미만으로 줄입니다.
멀티 브로커 삼각 차익거래는 개별 거래의 수익성과 관계없이 브로커 리스크 시스템이 식별하는 특징적인 주문 흐름 패턴을 생성합니다:
| 패턴 | 브로커가 보는 것 | 완화 방법 |
|---|---|---|
| 상관된 3쌍 오픈 | 상관된 상품에서 세 포지션이 밀리초 이내에 열립니다. 기술적 패턴으로 표시됩니다 — 재량 거래와 일치하지 않습니다. | 병렬 실행 + 로트 크기 변동 (±10–20%) |
| 짧고 일관된 보유 시간 | 포지션이 지속적으로 몇 초에서 몇 분 이내에 닫힙니다. 좁은 보유 시간 분포는 주요 통계적 플래그입니다. | 설정된 최소 보유 시간 (30–120초) |
| 승률 vs 스프레드 상관관계 | 스프레드가 확대될 때 정확히 승률이 하락합니다. P&L과 스프레드 폭의 역상관은 기술적 흐름의 시그니처입니다. | 동적 임계값 필터가 넓은 스프레드 기간의 낮은 마진 신호를 제거 |
| 계정 간 상관관계 | 동일한 주체가 여러 브로커에 계정을 보유한 경우, 브로커가 리스크 데이터를 공유한다면 신호 이벤트에서 음의 상관관계를 보이는 P&L이 감지될 수 있습니다. | 여러 삼각 조합과 거래 세션으로 분산 |
VPS에서 각 실행 브로커까지 왕복 5ms 미만을 목표로 하십시오. VPS와 각 브로커 사이의 비대칭 레이턴시는 레그 수준의 타이밍 불일치를 만듭니다 — “동시” 실행이 순차 실행이 되어 부분 체결 위험을 증가시킵니다.
각 브로커의 가격 피드는 독립적인 네트워크 소켓에서 실행되어야 하며, 처리 수준이 아니라 소켓 수신 수준에서 하드웨어 타임스탬프가 찍힌 틱 수신을 사용해야 합니다. 공유 처리 큐는 동기화 필터를 왜곡하는 인위적인 타임스탬프 상관관계를 도입합니다.
세 레그는 모두 병렬 실행 스레드를 통해 동시에 제출되어야 합니다. 순차적 주문 배치는 레그 수준의 타이밍 격차를 만들며, 주문 로그에서 감지 가능한 패턴을 생성하고 마지막 레그의 부분 체결 위험을 증가시킵니다.
모든 피드 타임스탬프 비교에는 신뢰할 수 있는 시간 소스와의 클록 동기화가 필요합니다. 10ms의 클록 드리프트만으로도 동기화 필터가 신호를 잘못 분류할 수 있습니다. 가능하다면 PTP(Precision Time Protocol)를 사용하고, 그렇지 않다면 5ms 미만 지터의 NTP를 사용하십시오.
아니요. 리테일 브로커의 가격 엔진은 자동화된 크로스레이트 합성을 통해 실시간으로 크로스레이트 일관성을 강제합니다. 단일 브로커 장부 내의 삼각 가격 오류는 나타난 지 마이크로초 안에 수정됩니다 — 어떤 리테일 실행 시스템보다 빠릅니다. 2026년에 수익성 있는 삼각 차익거래는 서로 다른 유동성 공급자로부터 호가를 받는 독립 브로커 사이의 실제 크로스레이트 불일치를 필요로 합니다.
멀티 브로커 구성에서는 서로 다른 브로커의 가격 피드가 서로 다른 속도로 업데이트됩니다. 한 브로커의 피드가 다른 브로커보다 먼저 업데이트되면 일시적인 겉보기 삼각 불일치가 나타납니다 — 이는 실제 LP 가격 오류 때문이 아니라 하나의 피드가 다른 피드보다 앞서 있기 때문입니다. 이 신호로 실행하는 것은 수익성이 없습니다. 주문이 도착할 때쯤이면 느린 브로커의 피드가 업데이트되어 겉보기 불일치가 사라졌기 때문입니다.
네 가지 독립 조건이 모두 동시에 참이어야 합니다. (1) 모든 브로커의 피드 업데이트 타임스탬프가 대략 동기화되어 있어야 합니다. (2) 불일치가 최소 창(예: 80ms) 동안 최소 임계값 이상으로 지속되어야 합니다. (3) 직전 100ms 동안 어떤 직접 통화쌍에서도 유의미한 방향성 가격 이벤트가 발생하지 않아야 합니다. (4) 불일치가 실시간 스프레드, 수수료, 슬리피지를 포함해 동적으로 계산된 최소 수익 임계값을 초과해야 합니다.
최소 두 개입니다. 한 브로커는 두 직접 통화쌍 호가(EUR/USD와 GBP/USD)를 제공하고, 두 번째 브로커는 크로스레이트 호가(EUR/GBP)를 제공합니다. 세 브로커는 실제 가격 오류 기회를 극대화하지만 수수료 비용과 실행 복잡성을 증가시킵니다. 3브로커 구성은 부분 체결 위험도 증가시킵니다. 세 레그 중 하나가 설정된 타임아웃 내에 체결되지 않으면 나머지 두 레그가 헤지되지 않은 방향성 포지션을 만들며, 이를 명시적으로 닫아야 합니다.
인식 가능한 패턴을 만들기 때문입니다. 세 개의 상관된 포지션이 밀리초 이내에 열리고, 일관되게 짧은 보유 시간을 가지며, 승률이 스프레드 폭과 역상관됩니다. 브로커의 리스크 시스템은 이를 재량 거래가 아니라 기술적 주문 흐름으로 식별합니다. 완화 방법: 설정된 최소 보유 시간, 레그와 거래 전반의 로트 크기 변동, 여러 삼각 조합과 거래 세션으로의 분산.
각 실행 브로커까지 왕복 5ms 미만을 목표로 하는 VPS, 별도 네트워크 소켓에서 브로커별 독립 피드 연결, 소켓 수신 수준의 하드웨어 타임스탬프, 모든 레그를 순차가 아니라 동시에 제출하는 병렬 실행 엔진, 크로스레이트 브로커에는 FIX API 연결 권장, 그리고 5ms 미만 지터의 클록 동기화(NTP 또는 PTP)가 필요합니다. 지속적인 필터 보정을 위해 신호별 세부 로깅이 필수입니다.
멀티 브로커 실행 · 4조건 신호 필터 · 병렬 주문 제출 · FIX API 호환 · 25년의 차익거래 개발