NXT 거래소 이용하기#
넥스트레이드(NXT)는 한국의 대안거래시스템(ATS)으로, 기존 KRX와는 다른 거래소입니다. PyQQQ에서는 DataExchange.NXT
를 사용하여 NXT 거래소의 데이터를 조회할 수 있습니다.
개요#
NXT 거래소는 2025년 3월 4일부터 운영되었으며, 다음과 같은 특징이 있습니다:
거래 시간: 오전 8:00 ~ 오후 8:00 (12시간 거래)
데이터 제공 시작일: 2025년 3월 4일
지원 데이터: 일봉(daily), 분봉(minutes) 데이터
거래시간 확인#
NXT 거래소의 개장/폐장 시간과 현재 거래 상태를 확인할 수 있습니다.
특정 날짜의 시장 스케줄 조회#
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):
...
현재 거래 상태 확인#
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 조회#
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 조회#
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. 특정 시간의 모든 종목 분봉 조회#
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. 특정 종목들의 하루 분봉 데이터 조회#
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