The Complete Beginner's Guide to Korean Stock Market (KRX)

What is the Korean Stock Market? The Korean Stock Exchange, officially known as KRX (Korea Exchange), is one of Asia’s largest stock markets. It is operated by the Korea Exchange and headquartered in Busan, South Korea. KRX consists of three main markets: KOSPI – Korea Composite Stock Price Index (large-cap) KOSDAQ – Korea Securities Dealers Automated Quotations (small/mid-cap, tech-focused) KONEX – Korea New Exchange (startups and SMEs) KOSPI vs KOSDAQ KOSPI KOSDAQ Focus Large-cap, blue-chip Small/mid-cap, tech Listed companies ~800 ~1,600 Key stocks Samsung, Hyundai, LG Kakao, Celltrion Comparison Similar to NYSE Similar to NASDAQ Key Facts Total market cap: Approximately $2 trillion USD Trading currency: Korean Won (KRW) Settlement: T+2 Regulator: Financial Services Commission (FSC) Why Invest in Korean Stocks? Tech giants at a discount – Samsung, SK Hynix trade at lower valuations than US peers K-wave beneficiaries – Entertainment, beauty, and content companies EV battery leaders – LG Energy Solution, Samsung SDI, SK On Semiconductor exposure – Korea is home to two of the world’s top chip makers Next Steps Ready to start investing? Read our next guide on KOSPI vs KOSDAQ differences.

June 28, 2026 · 1 min · Phillip

KOSPI vs KOSDAQ: What's the Difference?

Overview When investing in Korean stocks, you’ll encounter two main markets: KOSPI and KOSDAQ. Understanding the difference is essential before you start trading. KOSPI (Korea Composite Stock Price Index) KOSPI is Korea’s main board — think of it as the Korean equivalent of the NYSE or S&P 500. Key characteristics: Established in 1956 Home to Korea’s largest companies (Samsung Electronics, Hyundai Motor, POSCO) More stable, lower volatility Dominated by institutional and foreign investors Stricter listing requirements Top KOSPI stocks: ...

June 27, 2026 · 1 min · Phillip

pykrx Tutorial: Pull Korean Stock Data with Python (2026)

What is pykrx? pykrx is an open-source Python library that pulls data from the KRX website. It is the easiest way to get Korean stock market data without needing a paid API. Installation pip install pykrx Basic Usage Get Stock Price History from pykrx import stock # Get Samsung Electronics (005930) price history df = stock.get_market_ohlcv_by_date("20240101", "20241231", "005930") print(df.head()) Get All KOSPI Tickers from pykrx import stock # Get all KOSPI tickers tickers = stock.get_market_ticker_list(market="KOSPI") print(f"Total KOSPI stocks: {len(tickers)}") # Get company name from ticker name = stock.get_market_ticker_name("005930") print(f"005930 = {name}") # Samsung Electronics Get Market Cap Data # Get market cap for all KOSPI stocks df = stock.get_market_cap_by_ticker("20241231", market="KOSPI") print(df.sort_values("시가총액", ascending=False).head(10)) Get Fundamental Data # Get PER, PBR, dividend yield df = stock.get_market_fundamental_by_ticker("20241231", market="KOSPI") print(df[["PER", "PBR", "DIV"]].head()) Building a Simple Screener from pykrx import stock def screen_low_per_stocks(market="KOSPI", max_per=10): today = "20241231" fundamentals = stock.get_market_fundamental_by_ticker(today, market=market) low_per = fundamentals[ (fundamentals["PER"] > 0) & (fundamentals["PER"] < max_per) ] low_per["name"] = [stock.get_market_ticker_name(t) for t in low_per.index] return low_per[["name", "PER", "PBR", "DIV"]].sort_values("PER") results = screen_low_per_stocks() print(results.head(20)) pykrx vs KIS API Comparison Feature pykrx KIS API Real-time data No Yes Historical data Yes Yes Order placement No Yes Cost Free Free (with account) Best for Research, backtesting Live trading

June 19, 2026 · 1 min · Phillip

Build a Korean Stock Screener with pykrx (Python Tutorial)

