NSE 파생상품 실시간 추적 라이브러리 개발 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- Python 기초 지식을 가진 개발자
- 금융 데이터 크롤링에 관심 있는 사용자
- 실시간 시장 데이터 모니터링 필요자
- 난이도: 중급 (requests, pandas, colorama 사용)
핵심 요약
- NSE 파생상품 실시간 데이터 추적
requests.Session()
+Retry
기반의 자동 재시도 메커니즘으로 안정적인 네트워크 처리- 사용자 친화적 인터페이스
colorama
라이브러리로 변동률 색상 구분 (녹색=상승, 빨강=하락)pandas
를 활용한 데이터 프레임 기반의 간결한 출력- 자동 갱신 기능
time.sleep()
+random.uniform(60, 90)
을 통한 1~1.5분 간격의 자동 업데이트
섹션별 세부 요약
1. 초기 설정 및 세션 구성
setup_session()
메서드에서HTTPAdapter
와Retry
를 사용해 3회 재시도 기능 구현User-Agent
헤더 설정으로 NSE 서버의 스팸 방지 기능 회피self.limit
변수로 5,10,15,20개 계약물 선택 가능
2. 데이터 수집 및 처리
fetch()
메서드에서requests.get()
을 통해 NSE 공식 API 호출pandas.DataFrame()
으로 JSON 데이터 변환 및 필터링- 데이터 형식 변환:
strikePrice
→Strike
lastPrice
→LTP
volume
→M
단위 표시 (ex: 1,000,000 → 1.0M)
3. 출력 형식 및 색상 지정
header()
메서드로 화면 클리어 및 실시간 마켓 상태 표시color()
메서드로 변동률에 따른 색상 지정change% > 5%
→Back.GREEN
change% < -5%
→Back.RED
4. 자동 갱신 및 종료 처리
run()
메서드에서 무한 루프 + 랜덤 지연 시간으로 자동 갱신KeyboardInterrupt
캐치로 사용자 종료 기능 지원os.system('cls')
로 터미널 화면 지우기
결론
- NSE 파생상품 실시간 모니터링을 위해
requests
,pandas
,colorama
라이브러리 활용 - 자동 재시도 및 색상 기반의 데이터 시각화로 사용자 친화적 인터페이스 구현
- 주의사항: NSE API 사용 시 과도한 요청 방지를 위해
random.uniform(60, 90)
으로 요청 간격 조정 필요 nse_tracker.py
파일 생성 후python nse_tracker.py
명령어로 실행 가능