한국 투자 증권 API 3) [국내주식] 시세분석

Tasker_Jang·2025년 3월 19일
0

국내주식 - 시세분석

한국투자증권에서는 투자 의사결정에 도움이 되는 다양한 고급 데이터를 제공하고 있습니다. 이번에는 투자자 동향과 매매 패턴을 보다 심층적으로 분석할 수 있는 세 가지 특화 API를 살펴보겠습니다.

주요 API 소개

1. 종목별 외인기관 추정가집계 API

장중에 외국인과 기관의 매매 동향을 추정하여 제공하는 API로, 실시간으로 주요 투자 주체의 움직임을 파악하는 데 유용합니다.

주요 특징

  • 증권사 직원이 장중에 집계/입력한 자료를 단순 누계한 수치
  • 외국인 입력 시간: 09:30, 11:20, 13:20, 14:30
  • 기관종합 입력 시간: 10:00, 11:20, 13:20, 14:30

제공 데이터

{
  "bsop_hour_gb": "5",                      // 입력구분(1~5시점)
  "frgn_fake_ntby_qty": "-30000",           // 외국인 순매수량(추정)
  "orgn_fake_ntby_qty": "121000",           // 기관 순매수량(추정)
  "sum_fake_ntby_qty": "91000"              // 외국인+기관 합산 순매수량(추정)
}

활용 방안

이 API는 장중에 외국인과 기관의 매매 추세를 파악하여 단기적인 투자 전략을 수립하는 데 도움이 됩니다. 특히 다음과 같은 상황에서 유용합니다:

  1. 세력 포착: 외국인과 기관이 동시에 매수세를 보이는 종목 탐색
  2. 단기 추세 예측: 시간대별 매매 패턴 변화 감지
  3. 매매 타이밍 결정: 외국인과 기관의 움직임을 참고하여 진입/탈출 시점 판단
# 외국인과 기관이 동시에 매수세를 보이는지 판단하는 예시 코드
def check_strong_buying_power(data):
    latest_data = data[0]  # 가장 최근 시점 데이터
    
    if float(latest_data["frgn_fake_ntby_qty"]) > 0 and float(latest_data["orgn_fake_ntby_qty"]) > 0:
        return "외국인과 기관 모두 매수세 강함"
    elif float(latest_data["sum_fake_ntby_qty"]) > 0:
        return "외인+기관 합산 매수세 우위"
    else:
        return "매도세 우위"

2. 국내주식 매물대/거래비중 API

주식의 가격대별 거래량 분포를 제공하여 주요 매물대와 거래 집중 구간을 파악할 수 있는 API입니다.

주요 특징

  • 당일 가격대별 매물대 정보 제공
  • 거래량 비중이 높은 가격대 식별 가능

제공 데이터

{
  "data_rank": "1",                      // 거래량 순위
  "stck_prpr": "3255",                   // 해당 가격
  "cntg_vol": "124515",                  // 해당 가격대 거래량
  "acml_vol_rlim": "14.69"               // 전체 대비 거래량 비중(%)
}

활용 방안

이 API는 주요 매물대를 파악하여 지지/저항 구간을 분석하는 데 매우 유용합니다:

  1. 지지/저항선 파악: 거래량이 집중된 가격대는 향후 지지 또는 저항선으로 작용할 가능성이 높음
  2. 매물대 분석: 특정 가격대에 매물이 쌓여있는지 확인하여 돌파 가능성 예측
  3. 거래 집중 패턴 분석: 거래가 특정 가격대에 집중되는지 또는 분산되는지 파악
# 주요 매물대 식별 함수 예시
def identify_key_price_levels(data, threshold=10):
    key_levels = []
    
    for price_data in data:
        if float(price_data["acml_vol_rlim"]) > threshold:
            key_levels.append({
                "price": price_data["stck_prpr"],
                "volume_ratio": price_data["acml_vol_rlim"]
            })
    
    return key_levels

3. 종목별일별매수매도체결량 API

특정 종목의 일별 매수체결량과 매도체결량 데이터를 제공하는 API입니다.

주요 특징

  • 최대 100일 치의 일별 매수/매도 체결량 데이터 조회 가능
  • 매수/매도 불균형 파악 가능

제공 데이터

{
  "stck_bsop_date": "20240126",         // 거래일자
  "total_seln_qty": "5285722",          // 매도체결량
  "total_shnu_qty": "4520816"           // 매수체결량
}

