2025년 6월 28일 토요일

[TIP] 주식 검색시 바닥종목 찾는 방법 검색식

 주식검색시 바닥종목 찾는 방법


주식에서 **"바닥 종목"**을 찾는 것은 상승 전환 가능성이 있는 저점의 주식을 선별하는 전략입니다. 

바닥 종목은 과매도 상태, 지지선 근처, 거래량 변화, 기술적 반등 신호 등이 관찰됩니다. 

아래는 바닥 종목을 찾기 위한 대표적인 방법과 조건들입니다:


1. 기술적 지표 활용

 RSI (상대강도지수)

  • 조건: RSI(14) < 30 (과매도 구간)

  • RSI가 30 이하이면 매도세가 과도한 상태로 반등 가능성 있음

 Stochastic Slow

  • %K < 20, %D < 20: 바닥 근처에서 반등 신호 가능

  • %K가 %D를 아래에서 위로 골든크로스 시 더욱 신뢰도 상승

 MACD

  • MACD선이 시그널선 아래에서 상승 전환(Golden Cross)

  • MACD 히스토그램이 마이너스에서 플러스로 전환

 이격도

  • 5일선이나 20일선 대비 현재가가 과도하게 하락한 경우 (예: 이격도 < 90%)


 2. 차트 패턴 분석

  • 이중 바닥 (W자형 패턴): 두 번의 저점을 만들고 반등 시도

  • 박스권 하단 지지 확인: 일정 구간에서 계속 지지를 받는 패턴

  • 장대음봉 후 장대양봉 출현: 매도 후 저점 매수세 유입 신호


 3. 거래량 분석

  • 거래량 감소 → 바닥 다지기

  • 바닥권에서 급증하는 거래량은 매집 신호 가능


 4. 가격 조건

  • 최근 52주 저가 근처

  • 최근 일정 기간 (예: 3개월) 내 최저가 부근


 5. 조건식 예시 (주식 스크리너용)

RSI(14) < 30 AND 현재가 <= 최저가(20일) * 1.05 AND 거래량 > 거래량 평균(5일) AND MACD 골든크로스 발생

 6. 유의사항

  • 바닥이라고 확신하기 어려움 → 추세 전환 확인이 중요

  • 무조건 반등보다는 시간 지연이 자주 발생

  • 뉴스, 재무 상태, 공매도, 시장 상황 등 종합 판단 필요


그리고 해외 경제 세계의 여러 이슈도 확인이 필요하것지.... 

[TIP] 한국 주식 전용 차트 검색식 만글기 위한 기본적인것

 요즘 장이 정말 핫 하다.

그래서 혼자 심심하기에 이것 저것 알아도 보고 공부도 할겸 작성하게 됨.

아래는 그기본적인 것들.


한국 주식 전용 "차트 검색식"을 만들고 싶다면, 아래와 같은 요소들을 포함하여 구현할 수 있습니다.

 "차트 검색식"은 조건 검색(예: 골든크로스, RSI 30 이하 등)을 의미하는 것.

!! 목표:

"조건식 기반 한국 주식 차트 검색 기능 만들기"

예: 이동평균선 골든크로스가 발생한 종목만 검색

RSI가 30 이하인 종목만 필터링해서 차트 보여주기

!! 구성요소

1. 데이터 소스

한국 주식 데이터는 공식적으로는 아래 두 가지를 활용할 수 있습니다.


- 방법 A: 한국투자증권 API (KIS OpenAPI)

국내 주식 실시간, 일봉, 분봉, 조건검색 등 가능

OAuth2 인증 필요

실전 매매까지 가능

> 공식 문서: https://apiportal.koreainvestment.com/


- 방법 B: 크롤링/비공식 라이브러리 (연습용/비추천)

pykrx (한국거래소의 일봉/재무데이터)

네이버금융 크롤링 (제약 많고 차단 위험 있음)

pip install pykrx

예시:

from pykrx import stock
from datetime import datetime

# 삼성전자 일봉 데이터
df = stock.get_market_ohlcv_by_date("20240101", "20240628", "005930")
print(df.head())


2. 검색식 구현 예시 (Python)

예: 5일 이동평균선이 20일선 돌파 (골든크로스)

import pandas as pd

def find_golden_cross(df):
    df['MA5'] = df['종가'].rolling(window=5).mean()
    df['MA20'] = df['종가'].rolling(window=20).mean()
    df['prev_cross'] = df['MA5'].shift(1) > df['MA20'].shift(1)
    df['curr_cross'] = df['MA5'] > df['MA20']
    # 골든크로스 발생 조건
    return (df['prev_cross'] == False) & (df['curr_cross'] == True)

이걸 모든 종목에 반복해서 돌리면 조건식 검색 완성.


3.  프론트 UI 예시

종목 조건 선택: RSI < 30, MACD 상승, 이동평균선 돌파 등

종목 리스트: 조건 만족하는 종목들 나열

차트 보기 버튼 → 차트 팝업 or 페이지 이동


4.  전체 워크플로우

1. pykrx 또는 KIS API로 종목별 OHLCV 데이터 수집

2. Python 또는 백엔드에서 조건식 처리

3. 조건 만족하는 종목 리스트 프론트로 전달

4. 프론트에서는 종목 클릭 시 차트 표시


!! 예시: RSI 30 이하 종목 리스트 출력

def compute_rsi(data, period=14):
    delta = data['종가'].diff()
    gain = delta.where(delta > 0, 0)
    loss = -delta.where(delta < 0, 0)
    avg_gain = gain.rolling(period).mean()
    avg_loss = loss.rolling(period).mean()
    rs = avg_gain / avg_loss
    rsi = 100 - (100 / (1 + rs))
    return rsi

from pykrx import stock
import pandas as pd

tickers = stock.get_market_ticker_list()
rsi_30_list = []

for code in tickers:
    df = stock.get_market_ohlcv_by_date("20240501", "20240628", code)
    df['RSI'] = compute_rsi(df)
    if df['RSI'].iloc[-1] < 30:
        rsi_30_list.append((code, stock.get_market_ticker_name(code), df['RSI'].iloc[-1]))

print(rsi_30_list)


!! 요약

구성 내용

데이터 pykrx 또는 한국투자 API
검색식 Python으로 조건 계산 (RSI, MA, MACD 등)
종목 필터링 조건 만족 종목 리스트 추출
차트 표시 프론트엔드에서 차트.js 등으로 시각화



대충 이런식으로 가능하다는....

[TIP] 주식 차트 검색 만드는법 종목 등

주식 차트 검색 기능을 만드는 방법은 사용 목적(웹사이트, 앱, 데스크탑), 사용하는 기술 스택(React, Python, etc.), 데이터 출처(공공 API, 유료 데이터 제공자 등)에 따라 달라지지만, 일반적인 웹 기반 주식 차트 검색 기능을 만드는 기본 흐름은 다음과 같습니다.


1. 주식 데이터 소스 선정

무료 API 예시:

  • Yahoo Finance API (비공식 or yfinance 파이썬 라이브러리)

  • Alpha Vantage

  • [Korea Investment API (한국)] – 한국 주식은 인증 필요

  • FRED – 미국 경제 지표



2. 프론트엔드 – 사용자 인터페이스 만들기

기능 예시:

  • 종목 검색창 (input)

  • 기간 선택 (1일, 1주, 1달, 3달, 1년 등)

  • 차트 렌더링 (캔들차트, 라인차트 등)

사용 기술 예시 (웹):

  • React + Tailwind CSS

  • Chart.js / Recharts / ApexCharts 등 차트 라이브러리

tsx

// React 예시 import { Line } from 'react-chartjs-2'; const StockChart = ({ data }) => { const chartData = { labels: data.dates, datasets: [ { label: '종가', data: data.close, borderColor: 'blue', fill: false, }, ], }; return <Line data={chartData} />; };



3. 백엔드 – 데이터 요청 및 처리

예: Python Flask + yfinance

python

from flask import Flask, request, jsonify import yfinance as yf app = Flask(__name__) @app.route("/api/stock") def get_stock(): symbol = request.args.get("symbol") period = request.args.get("period", "1mo") data = yf.Ticker(symbol).history(period=period) return jsonify({ "dates": data.index.strftime('%Y-%m-%d').tolist(), "close": data["Close"].tolist() })


4. 연동 – 프론트에서 백엔드 호출

javascript

// React에서 데이터 요청 const fetchStockData = async (symbol) => { const res = await fetch(`/api/stock?symbol=${symbol}`); const json = await res.json(); setChartData(json); };

5. 고급 기능 (선택 사항)

  • 종목 자동완성 (ticker list)

  • 차트 유형 선택 (캔들/라인)

  • 기술 지표 추가 (이동평균선, RSI, MACD 등)

  • 실시간 데이터 WebSocket (Advanced)

요약 흐름

  1. 사용자가 종목을 입력

  2. 프론트에서 백엔드에 API 요청

  3. 백엔드가 주식 API로부터 데이터 수집

  4. 프론트가 차트로 데이터 시각화


이렇게 기본 적인 설명이 있다.