一、韩国金融市场特色与数据价值
韩国作为亚洲第四大经济体,其金融市场具有以下显著特点:
- 高波动性:KOSPI指数日均波动率1.5%左右
- 科技股主导:三星电子、SK海力士等科技巨头占比超40%
- 独特交易机制:上午9:00-15:30(KST),午间不休市
- 活跃IPO市场:2023年韩国IPO融资额位居亚洲前列
- 外资占比高:外资持股比例平均达30-40%
二、环境配置与基础对接
1. API密钥与基础配置
- # 基础配置
- API_KEY = "your_korea_api_key" # 通过官网申请
- BASE_URL = "https://api.stocktv.top"
- KOREA_ID = 17 # 韩国国家代码
- KOSPI_EXCHANGE = "KRX" # 韩国交易所代码
- # 时区设置
- import pytz
- kst = pytz.timezone('Asia/Seoul')
复制代码 2. 安装必要库
- pip install requests websocket-client pandas plotly python-dotenv
复制代码 三、K线数据专业对接方案
1. 多周期K线获取接口
- def get_korea_kline(stock_code, interval="1d", market="KOSPI"):
- """
- 获取韩国股票K线数据
- :param stock_code: 股票代码(如005930)
- :param interval: 时间间隔(1m/5m/15m/1h/1d)
- :param market: 市场类型(KOSPI/KOSDAQ)
- """
- url = f"{BASE_URL}/stock/kline"
- params = {
- "symbol": stock_code,
- "market": market,
- "interval": interval,
- "countryId": KOREA_ID,
- "key": API_KEY
- }
- response = requests.get(url, params=params)
- data = response.json()
-
- # 转换为DataFrame并处理时区
- df = pd.DataFrame(data['data'])
- df['time'] = pd.to_datetime(df['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert(kst)
- return df
- # 获取三星电子(005930)日K数据
- samsung_kline = get_korea_kline("005930", interval="1d")
复制代码 2. 专业K线可视化(支持韩国特色指标)
- import plotly.graph_objects as go
- from plotly.subplots import make_subplots
- def plot_korean_stock(df, title):
- # 创建带成交量的子图
- fig = make_subplots(rows=2, cols=1, shared_xaxes=True,
- vertical_spacing=0.05,
- row_heights=[0.7, 0.3])
-
- # K线主图
- fig.add_trace(go.Candlestick(
- x=df['time'],
- open=df['open'],
- high=df['high'],
- low=df['low'],
- close=df['close'],
- name='K线',
- increasing_line_color='red', # 韩国市场通常用红色表示上涨
- decreasing_line_color='blue' # 蓝色表示下跌
- ), row=1, col=1)
-
- # 添加韩国常用的5/20/60日均线
- for period in [5, 20, 60]:
- df[f'MA{period}'] = df['close'].rolling(period).mean()
- fig.add_trace(go.Scatter(
- x=df['time'],
- y=df[f'MA{period}'],
- name=f'MA{period}',
- line=dict(width=1)
- ), row=1, col=1)
-
- # 成交量柱状图
- fig.add_trace(go.Bar(
- x=df['time'],
- y=df['volume'],
- name='成交量',
- marker_color='grey'
- ), row=2, col=1)
-
- fig.update_layout(
- title=f'{title} - 韩国市场',
- xaxis_title='首尔时间(KST)',
- yaxis_title='价格(KRW)',
- template="plotly_white",
- hovermode="x unified"
- )
-
- fig.update_xaxes(
- rangeslider_visible=False,
- rangebreaks=[{'bounds': ['sat', 'mon']}] # 隐藏周末
- )
-
- fig.show()
- 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 = "
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |