주문 수정 시 대기열 우선순위 상실 여부
지정가 주문의 가격을 변경하면 대기열 우선순위가 상실됩니다. 본문은 주문 수정이 체결 확률에 미치는 영향과 봇 운용 시 손익분기점 재설정 거리에 관한 분석을 다룹니다. 수량 감소 시 우선순위가 유지되는 이유와 주문 수정의 기술적 메커니즘을 상세히 설명합니다.
주문 수정과 대기열 우선순위의 상충 관계
주문 수정과 대기열 우선순위는 서로 상충하는 개념입니다. 미국 주식 장부와 대부분의 선물 거래소에서, 대기 중인 지정가 주문(limit order)의 가격을 변경하면 해당 주문은 새로운 가격의 대기열 맨 뒤로 밀려납니다. 표시 수량을 늘리는 경우에도 동일하게 적용됩니다. 반면, 수량을 줄이는 경우에는 기존 우선순위가 유지됩니다. 플랫폼상의 버튼 명칭과 관계없이, 주문을 취소하고 새로운 주문을 제출하는 행위는 새로운 타임스탬프를 가진 신규 주문으로 간주됩니다.
주문 수정 시 대기 우선순위가 상실됩니까?
개인 투자자가 접근하는 거의 모든 거래소에는 네 가지 규칙이 적용됩니다.
- 가격을 변경하면 우선순위가 상실됩니다. 주문은 새로운 가격에서 신규 주문으로 간주되며, 이미 해당 가격에 대기 중인 모든 주문보다 뒤로 밀려납니다.
- 표시된 수량을 늘리면 우선순위가 상실됩니다. 일부 거래소는 추가된 수량만 새로 대기열에 넣고 기존 주문은 유지하지만, 다른 거래소는 전체 주문의 시간을 재설정합니다. 어느 경우든 추가된 주식에 기존의 우선순위가 부여되지는 않습니다.
- 표시된 수량을 줄이면 우선순위가 유지됩니다. 거래소는 이를 부분 취소로 간주하며, 수량을 줄이는 것은 대기열 위치에 영향을 주지 않습니다.
- 주문을 취소하고 다시 전송하면 매번 우선순위가 상실되며, 그 사이에는 활성화된 주문이 없는 공백기가 발생합니다.
이러한 비대칭성에는 논리적 근거가 있습니다. 시간 우선순위는 다른 모든 이들이 기다리는 동안 특정 가격을 지키고 있었던 것에 대한 보상입니다. 수량을 늘리거나 가격을 이동하는 것은 새로운 리스크를 감수하는 행위이므로, 새로운 리스크는 대기열의 맨 뒤에서 시작됩니다. 수량을 줄이는 것은 리스크를 회수하는 것이므로, 대가를 지불할 이유가 없습니다. 비례 배분(pro rata) 방식의 호가창에서는 배분 기준이 도착 시점이 아닌 표시된 수량을 따르므로 계산 방식이 달라집니다. 가격 시간 우선순위 대 비례 배분에서 두 방식의 차이를 상세히 다룹니다.
주문 수정(Modify in place)인가, 취소 후 재주문(Cancel and replace)인가?
거래소에서 이 두 가지는 서로 다른 지시 사항입니다. 플랫폼에서 수정(modify) 또는 대체(replace)라고 부르는 정정 주문은 기존 주문을 지정하고 변경 사항을 명시하는 하나의 메시지입니다. 이는 원자적으로 적용됩니다. 즉, 변경이 반영되거나, 아니면 주문이 전혀 건드려지지 않은 상태로 유지됩니다. 반면 취소 후 신규 주문은 두 개의 이벤트 사이에 간격이 존재하며, 그 간격 동안에는 시장에 주문이 전혀 남아있지 않게 됩니다. 만약 그 간격 사이에 시장 가격이 귀하의 주문 가격을 통과해 거래가 체결된다면, 귀하는 해당 거래에 참여하지 못한 것이 됩니다.
일부 거래소는 내부적으로 정정 주문을 취소 후 신규 주문으로 처리하며, 거래소가 진정한 의미의 주문 수정 기능을 지원하더라도 일부 브로커는 이를 취소 후 재주문 방식으로 변환하여 전송합니다. 결과는 동일합니다. 즉, 기존의 우선순위는 상실됩니다. 정정 주문이 거부되면 원래 주문은 그대로 유지되지만, 취소는 성공했으나 뒤이은 신규 주문이 거부될 경우 시장에는 유효한 주문이 하나도 남지 않게 됩니다. 우선순위를 유지하는 정정 주문이라 하더라도 대개 새로운 주문 식별자(order identifier)와 함께 돌아오기 때문에, 거래소의 호가창에서는 기존 주문으로 인식되더라도 귀하의 기록상에는 새로운 주문으로 나타나게 됩니다.
주문 변경의 비용
대기 순번의 가치는 시장에서 체결되는 거래량에 따라 결정됩니다. 본인의 주문 앞에 있는 물량이 먼저 거래되어야 하므로, 해당 물량의 거래 속도는 장중 내내 크게 변동합니다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
formatDateTime(toStartOfFifteenMinutes(et), '%H:%i') AS et_time,
round(toFloat64(avg(volume)) / 1000, 1) AS avg_k_shares_per_min,
round(quantileDeterministic(0.5)(toFloat64(volume),
toUInt64(toUnixTimestamp(et))) / 1000, 1) AS median_k_shares_per_min
FROM
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et,
volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= '2026-06-01'
AND window_start < '2026-07-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
GROUP BY et_time
ORDER BY et_time2026년 6월 한 달간 09:30 ET(동부표준시)에 시작되는 15분 구간의 AAPL 거래량은 분당 중앙값 기준 182.8천 주였으나, 12:00에 시작되는 구간에서는 62천 주를 기록했습니다. 동일한 주문, 동일한 가격이라 하더라도 장 개장 시점의 대기 물량과 장중의 대기 물량은 그 성격이 완전히 다릅니다.
정정 전후의 체결 확률
정정 주문은 확률로 가격이 결정됩니다. 아래 패널은 한 달간의 정규장 분 단위 데이터를 바탕으로, 특정 분 동안 최소 몇 주 이상의 거래량이 발생했는지 집계한 것입니다. 이는 귀하의 앞선 대기 물량이 1분 이내에 체결될 확률로 해석할 수 있습니다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH minute_volume AS
(
SELECT
ticker,
toStartOfMinute(toTimeZone(window_start, 'America/New_York')) AS et_minute,
sum(volume) AS shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'KO')
AND window_start >= '2026-06-01'
AND window_start < '2026-07-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, et_minute
)
SELECT
q.ahead AS shares_ahead,
round(100 * countIf(mv.ticker = 'AAPL' AND mv.shares >= q.ahead) / countIf(mv.ticker = 'AAPL'), 1) AS aapl_pct_of_minutes,
round(100 * countIf(mv.ticker = 'KO' AND mv.shares >= q.ahead) / countIf(mv.ticker = 'KO'), 1) AS ko_pct_of_minutes
FROM minute_volume AS mv
CROSS JOIN
(
SELECT arrayJoin([500, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000]) AS ahead
) AS q
GROUP BY q.ahead
ORDER BY q.ahead500주가 앞에 있을 때, AAPL의 경우 100퍼센트의 분 동안 충분한 거래량이 발생했으며, KO는 100퍼센트였습니다. 8000주 규모에서는 AAPL의 수치가 100퍼센트이며, 128000주까지 늘어나면 22.2퍼센트로 하락합니다. 곡선은 한 방향으로만 기울어지며, 우선순위를 잃는다는 것은 이 곡선을 따라 오른쪽으로 밀려나는 것에 불과합니다.
이 선을 낙관적인 상한선으로 간주하십시오. 1분간의 거래량은 여러 가격대와 시장의 양방향에서 체결되며, 그중 일부만이 귀하의 가격 수준에서 체결되므로 실제 대기 물량은 이보다 더 느리게 소진됩니다. 체결이 전혀 없었던 분은 집계에서 제외되었습니다. 대기 순번 추정을 통해 호가 잔량과 취소율을 고려하면 더 정확한 상황 파악이 가능합니다.
손익분기점 재가격 책정 거리
이제 수정안에 가격을 책정해 봅니다. 8,000주의 매수 주문이 대기 중이고 향후 1분 이내에 체결될 확률이 60퍼센트인 가상의 주문을 가정합니다. 호가를 1센트 개선하면 해당 주문은 앞선 물량 없이 새로운 최우선 매수 호가가 되며, 이때 체결 확률은 99퍼센트로 상승한다고 가정합니다. 이러한 개선은 모든 체결 건당 주당 1센트의 비용을 발생시킵니다.
체결의 주당 가치(엣지 및 리베이트 포함)를 V, 재가격 책정 거리를 t라고 합니다. 수정안의 손익분기점은 개선된 확률과 감소한 수익의 곱이 기존 확률과 전체 수익의 곱과 같아질 때 형성되며, 이를 정리하면 다음과 같은 단일 식이 됩니다.
t = V x (1 - p0 / p1)
체결 가치가 주당 3센트이고 체결 확률이 60퍼센트에서 99퍼센트로 이동할 때, 손익분기점 거리는 약 1.2센트가 됩니다. 1센트의 개선은 비용을 상쇄합니다. 2센트를 추격하는 것은 비용을 상쇄하지 못합니다.
메이커 리베이트(maker rebate)만이 유일한 엣지인 봇(bot)에 동일한 공식을 적용해 봅니다. 2026년 중반 기준 미국 주요 주식 거래소의 최상위 등급 메이커 리베이트는 주당 약 0.20에서 0.30센트 수준이므로, 이를 0.25센트로 가정합니다. 이 공식에 따르면 손익분기점 거리는 약 0.1센트가 되는데, 미국 거래소에서 허용하는 최소 가격 변동 폭은 1센트이므로 이는 약 열 배나 먼 거리입니다. 리베이트를 보호하기 위해 재가격 책정을 하는 봇은 0.25센트의 리베이트를 얻기 위해 1틱(tick)의 비용을 지불하는 셈입니다.
리베이트는 체결 시에만 지급되며, 의도만으로는 지급되지 않습니다. 훌륭한 대기 순위를 유지하더라도 체결되지 않는 주문은 아무런 수익을 창출하지 못하며, 수취하지 못한 리베이트는 절감액이 아닙니다. 메이커 테이커 수수료 및 리베이트에서 해당 수수료 체계가 어떻게 지급되는지 확인할 수 있습니다.
가격 개선의 여지가 없을 때
매수 호가(bid)와 매도 호가(offer) 사이에 간격이 있을 때만 가격 개선이 가능하다. 시가총액이 큰 대형주에서는 대부분의 경우 이러한 간격이 존재하지 않는다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
ticker AS symbol,
round(avg(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2) AS avg_spread_cents,
round(100 * countIf(toFloat64(ask_price) - toFloat64(bid_price) <= 0.0105) / count(), 1) AS one_tick_wide_pct
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'KO', 'SPY', 'NVDA', 'COST', 'NFLX')
AND sip_timestamp >= '2026-06-10 13:30:00'
AND sip_timestamp < '2026-06-10 20:00:00'
AND bid_price > 0
AND ask_price > bid_price
AND toFloat64(ask_price) - toFloat64(bid_price) < 5
GROUP BY ticker
ORDER BY one_tick_wide_pct DESCNFLX은 2026년 6월 10일 전체 호가 업데이트의 81.4 퍼센트에서 1센트 스프레드(spread)를 기록했으며, 평균 스프레드 폭은 1.3센트였다. 패널의 반대편에 위치한 COST의 평균 스프레드는 77.53센트였다. 한 틱(tick) 시장에서는 매수 호가와 매도 호가 사이에 이동할 수 있는 가격이 존재하지 않으며, 호가창 앞줄을 차지하는 유일한 방법은 스프레드를 가로지르는 것뿐이다. 이 경우 투자자는 유동성 공급자가 아닌 유동성 공급을 받는 테이커(taker)가 된다. 따라서 리베이트를 받는 대신 테이커 수수료를 지불해야 하며, 스프레드의 일부를 얻는 대신 스프레드 전체를 포기하게 된다.
재가격 책정 봇이 선택에 직면하는 빈도
시장을 추종하는 봇은 이 거래를 단 한 번 수행하지 않습니다. 호가창 최상단이 자신의 주문 가격에서 멀어질 때마다 매번 수행합니다.
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
formatDateTime(toStartOfFifteenMinutes(et), '%H:%i') AS et_time,
uniqExactIf(bid_price, ticker = 'AAPL') AS aapl_distinct_bids,
uniqExactIf(bid_price, ticker = 'KO') AS ko_distinct_bids
FROM
(
SELECT
toTimeZone(sip_timestamp, 'America/New_York') AS et,
ticker,
bid_price
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'KO')
AND sip_timestamp >= '2026-06-10 13:30:00'
AND sip_timestamp < '2026-06-10 20:00:00'
AND bid_price > 0
)
GROUP BY et_time
ORDER BY et_timeAAPL의 최우선 매수호가는 2026년 6월 10일 09:30 ET에 시작된 15분 동안 359개의 서로 다른 가격을 기록했으며, 15:45에 시작된 15분 동안에는 152개의 가격을 기록했습니다. KO의 최우선 매수호가는 해당 개장 구간에서 78개의 가격을 기록했습니다. 이러한 모든 움직임은 재가격 책정 봇이 전송할 수 있는 정정 주문이며, 모든 정정은 봇의 대기 시간을 초기화합니다. 그리드 트레이딩 봇은 고정된 가격대에 주문 사다리를 배치함으로써 이 선택의 반대편을 취합니다. 이 경우 가격은 진부화되지만, 우선순위는 유지됩니다.
아이스버그 주문과 자기매매 방지
두 가지 이차적 효과가 투자자들을 당혹스럽게 만든다.
흔히 아이스버그 주문(iceberg orders)이라 불리는 예약 주문은 전체 주문량 중 일부만 노출하고 나머지는 숨긴다. 대부분의 호가창에서 노출된 수량이 체결되어 새로 고침될 때마다 해당 주문은 동일 가격대 대기열의 맨 뒤로 밀려난다. 따라서 대규모 아이스버그 주문은 완전히 노출된 주문과 달리 대기 순번을 계속 양보하는 일련의 소규모 주문처럼 작동한다. 노출 수량을 수정하면 동일한 주기가 다시 시작된다.
다른 하나는 자기매매 방지(self trade prevention) 기능이다. 거래소는 동일한 참가자의 주문이 자신의 대기 주문과 체결되는 것을 허용하지 않으며, 일반적인 조치로 둘 중 하나를 취소하거나 일부 거래소에서는 양쪽 모두를 취소한다. 좁은 호가 범위에서 가격을 재조정하는 봇(bot)은 반대편에 있는 자신의 호가를 스스로 제거할 수 있으며, 이로 인해 주문 수정 한 번이 대기열에서의 순번 상실 두 번으로 이어지게 된다. 주문 수정은 일반적으로 기존의 유효 기간(time in force)을 그대로 유지하지만, 취소 후 재주문은 이를 초기화한다. 이 세부 사항은 주문 유효 기간(order time in force)에서 다룬다.
자주 묻는 질문(FAQ)
지정가 주문의 가격을 변경하면 대기열에서의 순번을 잃게 됩니까?
그렇습니다. 미국 주식 장부와 대부분의 선물 거래소에서 가격이 변경된 주문은 새로운 주문으로 간주되며, 기존에 대기 중인 모든 수량 뒤로 밀려납니다. 우선순위가 유지되는 유일한 경우는 동일한 가격에서 주문 수량을 줄이는 것뿐입니다.
주문 취소 후 재접수(cancel and replace)는 주문 수정과 동일합니까?
거래소마다 처리 방식이 다릅니다. 주문 수정(amendment)은 단일 메시지로 처리되며 수량만 감소할 경우 우선순위를 유지할 수 있습니다. 반면 주문 취소 후 재접수는 두 개의 이벤트로 나뉘며, 그 사이에는 대기 중인 주문이 존재하지 않는 공백이 발생하므로 재접수된 주문은 항상 대기열의 맨 뒤로 이동합니다.
주문 수량을 줄이면 대기열 우선순위가 유지됩니까?
그렇습니다. 동일 가격일 경우에 한합니다. 거래소는 수량 감소를 부분 취소로 간주하며, 잔여 수량은 원래의 타임스탬프를 유지합니다. 수량을 늘리는 경우에는 동일하게 적용되지 않습니다.
대기열 순번은 실제로 어떤 가치가 있습니까?
대기열 순번이 제공하는 체결 확률에 체결의 가치를 곱한 값입니다. 두 요소 모두 측정 가능합니다. 위의 패널은 분당 체결되는 거래량(volume prints)을 보여주며, 투자자 본인의 엣지(edge)와 리베이트(rebate)가 체결의 가치를 결정합니다.
이곳의 모든 패널에는 해당 데이터를 생성한 SQL이 포함되어 있습니다. 티커(ticker)나 날짜 범위를 변경하여 Strasmore 터미널의 어떤 종목에 대해서든 동일한 질문을 확인하십시오.