feat(flask): OHLCV 端点自动附加 ETF 净值和溢价率
flask_server.py: - 当 asset_type 为 china_etf 时,自动调用 fetch_etf_with_nav - 响应中添加 nav、premium_series、latest_premium、premium_stats flask_api_source.py: - 解析 ETF 数据中的净值和溢价率信息 - 将 nav_df、premium_series、premium_stats 存入 DataFrame.attrs
This commit is contained in:
@@ -142,6 +142,30 @@ class FlaskAPIDataSource:
|
||||
if 'info' in data:
|
||||
df.attrs['info'] = data['info']
|
||||
|
||||
# ETF 数据自动附加净值和溢价率信息
|
||||
if data.get('asset_type') == 'china_etf':
|
||||
# 净值数据
|
||||
nav_section = data.get('nav', {})
|
||||
if nav_section.get('data'):
|
||||
nav_df = pd.DataFrame(nav_section['data'])
|
||||
if 'date' in nav_df.columns:
|
||||
nav_df['date'] = pd.to_datetime(nav_df['date'])
|
||||
nav_df = nav_df.set_index('date')
|
||||
df.attrs['nav'] = nav_df
|
||||
|
||||
# 溢价率序列
|
||||
if 'premium_series' in data:
|
||||
df.attrs['premium_series'] = data['premium_series']
|
||||
|
||||
# 最新溢价率
|
||||
if 'latest_premium' in data:
|
||||
df.attrs['latest_premium'] = data['latest_premium']
|
||||
df.attrs['premium_date'] = data.get('premium_date')
|
||||
|
||||
# 溢价率统计
|
||||
if 'premium_stats' in data:
|
||||
df.attrs['premium_stats'] = data['premium_stats']
|
||||
|
||||
print(f"✓ {code}: {len(df)} 条数据 ({start_date} ~ {end_date})")
|
||||
return df
|
||||
|
||||
|
||||
Reference in New Issue
Block a user