What We’re Building A Python-based Korean stock screener that: Pulls data from KRX via pykrx Filters stocks by multiple criteria (PER, PBR, volume) Exports results to CSV Can be automated with GitHub Actions Setup pip install pykrx pandas Complete Screener Code from pykrx import stock import pandas as pd from datetime import datetime, timedelta class KoreanStockScreener: def __init__(self, market="KOSPI"): self.market = market self.today = datetime.now().strftime("%Y%m%d") def get_all_data(self): fundamentals = stock.get_market_fundamental_by_ticker( self.today, market=self.market ) market_cap = stock.get_market_cap_by_ticker( self.today, market=self.market ) df = pd.concat([fundamentals, market_cap[["시가총액", "거래량"]]], axis=1) df["name"] = [stock.get_market_ticker_name(t) for t in df.index] return df def screen(self, max_per=15, max_pbr=1.5, min_div=2.0, min_volume=100000): df = self.get_all_data() filtered = df[ (df["PER"] > 0) & (df["PER"] < max_per) & (df["PBR"] > 0) & (df["PBR"] < max_pbr) & (df["DIV"] > min_div) & (df["거래량"] > min_volume) ] return filtered[["name", "PER", "PBR", "DIV", "시가총액", "거래량"]] def export(self, df, filename="screener_results.csv"): df.to_csv(filename, encoding="utf-8-sig") print(f"Saved {len(df)} stocks to {filename}") # Run screener screener = KoreanStockScreener(market="KOSPI") results = screener.screen(max_per=12, max_pbr=1.2, min_div=3.0) print(results.head(20)) screener.export(results) Automating with GitHub Actions Create .github/workflows/screener.yml: ...

June 18, 2026 · 2 min · Phillip

Automate Korean Stock Alerts with GitHub Actions

Overview In this guide, we’ll build a free automated stock alert system that: Runs every day at market open (9 AM KST) Screens Korean stocks using pykrx Sends alerts via Telegram Requires zero server infrastructure (GitHub Actions is free) Prerequisites GitHub account Telegram account Basic Python knowledge Step 1: Create a Telegram Bot Open Telegram and search for @BotFather Send /newbot command Choose a name and username for your bot Save the API token you receive Step 2: Get Your Chat ID Send a message to your new bot Visit: https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates Find your chat_id in the response Step 3: Create the Alert Script # alert.py import requests from pykrx import stock from datetime import datetime import os TELEGRAM_TOKEN = os.environ["TELEGRAM_TOKEN"] TELEGRAM_CHAT_ID = os.environ["TELEGRAM_CHAT_ID"] def send_telegram(message): url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage" payload = {"chat_id": TELEGRAM_CHAT_ID, "text": message, "parse_mode": "HTML"} requests.post(url, json=payload) def get_top_movers(): today = datetime.now().strftime("%Y%m%d") df = stock.get_market_ohlcv_by_ticker(today, market="KOSPI") df["change_pct"] = (df["종가"] - df["시가"]) / df["시가"] * 100 top_gainers = df.nlargest(5, "change_pct") return top_gainers def main(): movers = get_top_movers() message = "<b>Korean Market Alert - Top Movers Today</b>\n\n" for ticker, row in movers.iterrows(): name = stock.get_market_ticker_name(ticker) message += f"{name} ({ticker}): +{row['change_pct']:.1f}%\n" send_telegram(message) if __name__ == "__main__": main() Step 4: GitHub Actions Workflow Create .github/workflows/alert.yml: ...

June 17, 2026 · 2 min · Phillip

How to Read Korean Financial Statements in English

Where to Find Korean Financial Statements DART (Data Analysis, Retrieval and Transfer System) DART (dart.fss.or.kr) is Korea’s official financial disclosure system — equivalent to the US SEC EDGAR. All Korean listed companies must file reports here. DART now offers an English interface and many large companies file English versions of their reports. Key Report Types Korean Name English Name Frequency 사업보고서 Annual Report Yearly 반기보고서 Semi-annual Report Every 6 months 분기보고서 Quarterly Report Every 3 months 공정공시 Fair Disclosure As needed Key Financial Terms Income Statement (손익계산서) Korean English 매출액 Revenue / Sales 영업이익 Operating Income 당기순이익 Net Income EPS (주당순이익) Earnings Per Share Balance Sheet (재무상태표) Korean English 자산총계 Total Assets 부채총계 Total Liabilities 자본총계 Total Equity 부채비율 Debt-to-Equity Ratio Key Ratios Korean English What to Look For PER P/E Ratio Lower = cheaper PBR P/B Ratio Below 1 = undervalued ROE Return on Equity Higher = better DIV Dividend Yield Higher = more income Using DART API for Automated Data DART provides a free API for programmatic access: ...

June 13, 2026 · 2 min · Phillip

Korea's EV Battery Sector: Complete Investor Guide (2026)

Why Korea Dominates EV Batteries South Korea is home to three of the world’s top EV battery manufacturers, collectively known as the K-Battery trio: LG Energy Solution (373220) — World’s second largest EV battery maker Samsung SDI (006400) — Premium batteries for BMW, Stellantis SK On (subsidiary of SK Innovation 096770) — Batteries for Ford, Hyundai Together, these three companies supply batteries to most major global automakers. The K-Battery Supply Chain Korea’s battery ecosystem extends beyond the three cell makers: ...

June 12, 2026 · 2 min · Phillip