# NXT 거래소 이용하기 넥스트레이드(NXT)는 한국의 대안거래시스템(ATS)으로, 기존 KRX와는 다른 거래소입니다. PyQQQ에서는 `DataExchange.NXT`를 사용하여 NXT 거래소의 데이터를 조회할 수 있습니다. ## 개요 NXT 거래소는 **2025년 3월 4일부터 운영**되었으며, 다음과 같은 특징이 있습니다: - **거래 시간**: 오전 8:00 ~ 오후 8:00 (12시간 거래) - **데이터 제공 시작일**: 2025년 3월 4일 - **지원 데이터**: 일봉(daily), 분봉(minutes) 데이터 ## 거래시간 확인 NXT 거래소의 개장/폐장 시간과 현재 거래 상태를 확인할 수 있습니다. ### 특정 날짜의 시장 스케줄 조회 ```python import datetime as dtm from pyqqq.utils.market_schedule import get_market_schedule from pyqqq.datatypes import DataExchange # NXT 거래소의 2025년 3월 4일 스케줄 조회 date = dtm.date(2025, 3, 4) nxt_schedule = get_market_schedule(date, exchange="NXT") print(f"거래소: {nxt_schedule.exchange}") print(f"휴장 여부: {nxt_schedule.full_day_closed}") print(f"개장 시간: {nxt_schedule.open_time}") print(f"폐장 시간: {nxt_schedule.close_time}") get_market_schedule(dtm.date(2025, 3, 3), exchange="NXT") # ValueError: NXT 거래소는 2025년 3월 4일 부터 운영되었습니다. 이전 날짜는 지원하지 않습니다. ``` ``` 거래소: NXT 휴장 여부: False 개장 시간: 10:00:00 폐장 시간: 20:00:00 Traceback (most recent call last): ... ``` ### 현재 거래 상태 확인 ```python from pyqqq.utils.market_schedule import ( is_trading_time, is_full_day_closed, is_before_opening, is_after_closing ) # 현재 시간 기준으로 거래 상태 확인 now = dtm.datetime.now() # 휴장일인지 확인 is_closed = is_full_day_closed(now, exchange="NXT") print(f"휴장일 여부: {is_closed}") # 개장 전인지 확인 is_before = is_before_opening(now, exchange="NXT") print(f"개장 전 여부: {is_before}") # 폐장 후인지 확인 is_after = is_after_closing(now, exchange="NXT") print(f"폐장 후 여부: {is_after}") # 거래 시간인지 확인 is_trading = is_trading_time(now, exchange="NXT") print(f"거래 시간 여부: {is_trading}") ``` ``` 휴장일 여부: False 개장 전 여부: False 폐장 후 여부: False 거래 시간 여부: True ``` ## 일봉 데이터 조회 pyqqq.data.daily 모듈을 사용하여 NXT 거래소의 일봉 데이터를 조회할 수 있습니다. ### 1. 특정 날짜의 모든 종목 OHLCV 조회 ```python import datetime as dtm from pyqqq.data.daily import get_all_ohlcv_for_date from pyqqq.datatypes import DataExchange # NXT 거래소의 2025년 3월 4일 모든 종목 데이터 조회 date = dtm.date(2025, 3, 4) nxt_data = get_all_ohlcv_for_date( date=date, adjusted=True, # 수정주가 여부 exchange=DataExchange.NXT # NXT 거래소 지정 ) print(nxt_data.head()) ``` ``` close diff diff_rate high low open value volume code 032640 10560 -20 -0.19 10700 10500 10580 848611000 80255 010950 56000 -900 -1.58 57350 55800 57100 816733650 14583 023530 62600 -500 -0.79 64200 62300 64000 316878550 5055 120110 34100 700 2.10 34600 33900 34000 1357809875 39678 215000 58400 -800 -1.35 59600 58300 59100 127182050 2172 ``` ### 2. 특정 종목들의 기간별 OHLCV 조회 ```python from pyqqq.data.daily import get_ohlcv_by_codes_for_period # LG유플러스(032640), 롯데쇼핑(023530)의 NXT 데이터 조회 codes = ['032640', '023530'] start_date = dtm.date(2025, 3, 4) end_date = dtm.date(2025, 3, 10) nxt_period_data = get_ohlcv_by_codes_for_period( codes=codes, start_date=start_date, end_date=end_date, adjusted=True, ascending=False, # 최신 날짜부터 정렬 exchange=DataExchange.NXT ) # 결과는 딕셔너리 형태로 반환 for code, df in nxt_period_data.items(): print(code) print(df.head()) ``` ``` 023530 close diff diff_rate high low open value volume date 2025-03-10 68000 400 0.59 68300 67100 67600 298545550 4399 2025-03-07 67600 300 0.45 69000 66600 69000 1142363350 16858 2025-03-06 67100 1200 1.82 67400 65900 66300 1269966800 18951 2025-03-05 66200 3700 5.92 66300 62600 62700 981820800 15025 2025-03-04 62600 -500 -0.79 64200 62300 64000 316878550 5055 032640 close diff diff_rate high low open value volume date 2025-03-10 10520 -40 -0.38 10620 10510 10620 437502065 41502 2025-03-07 10560 -110 -1.03 10700 10530 10700 634308885 59887 2025-03-06 10640 70 0.66 10710 10590 10670 1408249025 132124 2025-03-05 10590 90 0.86 11000 10490 10500 2432709750 228642 2025-03-04 10560 -20 -0.19 10700 10500 10580 848611000 80255 ``` ## 분봉 데이터 조회 pyqqq.data.minutes 모듈을 사용하여 NXT 거래소의 분봉 데이터를 조회할 수 있습니다. ### 1. 특정 시간의 모든 종목 분봉 조회 ```python from pyqqq.data.minutes import get_all_minute_data # 2025년 3월 4일 오후 5시 30분의 모든 종목 분봉 데이터 조회 time = dtm.datetime(2025, 3, 4, 17, 30) nxt_minute_data = get_all_minute_data( time=time, source="kis", # 'kis' 또는 'ebest' (NXT는 kis: 2025.3.4~, ebest: 2025.5.12~) adjusted=True, exchange="NXT" ) print(nxt_minute_data.head()) ``` ``` time close cum_value cum_volume high low open value volume code 010950 2025-03-04 17:30:00 55900 668971050 11926 56000 55900 56000 391900 7 023530 2025-03-04 17:30:00 62600 285307450 4549 62600 62600 62600 62600 1 030000 2025-03-04 17:30:00 17750 181870520 10243 17750 17750 17750 0 0 032640 2025-03-04 17:30:00 10580 680028620 63649 10580 10560 10570 380550 36 120110 2025-03-04 17:30:00 34400 1242202175 36296 34400 34400 34400 206400 6 ``` ### 2. 특정 종목들의 하루 분봉 데이터 조회 ```python from pyqqq.data.minutes import get_all_day_data # 특정 종목들의 하루 분봉 데이터 조회 date = dtm.date(2025, 3, 4) codes = ['032640', '023530'] nxt_day_data = get_all_day_data( date=date, codes=codes, period=dtm.timedelta(minutes=1), # 1분 간격 source="kis", adjusted=True, ascending=True, # 시간순 정렬 exchange=DataExchange.NXT ) # 결과는 딕셔너리 형태로 반환 for code, df in nxt_day_data.items(): print(code) print(df.head()) ``` ``` 032640 open high low close volume value cum_volume cum_value time 2025-03-04 08:00:00 10580 10580 10580 10580 0 0 0 0 2025-03-04 08:01:00 10580 10580 10580 10580 0 0 0 0 2025-03-04 08:02:00 10580 10580 10580 10580 0 0 0 0 2025-03-04 08:03:00 10580 10580 10580 10580 0 0 0 0 2025-03-04 08:04:00 10580 10580 10580 10580 0 0 0 0 023530 open high low close volume value cum_volume cum_value time 2025-03-04 08:00:00 63100 63100 63100 63100 0 0 0 0 2025-03-04 08:01:00 63100 63100 63100 63100 0 0 0 0 2025-03-04 08:02:00 63100 63100 63100 63100 0 0 0 0 2025-03-04 08:03:00 63100 63100 63100 63100 0 0 0 0 2025-03-04 08:04:00 63100 63100 63100 63100 0 0 0 0 ```