Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-08-08

거래 조건 코드(trade condition codes) 의미와 역할

거래 조건 코드는 통합 테이프의 체결 내역이 당일 고가와 저가 및 거래량에 반영될지 결정합니다. 플랫폼마다 가격이 다르게 표시되는 이유와 적격성 플래그의 작동 원리를 상세히 설명합니다.

거래 조건 코드(trade condition codes)는 동일한 주식에 대해 세 개의 플랫폼이 서로 다른 일일 고가를 표시할 수 있는 이유이며, 이 중 어느 것도 틀린 것은 아닙니다. 통합 테이프(consolidated tape)의 모든 체결 내역(print)에는 이러한 태그가 포함되어 있으며, 이 태그에 따라 해당 체결이 최종 가격, 당일 고가 및 저가, 공식 시가, 공식 종가, 그리고 통합 거래량을 업데이트할 수 있는지 여부가 결정됩니다. 실제 가격으로 이루어진 정상적인 체결이라 하더라도 이러한 필드 대부분에서 제외될 수 있습니다.

거래 조건 코드란 무엇인가?

판매 조건(sale condition)이라고도 불리는 거래 조건 코드는 보고 기관이 테이프로 전송하는 거래 보고서에 부착하는 태그입니다. 가격과 수량은 무엇이 거래되었는지를 나타냅니다. 조건은 해당 보고서가 어떤 종류인지, 즉 제시간에 도착했는지, 가격이 즉시 합의된 것이 아니라 다른 체결 내역을 바탕으로 계산되었는지, 정규 시간 외에 발생했는지, 아니면 100주 미만의 단주(odd lot) 거래인지 등을 설명합니다.

모든 코드에는 적격성 플래그(eligibility flags) 세트가 부착되어 있는데, 이는 거의 아무도 보지 못하는 부분입니다. 각 코드는 최종 가격, 고가 및 저가, 시가, 종가, 그리고 통합 거래량에 대해 적격 또는 부적격으로 표시됩니다. 이러한 플래그는 서로 독립적으로 움직입니다. 고가나 저가에 영향을 줄 수 없는 많은 체결 내역도 거래량에는 포함되는데, 이것이 바로 주식의 보고된 거래량과 보고된 가격 극단치가 서로 겹치지만 다른 거래 집합에서 산출되는 이유입니다. 첫 번째 플래그 세트와 나란히 두 번째 플래그 세트가 작동합니다. 하나는 통합 테이프를 관리하고, 다른 하나는 개별 시장 센터를 관리합니다. 거래소 자체의 공식 종가는 해당 거래소의 체결 내역만으로 계산되기 때문입니다.

조건 코드는 계열(families)로 나뉘며, 오직 하나의 계열만이 거래가 무엇을 업데이트할 수 있는지 결정합니다.

조회미국 주식에 정의된 체결 조건(Condition code) 분류
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    replaceAll(type, '_', ' ') AS condition_family,
    countDistinct(id)          AS codes
FROM global_markets.stocks_condition_codes
WHERE asset_class = 'stocks'
GROUP BY condition_family
ORDER BY codes DESC
Run this yourself

주식 사전에는 8개의 계열이 있습니다. 가장 큰 계열은 sale condition 계열로, 40개의 서로 다른 코드로 구성됩니다. 호가 조건(quote conditions)은 거래가 아닌 매수 호가와 매도 호가를 설명합니다. 지표 계열은 공매도 제한 조치와 같은 상태를 표시합니다. 판매 조건 계열이 바로 적격성 플래그를 포함하는 계열이며, 아래의 모든 수치는 이 계열에서 도출된 것입니다.

테이프에 실제로 기록되는 내용