활용 방안

이 API는 매수/매도 세력의 균형을 파악하여 향후 가격 움직임을 예측하는 데 활용할 수 있습니다:

  1. 수급 불균형 파악: 매수량과 매도량의 차이를 분석하여 수급 불균형 정도 측정
  2. 추세 변화 감지: 매수/매도 비율의 변화 트렌드를 통해 시장 심리 변화 포착
  3. 패턴 분석: 과거 특정 패턴이 나타났을 때의 주가 변화 연구
# 매수/매도 비율 변화 트렌드 분석 함수 예시
def analyze_buy_sell_ratio_trend(data, window=5):
    ratios = []
    
    for daily_data in data:
        buy_vol = float(daily_data["total_shnu_qty"])
        sell_vol = float(daily_data["total_seln_qty"])
        ratio = buy_vol / sell_vol if sell_vol > 0 else 0
        ratios.append(ratio)
    
    # 최근 n일 평균 비율과 그 이전 n일 평균 비율 비교
    recent_avg = sum(ratios[:window]) / window
    previous_avg = sum(ratios[window:window*2]) / window
    
    if recent_avg > previous_avg * 1.1:
        return "매수세 강화 추세"
    elif recent_avg < previous_avg * 0.9:
        return "매도세 강화 추세"
    else:
        return "매수/매도 균형 유지"

통합 데이터 분석 시스템 구축

위 세 가지 API를 함께 활용하면 보다 정교한 투자 의사결정 시스템을 구축할 수 있습니다:

  1. 외인/기관 추정 데이터와 실제 매수/매도 체결량 비교:

    • 외인/기관의 추정 순매수량과 실제 매수/매도 체결량 간의 상관관계 분석
    • 외인/기관의 매매가 실제 시장에 미치는 영향력 측정
  2. 매물대 정보와 외인/기관 매매 정보 통합 분석:

    • 외인/기관이 집중적으로 매수하는 가격대와 주요 매물대 비교
    • 매물대 돌파 시 외인/기관의 대응 패턴 분석
  3. 종합 시장 심리 지표 개발:

    • 세 API의 데이터를 종합한 시장 심리 지표 개발
    • 지표의 변화에 따른 투자 전략 수립
# 종합 시장 심리 지표 계산 예시
def calculate_market_sentiment(foreign_inst_data, price_level_data, buy_sell_data):
    # 1. 외인/기관 순매수 강도 (정규화)
    f_i_power = float(foreign_inst_data[0]["sum_fake_ntby_qty"]) / 1000000  # 백만 단위 정규화
    
    # 2. 주요 매물대 집중도
    concentration = 0
    for item in price_level_data[:3]:  # 상위 3개 가격대
        concentration += float(item["acml_vol_rlim"])
    concentration = concentration / 100  # 비율 정규화
    
    # 3. 최근 3일 매수/매도 비율 평균
    buy_sell_ratios = []
    for i in range(3):
        if i < len(buy_sell_data):
            buy_vol = float(buy_sell_data[i]["total_shnu_qty"])
            sell_vol = float(buy_sell_data[i]["total_seln_qty"])
            ratio = buy_vol / sell_vol if sell_vol > 0 else 0
            buy_sell_ratios.append(ratio)
    avg_ratio = sum(buy_sell_ratios) / len(buy_sell_ratios) if buy_sell_ratios else 0
    
    # 4. 종합 시장 심리 지표 (0~100)
    sentiment = (f_i_power * 0.5 + (1 - concentration) * 0.2 + avg_ratio * 0.3) * 100
    sentiment = max(0, min(sentiment, 100))  # 0~100 범위 제한
    
    if sentiment > 70:
        return "매우 긍정적", sentiment
    elif sentiment > 50:
        return "긍정적", sentiment
    elif sentiment > 30:
        return "부정적", sentiment
    else:
        return "매우 부정적", sentiment

결론

한국투자증권의 고급 API들은 단순한 시세 정보를 넘어 투자자들의 행동과 시장 심리를 심층적으로 분석할 수 있는 데이터를 제공합니다. 이러한 API들을 효과적으로, 그리고 창의적으로 조합하여 활용한다면, 보다 정교하고 정확한 투자 의사결정이 가능해질 것입니다.

profile
터널을 지나고 있을 뿐, 길은 여전히 열려 있다.

0개의 댓글

관련 채용 정보