feat: QMT Bridge 设为主数据源,新增指数日K支持及数据源文档

- QmtBridgeSource: provides 增加 index_daily,新增 fetch_index_daily 方法
- task_kline_index: 优先级改为 qmt_bridge → mairui → sina 三级降级
- task_kline_5min: 优先用 qmt_bridge,不可用时降级 mairui
- task_kline_daily: 优先级加入 qmt_bridge(首位)
- config: 新增 qmt_bridge_url 配置项
- registry: qmt_bridge 注册信息同步更新
- docs: 新增 DATASETS_AND_SOURCES.md,完整说明数据集与数据源依赖关系
- AGENTS.md: 同步更新指数数据源描述
This commit is contained in:
gao
2026-07-23 23:39:59 +08:00
parent 4516f6d75a
commit daef609e8b
9 changed files with 448 additions and 21 deletions
+3
View File
@@ -62,6 +62,9 @@ class Settings(BaseSettings):
pg_password: str = "market_sync"
pg_db_name: str = "market_data"
# QMT Bridge
qmt_bridge_url: str = "http://127.0.0.1:8610"
# Trading calendar
trading_holidays: str = ""
+12
View File
@@ -23,6 +23,16 @@ logger = get_logger("datasource_health")
_DATASOURCE_SEED: list[tuple[str, dict, str]] = [
(
"datasource_qmt_bridge",
{
"name": "QMT Bridge(本地行情桥)",
"provides": ["kline_daily", "kline_5min", "index_daily"],
"requiresCredential": False,
"note": "本地 QMT HTTP 桥,日K + 5分钟K + 指数日K 主源",
},
"日 K + 5 分钟 K + 指数日 K 主源(替代 mairui)",
),
(
"datasource_xinlang",
{
@@ -248,10 +258,12 @@ def build_default_registry() -> None:
from app.sources.baostock import BaostockSource
from app.sources.xueqiu import XueqiuSource
from app.sources.mairui import MairuiSource
from app.sources.qmt_bridge import QmtBridgeSource
registry.register(SinaSource())
registry.register(BaostockSource())
registry.register(MairuiSource())
registry.register(QmtBridgeSource())
if settings.xueqiu_token:
registry.register(XueqiuSource())
else:
+1 -1
View File
@@ -53,7 +53,7 @@ SYNC_DEFINITIONS: list[dict[str, Any]] = [
"storage_uri": "PG market_data.kline_index + indices",
"storage_layer": "pg",
"management_role": "原始源",
"source": "新浪指数日K",
"source": "QMT Bridge(主)→ 麦蕊 → 新浪 逐级 fallback",
"sync_script": "app.tasks.task_kline_index:run",
"dependency_ids": [],
"sort_order": 30,