아래 패널은 2026년 6월의 특정 세션을 기준으로 합니다. 오전 4시 프리마켓 개장부터 오후 8시 포스트마켓 거래 종료까지의 모든 AAPL 체결 내역을 각 체결이 포함한 판매 조건별로 분류했습니다. 이 기간은 SQL에 고정되어 있으므로, 이 수치들은 해당 날짜에만 해당합니다. 하나의 체결 내역에 여러 코드가 동시에 포함될 수 있고, 아무런 코드도 없는 경우도 많기 때문에 각 열의 합계가 100이 되지 않습니다.

조회AAPL 1일 세션, 체결 조건별 거래 내역 분류
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
    (SELECT count()
       FROM global_markets.stocks_trades
      WHERE ticker = 'AAPL'
        AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
        AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')) AS day_prints,
    (SELECT sum(size)
       FROM global_markets.stocks_trades
      WHERE ticker = 'AAPL'
        AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
        AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')) AS day_shares
SELECT
    multiIf(t.code = -1,     'Regular way (no code)',
            c.code_name = '', concat('Unmapped code ', toString(t.code)),
            c.code_name)                        AS condition_name,
    round(100 * count() / day_prints, 2)        AS pct_of_prints,
    round(100 * sum(t.size) / day_shares, 2)    AS pct_of_shares
FROM
(
    SELECT
        size,
        arrayJoin(if(empty(conditions),
                     [toInt32(-1)],
                     arrayMap(x -> toInt32(x), conditions))) AS code
    FROM global_markets.stocks_trades
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
      AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')
) AS t
LEFT JOIN
(
    SELECT toInt32(id) AS code_id, any(name) AS code_name
    FROM global_markets.stocks_condition_codes
    WHERE asset_class = 'stocks'
      AND type = 'sale_condition'
    GROUP BY code_id
) AS c ON c.code_id = t.code
GROUP BY condition_name
ORDER BY pct_of_prints DESC
LIMIT 12
Run this yourself

해당 일에 가장 흔한 태그는 Odd Lot Trade였으며, 이는 전체 세션 체결 내역의 65.83%, 전체 거래량의 6.37%를 차지했습니다. 두 열을 행별로 비교해 보십시오. 체결 내역 비중이 거래량 비중보다 훨씬 높다면, 해당 코드는 소규모 체결을 나타냅니다. 반대의 경우라면, 해당 코드는 매우 큰 규모의 체결 몇 건을 나타냅니다. 체결 건수를 세는 것과 거래량을 세는 것은 서로 다른 질문에 답하는 것이며, 거래 조건 코드가 이 둘을 구분합니다.

왜 두 플랫폼은 서로 다른 일일 고가를 표시하는가?

네 가지 종류의 체결 내역은 각각 서로 다른 필드 집합에서 제외됩니다.

  • 지연 보고 및 순서 외 거래(Late reported and out of sequence). 10시 14분에 합의되고 10시 31분에 보고된 거래는 순서 외(out of sequence)로 태그되거나 이전 참조 가격을 기준으로 가격이 책정되어 테이프에 도달합니다. 이는 거래량에는 포함됩니다. 하지만 최종 가격을 설정할 수 없으며, 해당 가격이 세션 내 다른 모든 거래보다 높더라도 당일 고가를 올릴 수 없습니다. 협상된 블록 거래(block trades)다크 풀(dark pool) 거래 시설을 통해 라우팅된 체결 내역이 종종 여기에 해당합니다.
  • 파생 가격 결정(Derivatively priced). 평균 가격 거래나 VWAP(거래량 가중 평균 가격) 체결은 즉시 합의된 것이 아니라 여러 다른 체결 내역을 통해 계산된 가격을 가집니다. 이 가격은 실시간 호가로 존재한 적이 없으므로 최종 가격과 가격 극단치에서 제외됩니다.
  • 단주(Odd lot). 100주 미만의 거래입니다. 단주는 통합 거래량에는 완전히 포함되지만, 최종 가격이나 고가 및 저가 설정에는 부적격입니다. 2013년 말 이전에는 통합 테이프에 전혀 보고되지 않았습니다. 그 이전 시점까지 거슬러 올라가는 모든 거래량 비교는 '거래량'이라는 단어의 두 가지 다른 정의를 비교하는 것이며, 이는 일평균 거래량(average daily volume) 가이드에서 자세히 다룹니다.
  • 시간 외 거래 및 Form T. 프리마켓 및 장 마감 후 체결 내역은 태그가 지정되어 정규 세션의 시가, 고가, 저가, 종가에서 제외되지만, 통합 거래량에는 포함됩니다. 이를 차트에 표시하는 플랫폼은 그렇지 않은 플랫폼과 다른 일일 가격 범위를 보여주며, 이것이 시간 외 거래(after-hours and premarket trading)가 어떤 차트에는 나타나고 어떤 차트에는 나타나지 않는 이유입니다.

다음은 동일한 특정 날짜를 기준으로 5개 주요 종목에 대해 각 범주가 세션에서 차지하는 비중입니다.

조회가격 산정 제외(Price-ineligible) 조건이 포함된 거래 비중
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
    (SELECT groupArray(toInt32(id))
       FROM global_markets.stocks_condition_codes
      WHERE asset_class = 'stocks'
        AND type = 'sale_condition'
        AND name ILIKE '%odd lot%')                       AS odd_lot_codes,
    (SELECT groupArray(toInt32(id))
       FROM global_markets.stocks_condition_codes
      WHERE asset_class = 'stocks'
        AND type = 'sale_condition'
        AND multiSearchAnyCaseInsensitive(name,
              ['form t', 'extended trading hours']))      AS extended_codes,
    (SELECT groupArray(toInt32(id))
       FROM global_markets.stocks_condition_codes
      WHERE asset_class = 'stocks'
        AND type = 'sale_condition'
        AND multiSearchAnyCaseInsensitive(name,
              ['out of sequence', 'prior reference', 'derivatively priced',
               'average price', 'price variation', 'seller'])
        AND NOT multiSearchAnyCaseInsensitive(name,
              ['form t', 'extended trading hours']))      AS late_or_derived_codes
SELECT
    ticker,
    round(100 * countIf(hasAny(conditions, odd_lot_codes))         / count(), 2) AS odd_lot_pct,
    round(100 * countIf(hasAny(conditions, late_or_derived_codes)) / count(), 2) AS late_or_derived_pct,
    round(100 * countIf(hasAny(conditions, extended_codes))        / count(), 2) AS extended_hours_pct
FROM global_markets.stocks_trades
WHERE ticker IN ('AAPL', 'KO', 'MSFT', 'NVDA', 'SPY')
  AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
  AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')
GROUP BY ticker
ORDER BY odd_lot_pct DESC
Run this yourself

단주 체결은 5개 종목 전체에서 전체 체결 내역의 46.8%에서 85.14%를 차지했습니다. 고정 금액 주문은 가격이 높은 종목일수록 더 적은 주수를 매수하게 되므로, 이 열은 주가와 밀접하게 연동됩니다. NVDA가 가장 높았으며, 체결 내역의 2.4%가 지연 또는 파생 가격 결정으로 태그되었고, 3.53%가 시간 외 거래로 태그되었습니다. 이 세 가지 범주에 속하는 모든 체결 내역은 실제 가격으로 이루어진 실제 거래이지만, 그중 어느 것도 고가나 저가를 설정할 수 없습니다.

고가를 올리지 못하는 체결 내역

다음 패널은 동일한 AAPL 세션을 가져와 오전 9시 30분부터 오후 4시까지의 정규 세션을 15분 단위로 나누고, 각 구간에 대해 두 개의 고가를 도출합니다. 한 선은 모든 체결 내역 중 최고가를 나타냅니다. 다른 선은 고가를 설정할 수 있는 조건을 갖춘 체결 내역 중 최고가를 나타냅니다.

조회AAPL 1일 세션 고가, 15분 단위 두 가지 버전 비교
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
    (SELECT groupArray(toInt32(id))
       FROM global_markets.stocks_condition_codes
      WHERE asset_class = 'stocks'
        AND type = 'sale_condition'
        AND multiSearchAnyCaseInsensitive(name,
              ['odd lot', 'form t', 'extended trading hours', 'out of sequence',
               'prior reference', 'derivatively priced', 'average price',
               'price variation', 'seller'])) AS not_high_low_codes
SELECT
    formatDateTime(toStartOfFifteenMinutes(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
    round(toFloat64(max(price)), 2)                                              AS tape_high,
    round(toFloat64(maxIf(price, NOT hasAny(conditions, not_high_low_codes))), 2) AS eligible_high
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
  AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
  AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')
  AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
       + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) >= 570
  AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
       + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) < 960
GROUP BY et_time
HAVING countIf(NOT hasAny(conditions, not_high_low_codes)) > 0
ORDER BY et_time
Run this yourself

세션은 09:30에 테이프 고가 $302.07, 적격 고가 $302.07로 시작하며, 종가까지 26개의 구간으로 진행됩니다. 적격 체결 내역은 전체 체결 내역의 하위 집합이므로, 적격 선은 결코 테이프 선보다 위에 있을 수 없습니다. 두 선이 겹치는 구간에서는 해당 15분 동안의 모든 체결 내역이 고가를 설정할 수 있었습니다. 상단 선이 위로 올라가는 구간에서는 해당 구간 내 최소 한 건의 체결이 적격 최고가보다 높게 거래되었음을 의미하며, 적격성 규칙에 따라 작성된 차트에는 결코 나타나지 않습니다.

그 격차가 바로 불일치에 대한 정직한 답변입니다. 모든 체결 내역의 최고가를 취하는 소스는 하나의 고가를 보고합니다. 적격성 플래그를 적용하는 소스는 다른 고가를 보고합니다. 프리마켓 및 장 마감 후 세션을 제외하는 소스는 세 번째 고가를 보고합니다. 이들 모두 같은 테이프를 읽고 있습니다.

적격성 계층은 얼마나 견고한가?

취약합니다. 플래그는 참조 데이터이며, 참조 데이터는 수정될 수 있습니다. 한 상업용 시장 데이터 제공업체는 공식 시가와 공식 종가를 설정할 수 있는 특정 판매 조건의 적격성을 재분류하는 수정을 자체 조건 사전에 적용했습니다. 거래 내역은 변경되지 않았습니다. 영향을 받은 모든 날짜의 테이프는 수정 전과 후가 동일했습니다. 변경된 것은 조회 테이블의 플래그 하나였으며, 그와 함께 해당 사전을 사용하는 모든 차트와 백테스트가 출력하던 공식 시가와 종가가 변경되었습니다.

특정 공급업체의 OHLC(시가, 고가, 저가, 종가)를 테이프에 대한 사실이 아닌, 테이프를 읽는 하나의 방식(reading)으로 간주하십시오. 두 소스의 데이터가 일치하지 않을 경우, 각각 어떤 적격성 규칙을 적용했는지 확인해야 합니다. 지연 및 통합 호가 피드(Delayed and consolidated quote feeds)는 적격성이 아닌 타이밍 문제로 인해 동일한 문제의 두 번째 버전을 발생시킵니다.

공인 거래 조건 코드 목록의 위치

테이프는 NYSE 상장 증권을 위한 CTA 플랜과 Nasdaq 상장 증권을 위한 UTP 플랜이라는 두 가지 국가 시장 시스템 플랜에 따라 운영되며, 각 플랜은 관리하는 테이프에 대한 판매 조건 사양을 게시합니다. 이러한 사양이 권위 있는 기준입니다. 위의 패널 뒤에 있는 ID 번호를 포함한 모든 하위 데이터는 공급업체가 자체 번호 체계로 매핑한 것이며, 한 공급업체의 코드 ID가 다른 공급업체에서도 반드시 같은 의미를 갖지는 않습니다. 번호보다는 범주를 익히십시오. 범주는 수년간 안정적으로 유지되었습니다. 번호는 조회 테이블이며, 조회 테이블은 수정될 수 있습니다.

데이터 참고

위 패널의 조건 범주는 하드코딩된 ID 번호가 아닌 사전 자체에서 구축되었습니다. 각 범주는 판매 조건 계열 내의 이름 일치(단주, Form T 및 시간 외 거래, 순서 외, 이전 참조 가격, 파생 가격 결정, 평균 가격, 가격 변동, 매도자)를 기반으로 합니다. 정확한 패턴을 확인하려면 패널 아래의 SQL을 여십시오. 코드는 상호 배타적이지 않으며 단일 체결 내역에 여러 코드가 포함될 수 있으므로, 범주별 백분율은 중복되며 세션 전체 합계와 일치하지 않습니다. AAPL 패널과 5개 종목 패널 모두 SQL에 고정된 2026년 6월의 특정 세션을 다루고 있으므로, 새로운 세션이 도래하더라도 이 페이지의 내용은 변하지 않습니다.

FAQ

거래 조건 코드란 무엇인가?

통합 테이프의 거래 보고서에 부착된 태그로, 지연 보고, 파생 가격 결정, 단주, 시간 외 거래 등 보고서의 종류를 설명합니다. 각 코드에는 해당 거래가 최종 가격, 고가 및 저가, 시가, 종가, 통합 거래량을 업데이트할 수 있는지 여부를 표시하는 플래그가 포함되어 있습니다.

왜 두 웹사이트가 동일한 주식에 대해 서로 다른 일일 고가를 표시하는가?

각 웹사이트는 동일한 체결 내역에 대해 서로 다른 적격성 규칙을 적용하기 때문입니다. 하나는 보고된 모든 거래의 최고가를 취할 수 있고, 다른 하나는 고가 설정이 금지된 조건 코드를 가진 체결 내역을 제외할 수 있으며, 세 번째는 프리마켓 및 장 마감 후 세션을 제외할 수도 있습니다. 이들 모두 같은 테이프를 읽고 있습니다.

단주 거래도 거래량에 포함되는가?

네. 100주 미만의 단주는 통합 거래량에는 포함되지만, 최종 가격이나 당일 고가 및 저가 설정에는 부적격입니다. 단주는 2013년 말 이전에는 통합 테이프에 전혀 보고되지 않았으므로, 장기 거래량 비교 시 해당 시점을 기준으로 정의가 변경됨을 유의해야 합니다.

시간 외 거래도 일일 고가 및 저가에 포함되는가?

정규 세션의 고가 및 저가에는 포함되지 않습니다. 프리마켓 및 장 마감 후 체결 내역은 시간 외 거래 또는 Form T 조건이 태그되어 정규 세션의 시가, 고가, 저가, 종가에서 제외되지만, 당일 통합 거래량에는 포함됩니다.

공식 판매 조건 코드 목록은 어디에 있는가?

CTA 플랜과 UTP 플랜이 관리하는 테이프에 대한 판매 조건 사양을 게시하며, 해당 문서가 권위 있는 기준입니다. 공급업체 피드는 조건을 자체 ID 공간으로 재번호를 매기므로, 한 공급업체의 숫자 코드가 다른 공급업체의 동일한 숫자와 반드시 일치하지는 않습니다.


여기에 있는 모든 패널은 이를 생성한 SQL과 함께 제공됩니다. 하나를 열어 티커나 날짜를 변경하고, Strasmore 터미널에서 원하는 세션에 대해 동일한 조건 분석을 실행해 보십시오.

#market data#trade conditions#consolidated tape#volume#ohlc