找回密码
 立即注册
首页 业界区 安全 对接韩国金融市场数据全指南:K线、实时行情与IPO新股 ...

对接韩国金融市场数据全指南:K线、实时行情与IPO新股

奸轲嫣 2025-6-1 18:27:39
一、韩国金融市场特色与数据价值

韩国作为亚洲第四大经济体,其金融市场具有以下显著特点:

  • 高波动性:KOSPI指数日均波动率1.5%左右
  • 科技股主导:三星电子、SK海力士等科技巨头占比超40%
  • 独特交易机制:上午9:00-15:30(KST),午间不休市
  • 活跃IPO市场:2023年韩国IPO融资额位居亚洲前列
  • 外资占比高:外资持股比例平均达30-40%
二、环境配置与基础对接

1. API密钥与基础配置
  1. # 基础配置
  2. API_KEY = "your_korea_api_key"  # 通过官网申请
  3. BASE_URL = "https://api.stocktv.top"
  4. KOREA_ID = 17  # 韩国国家代码
  5. KOSPI_EXCHANGE = "KRX"  # 韩国交易所代码
  6. # 时区设置
  7. import pytz
  8. kst = pytz.timezone('Asia/Seoul')
复制代码
2. 安装必要库
  1. pip install requests websocket-client pandas plotly python-dotenv
复制代码
三、K线数据专业对接方案

1. 多周期K线获取接口
  1. def get_korea_kline(stock_code, interval="1d", market="KOSPI"):
  2.     """
  3.     获取韩国股票K线数据
  4.     :param stock_code: 股票代码(如005930)
  5.     :param interval: 时间间隔(1m/5m/15m/1h/1d)
  6.     :param market: 市场类型(KOSPI/KOSDAQ)
  7.     """
  8.     url = f"{BASE_URL}/stock/kline"
  9.     params = {
  10.         "symbol": stock_code,
  11.         "market": market,
  12.         "interval": interval,
  13.         "countryId": KOREA_ID,
  14.         "key": API_KEY
  15.     }
  16.     response = requests.get(url, params=params)
  17.     data = response.json()
  18.    
  19.     # 转换为DataFrame并处理时区
  20.     df = pd.DataFrame(data['data'])
  21.     df['time'] = pd.to_datetime(df['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert(kst)
  22.     return df
  23. # 获取三星电子(005930)日K数据
  24. samsung_kline = get_korea_kline("005930", interval="1d")
复制代码
2. 专业K线可视化(支持韩国特色指标)
  1. import plotly.graph_objects as go
  2. from plotly.subplots import make_subplots
  3. def plot_korean_stock(df, title):
  4.     # 创建带成交量的子图
  5.     fig = make_subplots(rows=2, cols=1, shared_xaxes=True,
  6.                        vertical_spacing=0.05,
  7.                        row_heights=[0.7, 0.3])
  8.    
  9.     # K线主图
  10.     fig.add_trace(go.Candlestick(
  11.         x=df['time'],
  12.         open=df['open'],
  13.         high=df['high'],
  14.         low=df['low'],
  15.         close=df['close'],
  16.         name='K线',
  17.         increasing_line_color='red',  # 韩国市场通常用红色表示上涨
  18.         decreasing_line_color='blue'  # 蓝色表示下跌
  19.     ), row=1, col=1)
  20.    
  21.     # 添加韩国常用的5/20/60日均线
  22.     for period in [5, 20, 60]:
  23.         df[f'MA{period}'] = df['close'].rolling(period).mean()
  24.         fig.add_trace(go.Scatter(
  25.             x=df['time'],
  26.             y=df[f'MA{period}'],
  27.             name=f'MA{period}',
  28.             line=dict(width=1)
  29.         ), row=1, col=1)
  30.    
  31.     # 成交量柱状图
  32.     fig.add_trace(go.Bar(
  33.         x=df['time'],
  34.         y=df['volume'],
  35.         name='成交量',
  36.         marker_color='grey'
  37.     ), row=2, col=1)
  38.    
  39.     fig.update_layout(
  40.         title=f'{title} - 韩国市场',
  41.         xaxis_title='首尔时间(KST)',
  42.         yaxis_title='价格(KRW)',
  43.         template="plotly_white",
  44.         hovermode="x unified"
  45.     )
  46.    
  47.     fig.update_xaxes(
  48.         rangeslider_visible=False,
  49.         rangebreaks=[{'bounds': ['sat', 'mon']}]  # 隐藏周末
  50.     )
  51.    
  52.     fig.show()
  53. plot_korean_stock(samsung_kline, "三星电子(005930)")
复制代码
四、实时行情数据对接

1. WebSocket实时数据订阅

[code]class KoreaRealtimeData:    def __init__(self):        self.symbol_map = {            "005930": "三星电子",            "000660": "SK海力士",            "035420": "NAVER"        }        def on_message(self, ws, message):        data = json.loads(message)                # 处理股票行情        if data.get('type') == 'stock':            symbol = data['symbol']            name = self.symbol_map.get(symbol, symbol)            change = data.get('chgPct', 0)                        # 韩国市场特殊颜色表示            color = "
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册