T+1 또는 T+2 결제일 계산

2026년 11월 25일 수요일에 체결한 미국 주식 거래의 T+1 결제일은 2026년 11월 27일 금요일이고 USD/JPY 현물 거래의 T+2 결제일은 11월 30일 월요일이며, 이는 11월 26일 목요일이 미국 공휴일이기 때문입니다. 결제일 = 거래일에 N영업일을 더한 날짜이며, 주말과 관련 국가의 휴무일을 건너뜁니다.

API로 결제일 계산

T+1은 거래일로부터 1영업일 후를 뜻합니다. 미국 주식과 ETF는 2024년 5월 28일부터 T+1로 결제됩니다. FX 현물 거래는 일반적으로 T+2로 결제되지만 일수는 시장 관행에 따르므로, 거래 장소의 규칙에 따라 결제 기간을 선택하세요.

  1. 결제 기간 선택 days에 거래 후 영업일 수를 설정하세요. 예시에서는 미국 주식에 T+1을, USD/JPY 현물에 T+2를 사용합니다. 거래일은 시작점이며 해당 기간에 포함되지 않습니다.
  2. API 키 설정 무료 API 키를 받아 NARWHAL_API_KEY 환경 변수에 저장하세요. 스크립트는 이 변수를 읽고 키를 Authorization: Bearer YOUR_KEY로 지정해 https://api.narwhalapi.com으로 보냅니다.
  3. 국가 선택 미국 주식 예시에는 USA를, USD/JPY에는 USA와 JPN을 모두 사용하세요. 스크립트는 GET /v1/calendars/holidays/{country}/{year}로 공휴일을 요청합니다. 목록에 있는 국가 중 한 곳이라도 공휴일이면 해당 날짜는 계산에서 제외됩니다.
  4. 날짜 계산 거래일, 결제 기간, 국가 목록을 지정해 스크립트를 사용하세요. 달력상 하루씩 앞으로 이동하며, 평일이면서 목록의 공휴일이 아닌 날짜만 셉니다. 캐시는 각 국가와 연도의 공휴일을 저장해 날짜를 이동하는 동안 다시 요청하지 않고 사용할 수 있게 합니다.
    Python, 주식과 통화쌍의 결제일
    import os
    from datetime import date, timedelta
    from functools import cache
    import requests
    
    API = "https://api.narwhalapi.com"
    HEADERS = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}
    
    
    @cache  # one request per country and year, however many days the loop walks
    def holidays(country: str, year: int) -> frozenset[str]:
        r = requests.get(
            f"{API}/v1/calendars/holidays/{country}/{year}", headers=HEADERS, timeout=10
        )
        r.raise_for_status()
        return frozenset(h["date"] for h in r.json()["holidays"])
    
    
    def settlement(trade: date, days: int, countries: list[str]) -> date:
        """The date `days` business days after the trade, skipping a day any listed
        country is closed."""
        day = trade
        while days > 0:
            day += timedelta(1)
            closed = any(day.isoformat() in holidays(c, day.year) for c in countries)
            if day.weekday() < 5 and not closed:
                days -= 1
        return day
    
    
    trade = date(2026, 11, 25)
    print("US stock, T+1:", settlement(trade, 1, ["USA"]))
    print("USD/JPY spot, T+2:", settlement(trade, 2, ["USA", "JPN"]))

공휴일 조회는 확인 중인 날짜의 연도를 사용하므로, 반복문이 다른 연도에 도달하면 해당 연도의 국가별 목록을 요청할 수 있습니다. 캐시는 공휴일 함수에 속하며, 결제일 함수는 각 거래의 날짜, 일수, 국가를 입력값으로 받습니다. 공휴일 날짜는 응답의 holidays 목록에서 가져옵니다. 함수는 각 date 값을 읽어 반복문 안의 날짜와 비교하며, 목록에 있는 국가 중 한 곳이라도 일치하면 해당 날짜는 결제일 계산에서 제외됩니다.

스프레드시트로 결제일 계산

Excel과 Google Sheets에서도 WORKDAY로 같은 영업일 수를 계산할 수 있습니다. 휴무일을 Holidays라는 범위에 입력한 다음, 수식에 거래일과 결제 기간을 지정하세요. 통화쌍의 경우 두 국가의 공휴일 목록을 해당 범위에 합치세요.

2026년 11월 25일의 T+1
=WORKDAY(DATE(2026,11,25), 1, Holidays)
2026년 11월 25일의 T+2
=WORKDAY(DATE(2026,11,25), 2, Holidays)

Holidays 범위는 수식이 주말 외에 건너뛰어야 할 날짜를 지정합니다. 미국 주식 예시에는 미국 목록을 사용하세요. USD/JPY에는 미국과 일본 목록을 모두 포함해 어느 한 국가라도 휴무일이면 해당 날짜를 계산에서 제외하세요.

수식의 결제 기간과 공휴일 범위는 역할이 다릅니다. 기간을 T+1에서 T+2로 바꾸면 계산할 영업일 수가 달라지고, 범위를 바꾸면 계산에 포함할 수 있는 날짜가 달라집니다. 범위를 준비할 때 거래와 관련된 국가를 사용하세요.

상황별 계산 방법

상황적합한 방법이유
거래 한 건공휴일 목록을 합친 스프레드시트의 WORKDAY수식은 지정한 휴무일을 사용해 결제 기간을 계산합니다.
거래 기록부 또는 매일 밤 실행하는 결제 작업Python 스크립트국가 목록으로 공휴일을 정하고, 함수가 거래일의 결제일을 계산합니다.
성금요일이나 조기 폐장을 포함한 거래소별 캘린더거래소 자체 캘린더Narwhal 목록에는 공휴일이 포함되며, 거래소 휴장일은 다를 수 있습니다.

T+2는 상대 통화 국가의 공휴일도 건너뛰나요?

네. FX 관행에서는 두 통화 모두의 영업일이어야 하므로 어느 한 국가라도 공휴일이면 건너뜁니다. USD/JPY에는 USA와 JPN을 모두 함수에 전달하세요. 한 국가의 목록만 사용하면 다른 국가의 공휴일은 계산에 반영되지 않습니다.

거래와 결제 사이에 공휴일이 있어도 결제 기간은 T+2로 유지됩니다. 공휴일은 영업일로 계산되지 않으므로 달력상 결제일이 뒤로 밀립니다. 첫 영업일을 센 후에도 주말은 건너뜁니다.

거래일 자체가 공휴일이면 어떻게 하나요?

거래일 다음의 첫 영업일이 1일째가 됩니다. 스크립트는 지정한 거래일에서 시작해 달력상 다음 날로 이동한 뒤, 국가 목록의 공휴일이 아닌 평일을 찾습니다.

지정한 날짜 바로 다음이 주말이나 다른 공휴일이면 그 날짜도 건너뜁니다. 함수는 요청한 영업일 수를 채울 때까지 계속합니다. 이는 스크립트가 지정된 거래일을 처리하는 방식이며, 결제 기간은 시장 관행과 거래 장소의 규칙에 따릅니다.

공휴일 목록이 거래소 캘린더와 일치하나요?

항상 일치하지는 않습니다. Narwhal의 공휴일 데이터에는 국가별 공휴일이 포함되며, 거래소 휴장일은 다를 수 있습니다. NYSE는 2026년 4월 3일 성금요일에 휴장하지만, 이 날짜는 API의 미국 연방 공휴일 목록에 없습니다.

결제일이 거래소의 특정 휴장일이나 조기 폐장에 따라 달라진다면 거래소 자체 캘린더를 사용하세요. 국가 목록은 계산에 사용할 공휴일을 제공하며, 목록에 없는 거래소 휴장일을 추가하지 않습니다.

계산 예시: 2026년 11월 25일 수요일 거래

2026년 11월 25일 수요일에서 시작합니다. 11월 26일 목요일은 미국의 추수감사절이므로 두 예시 모두에서 영업일로 계산되지 않습니다. 11월 27일 금요일이 1일째이며, 미국 주식은 T+1에 도달해 이날 결제됩니다.

날짜미국 주식, T+1USD/JPY 현물, T+2
2026년 11월 25일 수요일거래일거래일
2026년 11월 26일 목요일추수감사절 건너뛰기미국 추수감사절 건너뛰기
2026년 11월 27일 금요일1일째, 결제1일째
2026년 11월 28일 토요일주말 건너뛰기
2026년 11월 29일 일요일주말 건너뛰기
2026년 11월 30일 월요일2일째, 결제

USD/JPY에서는 금요일이 첫 영업일입니다. 토요일과 일요일은 계산에 포함되지 않으므로 11월 30일 월요일이 2일째입니다. 2026년 11월 25일 거래의 T+2 결제일은 2026년 11월 30일 월요일입니다.

2026년 11월 25일 거래의 결제일
US stock, T+1: 2026-11-27
USD/JPY spot, T+2: 2026-11-30

에 게시되었습니다.

다음 단계