From 614a688bf840c85dc3764818392648a9d931e80d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BE=81=E5=BE=81?= Date: Sat, 5 Apr 2025 09:38:45 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs(qlib=5Fweb=5Fplatform):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20UI/UX=20=E4=BC=98=E5=8C=96=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E6=96=87=E6=A1=A3=E5=B9=B6=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=88=9B=E5=BB=BA=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增《Qlib Web 平台 UI/UX 优化方案设计文档》,详细阐述了平台的设计目标、核心哲学和模块设计 - 实现了模型创建页面(create_model.html),包括基本信息、训练配置、模型配置和数据配置等部分- 页面采用了模块化设计,支持动态显示不同模型类型的参数输入- 集成了高级配置切换功能,用户可以选择使用常用参数或原始配置 - 页面样式使用了 Tailwind CSS,符合现代 Web 设计标准 --- DESIGN_DOC_UI_UX.md | 33 ++ .../LSTM/workflow_config_lstm_Alpha158.yaml | 12 +- my_work/cursor_rules.md | 23 + my_work/demo.py | 321 ++++++++++++ qlib_web_platform/DESIGN_DOC_UI_UX.md | 133 +++++ qlib_web_platform/create_model.html | 249 +++++++++ qlib_web_platform/create_strategy.html | 276 ++++++++++ qlib_web_platform/dashboard.html | 115 +++++ qlib_web_platform/data_management.html | 203 ++++++++ qlib_web_platform/edit_model.html | 255 ++++++++++ qlib_web_platform/live_trading.html | 213 ++++++++ qlib_web_platform/models.html | 150 ++++++ qlib_web_platform/strategies.html | 477 ++++++++++++++++++ qlib_web_platform/strategy_detail.html | 377 ++++++++++++++ 14 files changed, 2829 insertions(+), 8 deletions(-) create mode 100644 DESIGN_DOC_UI_UX.md create mode 100644 my_work/cursor_rules.md create mode 100644 my_work/demo.py create mode 100644 qlib_web_platform/DESIGN_DOC_UI_UX.md create mode 100644 qlib_web_platform/create_model.html create mode 100644 qlib_web_platform/create_strategy.html create mode 100644 qlib_web_platform/dashboard.html create mode 100644 qlib_web_platform/data_management.html create mode 100644 qlib_web_platform/edit_model.html create mode 100644 qlib_web_platform/live_trading.html create mode 100644 qlib_web_platform/models.html create mode 100644 qlib_web_platform/strategies.html create mode 100644 qlib_web_platform/strategy_detail.html diff --git a/DESIGN_DOC_UI_UX.md b/DESIGN_DOC_UI_UX.md new file mode 100644 index 0000000000..099e4e2240 --- /dev/null +++ b/DESIGN_DOC_UI_UX.md @@ -0,0 +1,33 @@ +### 2.1. 模型管理 (Model Management) + +* **目的**: 创建、训练、管理和评估用于预测的机器学习模型。产出可供策略使用的"已训练模型"。 +* **主要页面**: + * **`models.html` (模型列表页)**: + * **功能**: 展示所有已创建的模型及其状态和关键信息。提供新建模型入口。 + * **表格列**: + * 名称 + * 类型 (LightGBM, LSTM, ...) + * **训练周期** (例如: "2018-01-01 - 2022-12-31") + * **训练股票池** (例如: "CSI 300") + * **特征集** (例如: "Alpha158", 使用 `truncate` 显示,`title` 显示完整内容) + * **标签** (例如: "Ref($close,-2)/Ref($close,-1)-1", 使用 `truncate` 显示,`title` 显示完整内容) + * 状态 (草稿, 训练中..., 已训练, 失败) + * 创建时间 + * 操作 (详情/编辑, 训练/重新训练, 删除, 取消训练等,根据状态显示不同按钮) + * **`create_model.html` (新建模型页)**: + * **功能**: 配置并启动一个新的模型训练任务。 + * **卡片/区域**: + * **基本信息**: 模型名称 (必填), 模型描述。 + * **训练配置 (Training Configuration - 新增)**: + * 训练开始日期 (必填, `date`) + * 训练结束日期 (必填, `date`) + * 训练股票池 (必填, `select`, 包含 CSI 300, CSI 500, 全市场A股等) + * 所用特征集 (必填, `text`, placeholder: "例如: Alpha158, VWAP") + * 标签/预测目标 (必填, `text`, placeholder: "例如: Ref($close,-2)/Ref($close,-1)-1") + * **模型配置 (Model Configuration)**: + * 模型类型 (必填, `select`, LightGBM, LSTM, ...) + * 模型参数 (根据类型动态显示常用参数输入,或提供高级 YAML/JSON 配置入口) + * **数据配置 (Data Configuration - 已精简)**: *此部分原始目的是映射 Qlib DataHandler 配置。为避免与"训练配置"重复,已移除标的范围(Universe)、特征、标签、训练期、验证期等字段。当前仅保留"数据源"和"数据频率"字段,用于定义基础数据访问信息。其最终必要性待后续审视。* + * **操作按钮**: 取消, 保存草稿, **保存并开始训练**。 + * **`edit_model.html` (编辑/详情页)**: + * **功能**: 查看模型详细配置、训练状态、训练日志(未来)、评估结果(未来),并可编辑配置(对于草稿状态)或触发重新训练。 \ No newline at end of file diff --git a/examples/benchmarks/LSTM/workflow_config_lstm_Alpha158.yaml b/examples/benchmarks/LSTM/workflow_config_lstm_Alpha158.yaml index 522f6443cb..c967da66b5 100755 --- a/examples/benchmarks/LSTM/workflow_config_lstm_Alpha158.yaml +++ b/examples/benchmarks/LSTM/workflow_config_lstm_Alpha158.yaml @@ -17,18 +17,14 @@ data_handler_config: &data_handler_config "ROC60", "RESI10", "VSTD5", "RSQR60", "CORR60", "WVMA60", "STD5", "RSQR20", "CORD60", "CORD10", "CORR20", "KLOW" ] - - class: RobustZScoreNorm + - class: ZScoreNorm kwargs: fields_group: feature - clip_outlier: true - class: Fillna kwargs: fields_group: feature learn_processors: - class: DropnaLabel - - class: CSRankNorm - kwargs: - fields_group: label label: ["Ref($close, -2) / Ref($close, -1) - 1"] port_analysis_config: &port_analysis_config @@ -59,13 +55,13 @@ task: hidden_size: 64 num_layers: 2 dropout: 0.0 - n_epochs: 200 - lr: 1e-3 + n_epochs: 20 + lr: 1e-5 early_stop: 10 batch_size: 800 metric: loss loss: mse - n_jobs: 20 + n_jobs: 8 GPU: 0 dataset: class: TSDatasetH diff --git a/my_work/cursor_rules.md b/my_work/cursor_rules.md new file mode 100644 index 0000000000..4370d450bc --- /dev/null +++ b/my_work/cursor_rules.md @@ -0,0 +1,23 @@ +# Cursor AI Assistant Rules & Context + +## Project Goal +Learn the Qlib framework for quantitative trading by studying its source code. + +## Qlib Source Location +The main Qlib source code is located at the workspace root: `/Users/chengzheng/workspace/trade/qlib` + +## User Workspace +My personal learning scripts and experiments related to Qlib will be created and stored within the `/Users/chengzheng/workspace/trade/qlib/my_work/` directory. Please place any new scripts or generated files here unless otherwise specified. + +## Learning Objectives +- Master the application of all algorithms within Qlib for quantitative trading, including strategy design and backtesting. +- Select and implement specific AI algorithms (learned through Qlib) to build custom trading strategies. +- Gain knowledge in Deep Learning (DL) and Reinforcement Learning (RL) concepts, particularly their application in quantitative finance, potentially using Qlib examples. +- Understand the overall architecture and design principles of the Qlib framework, referencing official documentation (e.g., [Qlib Quick Start](https://www.wuzao.com/document/qlib/introduction/quick.html)) and source code, to enable effective modular usage and customization. + +## Interaction Style +- Assume I have access to the Qlib source code in the specified location. +- When discussing code, refer to file paths relative to the Qlib root (`/Users/chengzheng/workspace/trade/qlib`). +- When creating new code or examples for me, place them in the `my_work/` directory. +- Follow the RIPER-5 protocol for structured interaction. +- Prioritize Chinese for general conversation, while adhering to the protocol's format requirements for specific elements (e.g., mode declarations, checklists). \ No newline at end of file diff --git a/my_work/demo.py b/my_work/demo.py new file mode 100644 index 0000000000..925e41707e --- /dev/null +++ b/my_work/demo.py @@ -0,0 +1,321 @@ +import json +import uuid + +import mysql.connector +from typing import List, Dict +from urllib.parse import quote + + +def get_mysql_connection(): + """获取MySQL连接""" + try: + connection = mysql.connector.connect( + host='gaea.test.mysql03.b2c.srv', # 数据库主机地址 + port=13616, + user='micar_site_sv22_wn', # 数据库用户名 + password='e3vpM8dEtctXFMgKqt-eneLzK_iOoyY9', # 数据库密码 + database='micar_site_staging' # 数据库名称 + ) + return connection + except mysql.connector.Error as e: + print(f"连接MySQL失败: {e}") + return None + + +connection = get_mysql_connection() + + +def execute_query(query: str) -> List[Dict]: + """执行SQL查询并返回结果列表""" + results = [] + # connection = get_mysql_connection() + + if connection: + try: + cursor = connection.cursor(dictionary=True) + cursor.execute(query) + results = cursor.fetchall() + cursor.close() + except mysql.connector.Error as e: + print(f"执行查询失败: {e}") + # finally: + # connection.close() + + return results + + +def url_encode(url: str) -> str: + """对URL进行编码""" + return 'https://www.xiaomiev.com/communityWeb?_rt=ft&url=' + quote(url) + + +def get_module_list(page_id: str) -> List[str]: + """获取指定页面的模块列表""" + query = f"select module_id from site_page_module_tmp where page_id='{page_id}' order by priority" + result_list = execute_query(query) + return [row['module_id'] for row in result_list] + + +def get_module_items(page_id: str, module_id: str) -> List[Dict]: + """获取指定页面和模块的内容项列表""" + query = f"select * from site_page_module_item_tmp where page_id='{page_id}' and module_id='{module_id}' and parent_key='' order by priority" + result_list = execute_query(query) + return result_list + + +def get_module_items_by_parent(page_id: str, module_id: str, parent_key: str) -> List[Dict]: + """获取指定页面和模块的内容项列表""" + query = f"select * from site_page_module_item_tmp where page_id='{page_id}' and module_id='{module_id}' and parent_key='{parent_key}' order by priority" + result_list = execute_query(query) + return result_list + + +def parse_img(item: Dict) -> Dict: + """解析图片类型的内容项""" + img = { + "src": item['src'], + "height": item['height'], + "width": item['width'] + } + img_fold = { + "src": item['src_fold'], + "height": item['height'], + "width": item['width'] + } + action = None + if item['action_type'] == 'link': + link_url = item['link_url'] + if item['link_type'] == 0: + link_url = url_encode(link_url) + + action = { + "type": item['action_type'], + "linkUrl": link_url + } + if item['action_text'] != '': + action['text'] = item['action_text'] + + res = { + "type": 'image', + "image": img, + "imageFold": img_fold, + "action": action + } + + if item['title'] != '': + res['title'] = item['title'] + if item['subtitle'] != '': + res['subTitle'] = item['subtitle'] + + uuid1 = str(uuid.uuid4()).replace('-', '') + res['_track'] = { + 'itemId': uuid1, + 'itemName': item['title'] + } + + return res + + +def parse_video(item: Dict) -> Dict: + video = { + "src": item['src'], + 'cover': item['cover'], + "height": int(item['height']), + "width": int(item['width']), + 'duration': int(item['duration']) + } + video_fold = { + "src": item['src_fold'], + 'cover': item['cover_fold'], + "height": int(item['height']), + "width": int(item['width']), + 'duration': int(item['duration']) + } + action = None + if item['action_type'] == 'link': + + link_url = item['link_url'] + if item['link_type'] == 0: + link_url = url_encode(link_url) + '&transition_background_color=%23000000' + + action = { + "type": item['action_type'], + "linkUrl": link_url + } + + res = { + "type": 'video', + "video": video, + "videoFold": video_fold, + "image": video, + "imageFold": video_fold, + "action": action + } + + if item['title'] != '': + res['title'] = item['title'] + if item['subtitle'] != '': + res['subTitle'] = item['subtitle'] + + uuid1 = str(uuid.uuid4()).replace('-', '') + res['_track'] = { + 'itemId': uuid1, + 'itemName': item['title'] + } + + return res + + +def parse_tab_item(page_id, module_id, item: Dict) -> Dict: + tab_item = { + "tabId": item['key'], + "text": item['text'], + "selected": True if item['selected'] == 1 else False + } + if item['key'] == '': + return tab_item + items = get_module_items_by_parent(page_id, module_id, item['key']) + if len(items) > 0: + tab_item_content = [] + for sub_item in items: + item = {} + sub_type = sub_item['type'] + if sub_type == 'image': + item = parse_img(sub_item) + elif sub_type == 'video': + item = parse_video(sub_item) + tab_item_content.append(item) + + if len(tab_item_content) > 0: + tab_item['content'] = { + 'data': tab_item_content + } + + return tab_item + + +def parse_module_config(page_id, module: Dict) -> Dict: + component = module['component'] + module_id = module['module_id'] + items = get_module_items(page_id, module_id) + data_list = [] + # 遍历并打印每个模块项 + for item in items: + item_type = item['type'] + obj = {} + if item_type == 'image': + obj = parse_img(item) + data_list.append(obj) + elif item_type == 'video': + obj = parse_video(item) + data_list.append(obj) + elif item_type == 'tabItem': + obj = parse_tab_item(page_id, module_id, item) + data_list.append(obj) + + extra = None + if module['extra'] is not None: + extra = json.loads(module['extra']) + + if component == 'Tabs': + return { + "items": data_list + } + + if component == 'Banner': + return { + "data": data_list + } + + if component == 'Navigation': + return { + 'title': module['title'], + 'columns': int(module['columns']), + "data": data_list, + 'extra': extra + } + + if component == 'News': + return { + 'title': module['title'], + "data": data_list, + 'extra': extra + } + + if component == 'TabNews': + return { + 'title': module['title'], + "items": data_list + } + + if component == 'ActivityList': + return { + 'title': module['title'], + "more": extra + } + + if component == 'TabFeeds': + return { + 'title': module['title'], + "items": data_list + } + + return {} + + +def get_page_config(page_id, page_title): + modules = execute_query(f'select * from site_page_module_tmp where page_id = \'{page_id}\' order by priority ') + module_config_list = [] + module_ids = [] + for module in modules: + config = parse_module_config(page_id, module) + + track = { + 'sectionId': str(uuid.uuid4()).replace('-', ''), + 'sectionName': module['module_name'] + } + config['_track'] = track + + print('---------------------------') + print(module['module_id']) + print(json.dumps(config, ensure_ascii=False)) + print('---------------------------') + + module_ids.append(module['module_id']) + m = { + 'id': module['module_id'], + 'name': module['module_name'], + 'component': module['component'], + 'config': json.dumps(config, ensure_ascii=False) + } + + if module['data_provider'] != '': + m['dataProvider'] = module['data_provider'] + + module_config_list.append(m) + + result = { + 'title': page_title, + 'components': module_config_list, + "groupId": "1", + "groupConfig": [ + { + "list": module_ids, + "name": "全部用户", + "strategy": "all", + "default": True + } + ] + } + + return result + + +# 使用示例 +if __name__ == "__main__": + explore_page_config = get_page_config('explore', '探索页面') + activity_page_config = get_page_config('activity', '活动页面') + + print('##################') + print(json.dumps(explore_page_config, ensure_ascii=False)) + print(json.dumps(activity_page_config, ensure_ascii=False)) diff --git a/qlib_web_platform/DESIGN_DOC_UI_UX.md b/qlib_web_platform/DESIGN_DOC_UI_UX.md new file mode 100644 index 0000000000..e61e10c676 --- /dev/null +++ b/qlib_web_platform/DESIGN_DOC_UI_UX.md @@ -0,0 +1,133 @@ +# Qlib Web 平台 UI/UX 优化方案设计文档 + +**(基于方案二:模块化与上下文关联)** + +## 1. 目标与哲学 + +* **目标**: 构建一个直观、易用且功能强大的 Web UI,用于管理 Qlib 量化策略的整个生命周期,从模型训练到策略配置、回测和实盘部署。 +* **核心哲学 (方案二)**: + * **模块化**: 明确区分**模型管理** (负责训练和评估预测模型) 和**策略管理** (负责定义如何使用模型信号进行交易决策)。 + * **上下文关联**: 在 UI 的各个环节清晰地展示和利用关键上下文信息(如模型的训练周期、股票池、特征等),帮助用户做出明智决策。 + * **智能引导**: 提供合理的默认值,减少用户输入负担,并引导用户遵循最佳实践。 + * **风险提示**: 在可能导致结果不可靠或策略失效的操作前(如训练/执行宇宙不匹配),提供明确警告。 + +## 2. 模块设计详解 + +### 2.1. 模型管理 (Model Management) + +* **目的**: 创建、训练、管理和评估用于预测的机器学习模型。产出可供策略使用的“已训练模型”。 +* **主要页面**: + * **`models.html` (模型列表页)**: + * **功能**: 展示所有已创建的模型及其状态和关键信息。提供新建模型入口。 + * **表格列**: + * 名称 + * 类型 (LightGBM, LSTM, ...) + * **训练周期** (例如: "2018-01-01 - 2022-12-31") + * **训练股票池** (例如: "CSI 300") + * **特征集** (例如: "Alpha158", 使用 `truncate` 显示,`title` 显示完整内容) + * **标签** (例如: "Ref($close,-2)/Ref($close,-1)-1", 使用 `truncate` 显示,`title` 显示完整内容) + * 状态 (草稿, 训练中..., 已训练, 失败) + * 创建时间 + * 操作 (详情/编辑, 训练/重新训练, 删除, 取消训练等,根据状态显示不同按钮) + * **`create_model.html` (新建模型页)**: + * **功能**: 配置并启动一个新的模型训练任务。 + * **卡片/区域**: + * **基本信息**: 模型名称 (必填), 模型描述。 + * **训练配置 (Training Configuration - 新增)**: + * 训练开始日期 (必填, `date`) + * 训练结束日期 (必填, `date`) + * 训练股票池 (必填, `select`, 包含 CSI 300, CSI 500, 全市场A股等) + * 所用特征集 (必填, `text`, placeholder: "例如: Alpha158, VWAP") + * 标签/预测目标 (必填, `text`, placeholder: "例如: Ref($close,-2)/Ref($close,-1)-1") + * **模型配置 (Model Configuration)**: + * 模型类型 (必填, `select`, LightGBM, LSTM, ...)\ + * 模型参数 (根据类型动态显示常用参数输入,或提供高级 YAML/JSON 配置入口) + * **数据配置 (Data Configuration - *待审视*)**: *此部分与“训练配置”有重叠,可能需要合并或移除。目前 `create_model.html` 中存在这部分,包含了数据源、频率、标的(Universe)、特征(重复)、标签(重复)、训练/验证期(重复)。应精简,将核心的训练上下文放在“训练配置”中。* + * **操作按钮**: 取消, 保存草稿, **保存并开始训练**。 + * **`edit_model.html` (编辑/详情页)**: + * **功能**: 查看模型详细配置、训练状态、训练日志(未来)、评估结果(未来),并可编辑配置(对于草稿状态)或触发重新训练。 + * **内容**: 应包含 `create_model.html` 中的所有配置项(根据状态可能只读),并增加显示训练日志、状态详情、模型评估指标等区域。 +* **关键记录数据 (模型元数据)**: 对于每个模型,后端需记录:名称、描述、模型类型、模型参数、**训练开始/结束日期**、**训练股票池**、**特征集**、**标签配置**、训练状态、创建/更新时间、指向训练好的模型文件的指针、训练日志路径、评估结果等。 + +### 2.2. 策略管理 (Strategy Management) + +* **目的**: 定义如何利用一个“已训练模型”的信号来构建和执行交易策略。 +* **主要页面**: + * **`strategies.html` (策略列表页)**: + * **功能**: 展示所有已创建的策略配置及其运行状态(如果有)。提供新建策略入口和执行操作。 + * **表格列**: + * 名称 + * 状态 (草稿, 回测中, 实盘运行中, 已停止等) + * 关联模型 (例如: "LSTM Alpha158") + * 关键回测指标 (例如: 年化收益, 最大回撤 - *来自最近一次成功回测*) + * 创建/更新日期 + * 操作 (详情, **运行回测 (按钮)**, **提交实盘 (按钮)**, 编辑 (草稿状态), 停止等) + * **`create_strategy.html` (新建策略页)**: + * **功能**: 创建一个策略配置实例,核心是“选择一个已训练模型”并“定义如何使用其信号”。 + * **卡片/区域**: + * **基本信息**: 策略名称 (必填), 策略描述。 + * **选择模型**: + * 下拉框 (`select`, 必填) **只显示状态为“已训练”的模型** (需后端配合)。 + * 下方区域 (`#selected_model_info`) **显著展示选中模型的关键训练上下文**: 训练周期, 训练股票池, 特征集, 标签。 + * **组合策略配置 (Portfolio Strategy Configuration)**: + * 组合策略类型 (必填, `select`, TopkDropoutStrategy, WeightStrategy, ...) + * 策略参数 (根据类型动态显示常用参数输入,或提供高级 YAML/JSON 配置入口) + * 交易成本 (手续费率, 滑点)。 + * **操作按钮**: 取消, 保存草稿。 (*不再包含“运行回测”按钮*) + +### 2.3. 执行与结果 (Execution & Results) + +* **目的**: 基于一个已定义的策略配置,设置具体的执行参数(时间、范围、资金)来运行回测或提交实盘,并查看结果。 +* **主要组件/页面**: + * **运行回测模态框 (在 `strategies.html` 触发)**: + * **触发**: 点击策略列表行的“运行回测”按钮。 + * **参数**: + * 回测开始日期 (必填, `date`) - **默认值**: 根据策略关联模型的训练结束日期自动计算下一天。 + * 回测结束日期 (必填, `date`) - 默认值: 空。 + * 初始资金 (必填, `number`) - 默认值: 例如 1,000,000。 + * 基准 (可选, `text`)。 + * **股票池/Universe** (必填, `select`) - **默认值**: 根据策略关联模型的训练股票池自动选中。 + * **警告**: 如果用户修改了股票池,导致与模型训练股票池不一致,**点击“开始回测”时弹出 `confirm` 警告**。 + * **操作**: 开始回测 (触发后端任务), 取消。 + * **提交实盘模态框 (在 `strategies.html` 触发)**: + * **触发**: 点击策略列表行的“提交实盘”按钮。 + * **参数**: + * 选择账户 (必填, `select`)。\ + * 分配类型 (固定金额/账户百分比, `radio`)。\ + * 金额/百分比 (必填, `number`)。\ + * **股票池/Universe** (必填, `select`) - **默认值**: 根据策略关联模型的训练股票池自动选中。 + * **警告**: 如果用户修改了股票池,导致与模型训练股票池不一致,**点击“提交至实盘”时弹出 `confirm` 警告**。 + * **操作**: 提交至实盘 (触发后端任务), 取消。 + * **`strategy_detail.html` (策略详情页)**: + * **功能**: 集中展示一个策略配置的详细信息以及其下所有相关的执行(回测/实盘)记录和结果。 + * **内容区域**: + * **策略配置回顾**: + * 策略名称、描述。 + * **关联模型**: 显示模型名称,并提供链接到模型详情/编辑页 (`edit_model.html`)。 + * **组合策略**: 显示类型和参数。 + * **交易成本**: 显示费率和滑点。 + * **执行记录列表 (关键部分)**: + * 以表格或卡片列表形式展示**每一次**基于此策略配置运行的回测或实盘实例。 + * 每条记录包含: + * 执行类型 (回测/实盘)。 + * **执行参数**: 开始日期, 结束日期, 初始资金, 基准, **股票池/Universe**。 + * 执行状态 (运行中, 已完成, 失败)。 + * **关键结果指标** (年化收益, 最大回撤, Sharpe 等)。 + * 操作 (查看详细报告/日志, 停止实盘等)。 + * 提供触发“运行新回测”(类似列表页弹窗)或“提交新实盘”的入口。 + +## 3. 关键 UX 原则总结 + +* **上下文感知**: 用户在选择模型、配置策略、执行回测/实盘时,都能看到相关的训练背景信息。 +* **智能默认**: 通过预填股票池和回测开始日期,简化用户操作,并鼓励一致性。 +* **风险缓解**: 对潜在的配置不匹配(尤其是 Universe 不匹配)进行明确警告,让用户确认风险。 +* **职责分离**: UI 结构清晰反映模型训练、策略定义、执行配置这三个不同阶段。 +* **记录与追溯**: 策略详情页汇集所有执行记录,方便比较不同参数下的回测结果或追踪实盘表现。 + +## 4. 后续步骤 (概要) + +1. **后端 API 设计**: 为前端提供数据(模型/策略列表及详情)、接收配置、触发后台任务(训练/回测/实盘)、查询任务状态和结果。 +2. **模型元数据存储**: 设计数据库表或文件结构来存储模型的完整配置和训练上下文。 +3. **动态数据加载**: 将前端的硬编码数据(模型列表、上下文、下拉选项)替换为通过 API 从后端获取。 +4. **后台任务管理**: 实现可靠的后台任务队列来处理耗时的训练和回测。 +5. **回测结果展示**: 设计 `strategy_detail.html` 中展示详细回测报告的组件(例如,使用图表库绘制收益曲线)。 \ No newline at end of file diff --git a/qlib_web_platform/create_model.html b/qlib_web_platform/create_model.html new file mode 100644 index 0000000000..478a7ce634 --- /dev/null +++ b/qlib_web_platform/create_model.html @@ -0,0 +1,249 @@ + + + + + + Qlib Web 平台 - 新建模型 + + + + + + +
+ + + + +
+ +
+

新建模型

+
+ + +
+
+
+ + +
+

基本信息

+
+ + +
+
+ + +
+
+ + +
+

训练配置

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+

模型配置

+
+
+ + +
+
+ +
+ +

根据所选模型类型,将在此处显示常用参数输入框。

+ + + + +
+ +
+ +
+
+
+
+ + +
+

数据配置

+
+
+ + +
+
+ + +
+
+
+ + + +
+ + 取消 + + + +
+ +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/qlib_web_platform/create_strategy.html b/qlib_web_platform/create_strategy.html new file mode 100644 index 0000000000..5df90ae7a6 --- /dev/null +++ b/qlib_web_platform/create_strategy.html @@ -0,0 +1,276 @@ + + + + + + Qlib Web 平台 - 新建策略 + + + + + + +
+ + + + +
+ +
+

新建策略

+
+ + +
+
+
+ + +
+

基本信息

+
+ + +
+
+ + +
+
+ + +
+

选择模型

+
+ + +
+ +
+ +

选择模型后将在此处显示其训练上下文信息。

+
+
+ + +
+

组合策略配置

+

定义如何根据模型预测信号来构建投资组合、管理仓位和执行交易。

+
+
+ + +
+
+ +
+ +

根据所选策略类型,将在此处显示常用参数输入框。

+ + +
+ +
+ +
+
+
+ +
+
+ + +
+
+ + +
+
+
+
+
+ + +
+ + 取消 + + +
+ +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/qlib_web_platform/dashboard.html b/qlib_web_platform/dashboard.html new file mode 100644 index 0000000000..de8bd35043 --- /dev/null +++ b/qlib_web_platform/dashboard.html @@ -0,0 +1,115 @@ + + + + + + Qlib Web 平台 - 仪表盘 + + + + + + + + +
+ + + + +
+ +
+

仪表盘

+
+ 欢迎, 用户! + +
+
+ + +
+
+ +
+
+

我的策略

+

您有 5 个运行中策略。

+ 查看策略 +
+
+

近期回测

+

今日完成 2 次回测。

+ 查看回测记录 +
+
+

实盘交易状态

+

IB 连接: 已连接

+ 查看实盘状态 +
+
+ + +
+

整体表现 (占位符)

+
+ 图表区域 +
+
+
+
+
+
+ + \ No newline at end of file diff --git a/qlib_web_platform/data_management.html b/qlib_web_platform/data_management.html new file mode 100644 index 0000000000..5360d76b06 --- /dev/null +++ b/qlib_web_platform/data_management.html @@ -0,0 +1,203 @@ + + + + + + Qlib Web 平台 - 数据管理 + + + + + + +
+ + + + +
+ +
+

数据管理

+
+ + +
+
+ + +
+

内置数据包

+
+
+

中国 A 股日线数据 (qlib_data)

+

来源: 爬虫/公开数据

+

覆盖范围: 2007-至今

+

状态: 可用

+ +
+
+

Alpha158 因子

+

来源: 基于日线数据计算

+

依赖: 中国 A 股日线数据

+

状态: 可用

+ +
+ +
+
+ + +
+

自定义数据包

+ + +
+ +
+ +

点击此处选择文件或拖放文件到此区域

+

仅支持 CSV 文件

+ +
+ +
+ + +

已导入的数据包

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
包名称源文件名导入日期大小操作
港股通日线hk_daily_data_2024.csv2024-07-20150 MB + 查看 + 删除 +
美股科技股us_tech_stocks.csv2024-07-1585 MB + 查看 + 删除 +
+
+
+ +
+
+
+
+ + + \ No newline at end of file diff --git a/qlib_web_platform/edit_model.html b/qlib_web_platform/edit_model.html new file mode 100644 index 0000000000..b355e29aa6 --- /dev/null +++ b/qlib_web_platform/edit_model.html @@ -0,0 +1,255 @@ + + + + + + Qlib Web 平台 - 编辑模型 + + + + + + +
+ + + + +
+ +
+

编辑模型

+
+ + +
+
+
+ + + + +
+

基本信息

+
+ + + +
+
+ + + +
+
+ + +
+

模型配置

+
+
+ + + +
+
+ + +
+

根据所选模型类型,将在此处显示常用参数输入框。

+ +
+ + + + +
+ + +
+ +
+ +
+
+
+
+ + +
+

数据配置

+
+
+ + + +
+
+ + + +
+
+ + + +

使用 Qlib 识别的名称或 Python 列表格式。

+
+
+ + + +

每行输入一个特征表达式。

+
+
+ + + +

输入标签表达式。

+
+
+
+ +
+ + + + +
+
+
+ +
+ + + + +
+
+
+
+
+ + + +
+ + 取消 + + + +
+ +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/qlib_web_platform/live_trading.html b/qlib_web_platform/live_trading.html new file mode 100644 index 0000000000..7760a4e981 --- /dev/null +++ b/qlib_web_platform/live_trading.html @@ -0,0 +1,213 @@ + + + + + + Qlib Web 平台 - 实盘交易 (IB) + + + + + + +
+ + + + +
+ +
+

实盘交易 (IB)

+
+ + +
+
+ + +
+
+

IB 连接状态

+
+

状态: 已连接

+

账户ID: U1234567

+

服务器时间: 2024-07-21 10:35:00 CST

+ + + +
+
+
+

账户概要

+
+
+

净清算价值

+

$105,234.50

+
+
+

总权益含贷款

+

$105,234.50

+
+
+

可用资金

+

$80,112.00

+
+
+

当日盈亏

+

+$350.75

+
+
+
+
+ + + +
+

运行中的策略

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
策略名称状态开始时间分配资金/比例当日盈亏累计盈亏操作
LightGBM Alpha158 TopK运行中2024-07-18 09:30:00$10,000+$85.50+$210.20 + 停止 + 日志 +
LSTM Momentum已停止2024-07-15 10:00:005%$0.00-$55.00 + 重启 + 日志 +
+
+
+ + +
+

近期订单

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
时间戳标的方向数量类型价格状态
2024-07-21 10:30:05SH600036买入100市价35.50已成交
2024-07-21 09:45:10SZ000001卖出200限价15.20已提交
+
+
+ +
+
+
+
+ + + \ No newline at end of file diff --git a/qlib_web_platform/models.html b/qlib_web_platform/models.html new file mode 100644 index 0000000000..e8a809f02a --- /dev/null +++ b/qlib_web_platform/models.html @@ -0,0 +1,150 @@ + + + + + + Qlib Web 平台 - 模型管理 + + + + + + +
+ + + + +
+ +
+

模型管理

+ + + 新建模型 + +
+ + +
+
+
+

模型列表

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型训练周期训练股票池特征集标签状态创建时间操作
A股日线预测模型v1LightGBM2018-01-01 - 2022-12-31CSI 300Alpha158Ref($close, -2) / Ref($close, -1) - 1已训练2024-07-20 10:30:00 + 详情/编辑 + 重新训练 + 删除 +
分钟择时模型-LSTMLSTM2020-01-01 - 2023-06-30CSI 500Vwap, Amount, High-LowRef($close, -60)/Ref($close, -1)-1训练中...2024-07-19 15:00:00 + 查看配置 + 训练 + 取消训练 +
新因子测试模型XGBoost---A-ShareMyNewFactor, VolumeReturn(lag=5)草稿2024-07-18 09:00:00 + 编辑 + 训练 + 删除 +
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/qlib_web_platform/strategies.html b/qlib_web_platform/strategies.html new file mode 100644 index 0000000000..65bbdf53ea --- /dev/null +++ b/qlib_web_platform/strategies.html @@ -0,0 +1,477 @@ + + + + + + Qlib Web 平台 - 我的策略 + + + + + + + + +
+ + + + +
+ +
+

我的策略

+ + + 新建策略 + +
+ + +
+
+
+

策略列表

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称状态模型年化收益最大回撤开始日期操作
LSTM Alpha158 TopK回测中LSTM-1.83%-15.76%2024-07-19 + 详情 + + +
LightGBM Alpha158 TopK实盘运行中LightGBM8.07%-8.61%2024-07-18 + 详情 + + +
+
+
+
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/qlib_web_platform/strategy_detail.html b/qlib_web_platform/strategy_detail.html new file mode 100644 index 0000000000..9b8e7a4baa --- /dev/null +++ b/qlib_web_platform/strategy_detail.html @@ -0,0 +1,377 @@ + + + + + + Qlib Web 平台 - 策略详情 + + + + + + +
+ + + + +
+ +
+
+ ← 返回策略列表 +

策略: LSTM Alpha158 TopK

+
+
+ + +
+
+ + +
+
+ + +
+

策略配置详情

+
+
+

策略名称:

+

LSTM Alpha158 TopK

+
+
+

策略描述:

+

此策略基于 LSTM 模型预测的 Alpha158 因子信号,采用 TopK 排序选股。

+
+
+

关联模型:

+

A股日线预测模型v1 (LightGBM)

+

训练于: CSI 300 (2018-01-01 - 2022-12-31)

+
+
+

组合策略类型:

+

TopkDropoutStrategy

+
+
+

组合策略参数:

+

topk: 50, n_drop: 5

+ +
+
+

交易成本:

+

手续费: 0.03%, 滑点: 0.001

+
+ +
+
+ + +
+
+

回测历史记录

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
运行时间回测周期股票池初始资金基准状态年化最大回撤Sharpe操作
2024-07-22 10:15:302023-01-01 - 2023-12-31CSI 3001,000,000SH000300已完成15.2%-12.5%1.20报告
2024-07-21 16:05:002021-01-01 - 2022-12-31CSI 3001,000,000SH000300已完成9.8%-9.1%0.95报告
2024-07-23 09:30:102023-01-01 - 2024-06-30CSI 500 500,000SH000905运行中...---------报告
+
+
+ + + + +
+
+
+
+ + + + \ No newline at end of file From fb5d5ed4992281af3c0b9e7baf108c5c88c1cb47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BE=81=E5=BE=81?= Date: Tue, 8 Apr 2025 16:46:21 +0800 Subject: [PATCH 2/2] =?UTF-8?q?refactor(qlib=5Fweb=5Fplatform):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=A8=A1=E5=9E=8B=E5=88=9B=E5=BB=BA=E5=92=8C?= =?UTF-8?q?=E7=AD=96=E7=95=A5=E5=88=9B=E5=BB=BA=E9=A1=B5=E9=9D=A2=E5=B8=83?= =?UTF-8?q?=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 合并训练配置、模型配置和数据配置,简化为模型定义与训练上下文- 新增回测配置区域,支持在策略创建页面设置回测参数 - 优化模型和策略创建页面的布局结构,提高用户体验 - 删除冗余的训练配置,避免与数据配置重复 - 增加模型关键训练上下文的展示,便于用户选择和理解模型 --- my_work/demo.py | 321 ------ ...04\347\220\206\350\257\246\350\247\243.md" | 932 ++++++++++++++++++ ...4\347\220\206\345\216\237\347\220\206.png" | Bin 0 -> 219012 bytes ...4\345\216\237\347\220\206\345\233\276.png" | Bin 0 -> 200145 bytes qlib/contrib/data/handler.py | 36 +- qlib/contrib/data/loader.py | 24 +- qlib_web_platform/DESIGN_DOC_UI_UX.md | 42 +- qlib_web_platform/create_model.html | 193 ++-- qlib_web_platform/create_strategy.html | 55 +- qlib_web_platform/edit_model.html | 211 ++-- 10 files changed, 1257 insertions(+), 557 deletions(-) delete mode 100644 my_work/demo.py create mode 100644 "my_work/doc/QLib\346\225\260\346\215\256\345\212\240\350\275\275\344\270\216\347\211\271\345\276\201\345\244\204\347\220\206\350\257\246\350\247\243.md" create mode 100644 "my_work/doc/\346\225\260\346\215\256\345\244\204\347\220\206\345\216\237\347\220\206.png" create mode 100644 "my_work/doc/\350\277\220\350\241\214\345\216\237\347\220\206\345\233\276.png" diff --git a/my_work/demo.py b/my_work/demo.py deleted file mode 100644 index 925e41707e..0000000000 --- a/my_work/demo.py +++ /dev/null @@ -1,321 +0,0 @@ -import json -import uuid - -import mysql.connector -from typing import List, Dict -from urllib.parse import quote - - -def get_mysql_connection(): - """获取MySQL连接""" - try: - connection = mysql.connector.connect( - host='gaea.test.mysql03.b2c.srv', # 数据库主机地址 - port=13616, - user='micar_site_sv22_wn', # 数据库用户名 - password='e3vpM8dEtctXFMgKqt-eneLzK_iOoyY9', # 数据库密码 - database='micar_site_staging' # 数据库名称 - ) - return connection - except mysql.connector.Error as e: - print(f"连接MySQL失败: {e}") - return None - - -connection = get_mysql_connection() - - -def execute_query(query: str) -> List[Dict]: - """执行SQL查询并返回结果列表""" - results = [] - # connection = get_mysql_connection() - - if connection: - try: - cursor = connection.cursor(dictionary=True) - cursor.execute(query) - results = cursor.fetchall() - cursor.close() - except mysql.connector.Error as e: - print(f"执行查询失败: {e}") - # finally: - # connection.close() - - return results - - -def url_encode(url: str) -> str: - """对URL进行编码""" - return 'https://www.xiaomiev.com/communityWeb?_rt=ft&url=' + quote(url) - - -def get_module_list(page_id: str) -> List[str]: - """获取指定页面的模块列表""" - query = f"select module_id from site_page_module_tmp where page_id='{page_id}' order by priority" - result_list = execute_query(query) - return [row['module_id'] for row in result_list] - - -def get_module_items(page_id: str, module_id: str) -> List[Dict]: - """获取指定页面和模块的内容项列表""" - query = f"select * from site_page_module_item_tmp where page_id='{page_id}' and module_id='{module_id}' and parent_key='' order by priority" - result_list = execute_query(query) - return result_list - - -def get_module_items_by_parent(page_id: str, module_id: str, parent_key: str) -> List[Dict]: - """获取指定页面和模块的内容项列表""" - query = f"select * from site_page_module_item_tmp where page_id='{page_id}' and module_id='{module_id}' and parent_key='{parent_key}' order by priority" - result_list = execute_query(query) - return result_list - - -def parse_img(item: Dict) -> Dict: - """解析图片类型的内容项""" - img = { - "src": item['src'], - "height": item['height'], - "width": item['width'] - } - img_fold = { - "src": item['src_fold'], - "height": item['height'], - "width": item['width'] - } - action = None - if item['action_type'] == 'link': - link_url = item['link_url'] - if item['link_type'] == 0: - link_url = url_encode(link_url) - - action = { - "type": item['action_type'], - "linkUrl": link_url - } - if item['action_text'] != '': - action['text'] = item['action_text'] - - res = { - "type": 'image', - "image": img, - "imageFold": img_fold, - "action": action - } - - if item['title'] != '': - res['title'] = item['title'] - if item['subtitle'] != '': - res['subTitle'] = item['subtitle'] - - uuid1 = str(uuid.uuid4()).replace('-', '') - res['_track'] = { - 'itemId': uuid1, - 'itemName': item['title'] - } - - return res - - -def parse_video(item: Dict) -> Dict: - video = { - "src": item['src'], - 'cover': item['cover'], - "height": int(item['height']), - "width": int(item['width']), - 'duration': int(item['duration']) - } - video_fold = { - "src": item['src_fold'], - 'cover': item['cover_fold'], - "height": int(item['height']), - "width": int(item['width']), - 'duration': int(item['duration']) - } - action = None - if item['action_type'] == 'link': - - link_url = item['link_url'] - if item['link_type'] == 0: - link_url = url_encode(link_url) + '&transition_background_color=%23000000' - - action = { - "type": item['action_type'], - "linkUrl": link_url - } - - res = { - "type": 'video', - "video": video, - "videoFold": video_fold, - "image": video, - "imageFold": video_fold, - "action": action - } - - if item['title'] != '': - res['title'] = item['title'] - if item['subtitle'] != '': - res['subTitle'] = item['subtitle'] - - uuid1 = str(uuid.uuid4()).replace('-', '') - res['_track'] = { - 'itemId': uuid1, - 'itemName': item['title'] - } - - return res - - -def parse_tab_item(page_id, module_id, item: Dict) -> Dict: - tab_item = { - "tabId": item['key'], - "text": item['text'], - "selected": True if item['selected'] == 1 else False - } - if item['key'] == '': - return tab_item - items = get_module_items_by_parent(page_id, module_id, item['key']) - if len(items) > 0: - tab_item_content = [] - for sub_item in items: - item = {} - sub_type = sub_item['type'] - if sub_type == 'image': - item = parse_img(sub_item) - elif sub_type == 'video': - item = parse_video(sub_item) - tab_item_content.append(item) - - if len(tab_item_content) > 0: - tab_item['content'] = { - 'data': tab_item_content - } - - return tab_item - - -def parse_module_config(page_id, module: Dict) -> Dict: - component = module['component'] - module_id = module['module_id'] - items = get_module_items(page_id, module_id) - data_list = [] - # 遍历并打印每个模块项 - for item in items: - item_type = item['type'] - obj = {} - if item_type == 'image': - obj = parse_img(item) - data_list.append(obj) - elif item_type == 'video': - obj = parse_video(item) - data_list.append(obj) - elif item_type == 'tabItem': - obj = parse_tab_item(page_id, module_id, item) - data_list.append(obj) - - extra = None - if module['extra'] is not None: - extra = json.loads(module['extra']) - - if component == 'Tabs': - return { - "items": data_list - } - - if component == 'Banner': - return { - "data": data_list - } - - if component == 'Navigation': - return { - 'title': module['title'], - 'columns': int(module['columns']), - "data": data_list, - 'extra': extra - } - - if component == 'News': - return { - 'title': module['title'], - "data": data_list, - 'extra': extra - } - - if component == 'TabNews': - return { - 'title': module['title'], - "items": data_list - } - - if component == 'ActivityList': - return { - 'title': module['title'], - "more": extra - } - - if component == 'TabFeeds': - return { - 'title': module['title'], - "items": data_list - } - - return {} - - -def get_page_config(page_id, page_title): - modules = execute_query(f'select * from site_page_module_tmp where page_id = \'{page_id}\' order by priority ') - module_config_list = [] - module_ids = [] - for module in modules: - config = parse_module_config(page_id, module) - - track = { - 'sectionId': str(uuid.uuid4()).replace('-', ''), - 'sectionName': module['module_name'] - } - config['_track'] = track - - print('---------------------------') - print(module['module_id']) - print(json.dumps(config, ensure_ascii=False)) - print('---------------------------') - - module_ids.append(module['module_id']) - m = { - 'id': module['module_id'], - 'name': module['module_name'], - 'component': module['component'], - 'config': json.dumps(config, ensure_ascii=False) - } - - if module['data_provider'] != '': - m['dataProvider'] = module['data_provider'] - - module_config_list.append(m) - - result = { - 'title': page_title, - 'components': module_config_list, - "groupId": "1", - "groupConfig": [ - { - "list": module_ids, - "name": "全部用户", - "strategy": "all", - "default": True - } - ] - } - - return result - - -# 使用示例 -if __name__ == "__main__": - explore_page_config = get_page_config('explore', '探索页面') - activity_page_config = get_page_config('activity', '活动页面') - - print('##################') - print(json.dumps(explore_page_config, ensure_ascii=False)) - print(json.dumps(activity_page_config, ensure_ascii=False)) diff --git "a/my_work/doc/QLib\346\225\260\346\215\256\345\212\240\350\275\275\344\270\216\347\211\271\345\276\201\345\244\204\347\220\206\350\257\246\350\247\243.md" "b/my_work/doc/QLib\346\225\260\346\215\256\345\212\240\350\275\275\344\270\216\347\211\271\345\276\201\345\244\204\347\220\206\350\257\246\350\247\243.md" new file mode 100644 index 0000000000..371c7b4352 --- /dev/null +++ "b/my_work/doc/QLib\346\225\260\346\215\256\345\212\240\350\275\275\344\270\216\347\211\271\345\276\201\345\244\204\347\220\206\350\257\246\350\247\243.md" @@ -0,0 +1,932 @@ +# QLib数据加载与特征处理详解 + +## 目录 + +- [1. 概述](#1-概述) +- [2. 数据加载流程](#2-数据加载流程) + - [2.1 初始化阶段](#21-初始化阶段) + - [2.2 数据加载器配置](#22-数据加载器配置) + - [2.3 实际数据加载过程](#23-实际数据加载过程) + - [2.4 时间范围的使用](#24-时间范围的使用) +- [3. 特征计算流程](#3-特征计算流程) + - [3.1 特征配置生成](#31-特征配置生成) + - [3.2 表达式计算](#32-表达式计算) + - [3.3 特征标准化和归一化](#33-特征标准化和归一化) + - [3.4 Alpha158特征详解](#34-alpha158特征详解) +- [4. 数据处理流程](#4-数据处理流程) + - [4.1 处理器初始化](#41-处理器初始化) + - [4.2 数据处理执行](#42-数据处理执行) + - [4.3 处理器拟合](#43-处理器拟合) + - [4.4 infer_processors和learn_processors详解](#44-infer_processors和learn_processors详解) +- [5. 常用处理器详解](#5-常用处理器详解) + - [5.1 RobustZScoreNorm(稳健Z分数标准化)](#51-robustzscorenorm稳健z分数标准化) + - [5.2 CSZScoreNorm(截面Z分数标准化)](#52-cszscorenorm截面z分数标准化) + - [5.3 Fillna(填充缺失值)](#53-fillna填充缺失值) + - [5.4 DropnaLabel(删除缺失标签)](#54-dropnalabel删除缺失标签) +- [6. 数据处理的特殊化处理](#6-数据处理的特殊化处理) + - [6.1 处理类型(process_type)](#61-处理类型process_type) + - [6.2 拟合时间范围](#62-拟合时间范围) + - [6.3 特征分组处理](#63-特征分组处理) + - [6.4 缓存机制](#64-缓存机制) + - [6.5 并行处理](#65-并行处理) +- [7. 完整流程示例](#7-完整流程示例) +- [8. 常见问题解答](#8-常见问题解答) + - [8.1 特征计算的时间范围](#81-特征计算的时间范围) + - [8.2 处理器的作用和区别](#82-处理器的作用和区别) + - [8.3 如何自定义处理器](#83-如何自定义处理器) +- [9. 总结](#9-总结) + +## 1. 概述 + +QLib是一个用于量化投资的开源Python库,提供了强大的数据加载和特征处理功能。本文档详细介绍QLib的数据加载和特征处理流程,包括各个阶段的具体操作和特殊处理方法。 + +Alpha158是QLib中的一个重要数据处理组件,它是一个特征工程工具,用于从原始金融市场数据中提取158个金融因子(特征)。这些特征可以用于量化投资模型的训练和预测。 + +## 2. 数据加载流程 + +### 2.1 初始化阶段 + +当用户创建一个数据处理器(如Alpha158)时,会经历以下初始化步骤: + +```python +h = Alpha158( + instruments="csi300", # 股票池 + start_time="2008-01-01", # 开始时间 + end_time="2020-08-01", # 结束时间 + fit_start_time="2008-01-01", # 拟合开始时间 + fit_end_time="2014-12-31", # 拟合结束时间 + infer_processors=[...], # 推理处理器 + learn_processors=[...], # 学习处理器 +) +``` + +这些参数会被传递给`DataHandlerLP`的初始化方法,然后: + +1. 创建数据加载器(DataLoader)配置 +2. 设置处理器(Processors) +3. 调用`setup_data`方法加载数据 + +### 2.2 数据加载器配置 + +Alpha158会创建一个数据加载器配置: + +```python +data_loader = { + "class": "QlibDataLoader", + "kwargs": { + "config": { + "feature": self.get_feature_config(), # 特征配置 + "label": self.get_label_config(), # 标签配置 + }, + "filter_pipe": filter_pipe, # 过滤管道 + "freq": freq, # 数据频率 + "inst_processors": inst_processors, # 实例处理器 + }, +} +``` + +### 2.3 实际数据加载过程 + +在`DataHandler`的`setup_data`方法中,会调用数据加载器的`load`方法: + +```python +self._data = lazy_sort_index(self.data_loader.load(self.instruments, self.start_time, self.end_time)) +``` + +这个过程包括: + +1. **QlibDataLoader初始化**:解析特征和标签配置 +2. **数据加载**:调用`load`方法,传入股票池和时间范围 +3. **表达式计算**:对于每个特征表达式,QLib会使用内部的表达式引擎计算结果 +4. **数据过滤**:根据股票池和时间范围过滤数据 +5. **数据组装**:将所有特征和标签组装成一个DataFrame + +### 2.4 时间范围的使用 + +在QLib中,有几个不同的时间范围参数: + +- **数据时间范围**:由`start_time`和`end_time`定义,指定要加载的所有数据的时间范围 +- **训练时间范围**:由`fit_start_time`和`fit_end_time`定义,指定用于训练模型和拟合处理器的数据时间范围 + +特征计算会在**整个数据时间范围**(`start_time`到`end_time`)内进行,而不仅仅是训练时间范围。这是因为: + +1. 模型训练需要训练数据(通常是历史数据) +2. 模型评估需要验证数据(通常是训练数据之后的一段时间) +3. 模型应用需要测试数据(通常是最新的数据) + +而`fit_start_time`和`fit_end_time`主要用于: + +1. **处理器的拟合**:处理器需要学习数据的统计特性,为了避免未来信息泄露,这些统计特性只应该从训练数据中学习 +2. **数据集划分**:将数据划分为训练集、验证集和测试集 + +## 3. 特征计算流程 + +### 3.1 特征配置生成 + +Alpha158通过`get_feature_config`方法生成特征配置: + +```python +def get_feature_config(self): + conf = { + "kbar": {}, # K线特征 + "price": { + "windows": [0], # 时间窗口 + "feature": ["OPEN", "HIGH", "LOW", "VWAP"], # 价格特征 + }, + "rolling": {}, # 滚动特征 + } + return Alpha158DL.get_feature_config(conf) +``` + +然后`Alpha158DL.get_feature_config`方法会根据配置生成具体的特征表达式和名称。 + +### 3.2 表达式计算 + +QLib使用一个表达式引擎来计算特征。表达式引擎支持各种操作符,如: + +- **Ref**:引用过去或未来的数据 +- **Mean**:计算移动平均 +- **Std**:计算标准差 +- **Max/Min**:计算最大/最小值 +- **Rank**:计算排名 +- **Corr**:计算相关性 +- 等等... + +这些操作符在`qlib/data/ops.py`中定义,例如: + +```python +class Mean(Rolling): + """Rolling Mean (MA)""" + def __init__(self, feature, N): + super(Mean, self).__init__(feature, N, "mean") +``` + +### 3.3 特征标准化和归一化 + +Alpha158中的特征通常会进行标准化处理,主要有两种方式: + +1. **内置标准化**:在特征表达式中直接除以收盘价,如`"$open/$close"` +2. **处理器标准化**:通过`infer_processors`中的处理器进行,如`RobustZScoreNorm` + +### 3.4 Alpha158特征详解 + +Alpha158中的特征可以分为以下几类: + +1. **K线特征(9个)**:基于开盘价、收盘价、最高价、最低价计算的特征 +2. **价格特征**:原始价格数据 +3. **成交量特征**:成交量数据 +4. **滚动特征(最多可达140个)**:基于滚动窗口计算的各种技术指标 + +滚动特征是Alpha158的核心,包含了大量基于滚动窗口计算的技术指标。默认的滚动窗口大小为[5, 10, 20, 30, 60]天。主要包括: + +- **ROC(价格变化率)**:过去d天的价格变化率 +- **MA(移动平均线)**:过去d天的简单移动平均线 +- **STD(标准差)**:过去d天收盘价的标准差 +- **BETA(斜率)**:过去d天价格变化的斜率 +- **RSQR(R方值)**:过去d天线性回归的R方值,表示趋势的线性程度 +- **RESI(残差)**:过去d天线性回归的残差,表示过去d天趋势的线性程度 +- **MAX(最高价)**:过去d天的最高价 +- **LOW(最低价)**:过去d天的最低价 +- **QTLU(上分位数)**:过去d天收盘价的80%分位数 +- **QTLD(下分位数)**:过去d天收盘价的20%分位数 +- **RANK(排名)**:当前收盘价在过去d天收盘价中的百分位排名 +- **RSV(相对强弱值)**:当前价格在过去d天价格区间中的位置 +- **IMAX(最高价天数)**:当前日期与过去d天最高价日期之间的天数 +- **IMIN(最低价天数)**:当前日期与过去d天最低价日期之间的天数 +- **IMXD(高低价时间差)**:过去d天最高价日期与最低价日期之间的天数差 +- **CORR(相关性)**:收盘价与成交量的相关性 +- **CORD(变化率相关性)**:价格变化率与成交量变化率的相关性 +- **CNTP(上涨天数比例)**:过去d天中价格上涨的天数比例 +- **CNTN(下跌天数比例)**:过去d天中价格下跌的天数比例 +- **CNTD(上涨下跌天数差)**:过去d天中上涨天数与下跌天数的差值 +- **SUMP(总涨幅/总变化)**:过去d天中总涨幅与总价格变化的比值(类似RSI指标) +- **SUMN(总跌幅/总变化)**:过去d天中总跌幅与总价格变化的比值 +- **SUMD(涨跌幅差值比)**:过去d天中总涨幅与总跌幅的差值比 +- **VMA(成交量移动平均)**:过去d天的成交量移动平均 +- **VSTD(成交量标准差)**:过去d天成交量的标准差 +- **WVMA(加权成交量波动率)**:成交量加权的价格变化波动率 +- **VSUMP(成交量增加比例)**:过去d天中成交量增加的比例 +- **VSUMN(成交量减少比例)**:过去d天中成交量减少的比例 +- **VSUMD(成交量增减差值比)**:过去d天中成交量增加与减少的差值比 + +## 4. 数据处理流程 + +### 4.1 处理器初始化 + +在Alpha158初始化时,会设置`infer_processors`和`learn_processors`: + +```python +infer_processors = [ + {"class": "RobustZScoreNorm", "kwargs": {"fields_group": "feature", "clip_outlier": true}}, + {"class": "Fillna", "kwargs": {"fields_group": "feature"}} +] + +learn_processors = [ + {"class": "DropnaLabel"}, + {"class": "CSZScoreNorm", "kwargs": {"fields_group": "label"}} +] +``` + +这些处理器配置会被转换为实际的处理器对象。 + +### 4.2 数据处理执行 + +在`DataHandlerLP`的`process_data`方法中,会按照以下流程处理数据: + +``` +原始数据(self._data) -> 共享处理器(shared_processors) -> 推理处理器(infer_processors) -> 学习处理器(learn_processors) +``` + +具体代码流程: + +```python +def process_data(self, with_fit: bool = False): + # 处理共享数据 + _shared_df = self._data + _shared_df = self._run_proc_l(_shared_df, self.shared_processors, with_fit=with_fit, check_for_infer=True) + + # 处理推理数据 + _infer_df = _shared_df + _infer_df = self._run_proc_l(_infer_df, self.infer_processors, with_fit=with_fit, check_for_infer=True) + self._infer = _infer_df + + # 处理学习数据 + if self.process_type == DataHandlerLP.PTYPE_I: + _learn_df = _shared_df # 独立模式 + elif self.process_type == DataHandlerLP.PTYPE_A: + _learn_df = _infer_df # 附加模式 + _learn_df = self._run_proc_l(_learn_df, self.learn_processors, with_fit=with_fit, check_for_infer=False) + self._learn = _learn_df +``` + +### 4.3 处理器拟合 + +如果`with_fit=True`,处理器会先调用`fit`方法学习数据的统计特性,然后再调用`__call__`方法处理数据: + +```python +@staticmethod +def _run_proc_l(df, proc_l, with_fit, check_for_infer): + for proc in proc_l: + if check_for_infer and not proc.is_for_infer(): + raise TypeError("Only processors usable for inference can be used in `infer_processors`") + if with_fit: + proc.fit(df) # 拟合处理器 + df = proc(df) # 应用处理器 + return df +``` + +### 4.4 infer_processors和learn_processors详解 + +`infer_processors`和`learn_processors`是应用于已经计算好的特征的处理器,它们在特征计算完成后对数据进行进一步的处理。 + +#### infer_processors(推理处理器) + +`infer_processors`主要用于处理**用于模型推理(预测)的数据**。它们的主要作用包括: + +- **数据标准化**:使特征分布更适合模型处理,如`RobustZScoreNorm` +- **缺失值处理**:填充或处理特征中的缺失值,如`Fillna` +- **异常值处理**:处理或裁剪异常值,如`RobustZScoreNorm`中的`clip_outlier`参数 +- **特征转换**:对特征进行变换,如对数变换、幂变换等 + +#### learn_processors(学习处理器) + +`learn_processors`主要用于处理**用于模型训练的数据**,特别是标签数据。它们的主要作用包括: + +- **标签标准化**:对标签进行标准化,如`CSZScoreNorm`(截面Z分数标准化) +- **样本过滤**:过滤不适合训练的样本,如`DropnaLabel`(删除标签为空的样本) +- **标签变换**:对标签进行变换,使其更适合模型学习 +- **样本权重调整**:调整不同样本的权重 + +#### infer_processors 和 learn_processors 的区别 + +1. **处理对象不同** + - **infer_processors**:主要处理特征(feature)数据 + - **learn_processors**:主要处理标签(label)数据,有时也会处理特征数据 + +2. **应用场景不同** + - **infer_processors**:用于模型推理阶段,也用于训练阶段的特征预处理 + - **learn_processors**:仅用于模型训练阶段 + +3. **处理顺序不同** + 在`process_type=PTYPE_A`(附加模式)下: + - 先应用`infer_processors` + - 再应用`learn_processors` + +4. **信息使用限制不同** + - **infer_processors**:不能使用标签信息或未来信息 + - **learn_processors**:可以使用标签信息,但仍不应使用未来信息 + +## 5. 常用处理器详解 + +### 5.1 RobustZScoreNorm(稳健Z分数标准化) + +这是一个特殊的标准化处理器,用于处理异常值: + +```python +class RobustZScoreNorm(Processor): + """Robust ZScore Normalization""" + + def __init__(self, fields_group=None, clip_outlier=True): + self.fields_group = fields_group + self.clip_outlier = clip_outlier + + def fit(self, df): + # 计算每个特征的中位数和中位绝对偏差 + self.median = df[self.fields].median() + self.mad = (df[self.fields] - self.median).abs().median() + + def __call__(self, df): + # 应用稳健Z分数标准化 + df_copy = df.copy() + df_copy[self.fields] = (df_copy[self.fields] - self.median) / (self.mad * 1.4826) + + # 可选:裁剪异常值 + if self.clip_outlier: + df_copy[self.fields] = df_copy[self.fields].clip(-3, 3) + + return df_copy +``` + +与普通的Z分数标准化不同,稳健Z分数使用中位数和中位绝对偏差(MAD)而不是均值和标准差,这使得它对异常值不敏感。 + +### 5.2 CSZScoreNorm(截面Z分数标准化) + +这个处理器在每个时间点对所有股票进行标准化,常用于标签处理: + +```python +class CSZScoreNorm(Processor): + """Cross Sectional ZScore Normalization""" + + def __init__(self, fields_group=None): + self.fields_group = fields_group + + def __call__(self, df): + # 按时间点分组,对每组应用Z分数标准化 + cols = get_group_columns(df, self.fields_group) + df[cols] = df[cols].groupby("datetime").apply(lambda x: (x - x.mean()) / x.std()) + return df +``` + +### 5.3 Fillna(填充缺失值) + +用于填充特征中的缺失值: + +```python +class Fillna(Processor): + """Fill NA values in the features""" + + def __init__(self, fields_group=None, fill_value=0): + self.fields_group = fields_group + self.fill_value = fill_value + + def __call__(self, df): + cols = get_group_columns(df, self.fields_group) + df[cols] = df[cols].fillna(self.fill_value) + return df +``` + +### 5.4 DropnaLabel(删除缺失标签) + +删除标签为缺失值的样本: + +```python +class DropnaLabel(Processor): + """Drop samples with NA in label""" + + def __call__(self, df): + label_cols = get_group_columns(df, "label") + return df.dropna(subset=label_cols) +``` + +## 6. 数据处理的特殊化处理 + +### 6.1 处理类型(process_type) + +QLib支持两种处理类型: + +1. **PTYPE_I(独立模式)**: + ``` + 原始数据 -> 共享处理器 -> 推理处理器 + \ + -> 学习处理器 + ``` + +2. **PTYPE_A(附加模式)**: + ``` + 原始数据 -> 共享处理器 -> 推理处理器 -> 学习处理器 + ``` + +独立模式适用于推理和学习需要不同处理流程的情况,而附加模式适用于学习处理是在推理处理基础上进行的情况。 + +### 6.2 拟合时间范围 + +处理器的拟合通常只在特定的时间范围内进行,以避免未来信息泄露: + +```python +fit_start_time="2008-01-01" # 拟合开始时间 +fit_end_time="2014-12-31" # 拟合结束时间 +``` + +这确保了模型只使用历史数据来学习数据的统计特性。 + +### 6.3 特征分组处理 + +QLib支持按特征组进行处理,常见的分组有: + +- **feature**:所有特征列 +- **label**:所有标签列 +- 自定义分组:可以指定特定的列名模式 + +这使得可以对不同类型的数据应用不同的处理方法。 + +### 6.4 缓存机制 + +为了提高性能,QLib实现了数据缓存机制: + +```python +def setup_data(self, enable_cache: bool = False): + # 如果启用缓存,会尝试从缓存加载数据 + if enable_cache: + # 缓存处理逻辑... +``` + +### 6.5 并行处理 + +对于大规模数据,QLib支持并行处理: + +```python +def parallel_process(self, n_jobs=-1): + """并行处理数据""" + # 并行处理逻辑... +``` + +## 7. 完整流程示例 + +以下是使用Alpha158的完整流程示例: + +```python +import qlib +from qlib.contrib.data.handler import Alpha158 + +# 1. 初始化QLib +qlib.init(provider_uri="~/.qlib/qlib_data/cn_data", region="cn") + +# 2. 创建数据处理器 +handler = Alpha158( + instruments="csi300", # 股票池:沪深300成分股 + start_time="2008-01-01", # 数据开始时间 + end_time="2020-08-01", # 数据结束时间 + fit_start_time="2008-01-01", # 拟合开始时间 + fit_end_time="2014-12-31", # 拟合结束时间 + infer_processors=[ + {"class": "RobustZScoreNorm", "kwargs": {"fields_group": "feature", "clip_outlier": True}}, + {"class": "Fillna", "kwargs": {"fields_group": "feature"}} + ], + learn_processors=[ + {"class": "DropnaLabel"}, + {"class": "CSZScoreNorm", "kwargs": {"fields_group": "label"}} + ], + process_type="A", # 附加模式 +) + +# 3. 获取处理后的数据 +feature_df = handler.fetch(col_set="feature") # 获取特征数据 +label_df = handler.fetch(col_set="label") # 获取标签数据 +``` + +## 8. 常见问题解答 + +### 8.1 特征计算的时间范围 + +**问题**:特征计算是只会在训练时间范围上进行计算吗? + +**回答**:特征计算会在整个指定的数据时间范围(`start_time`到`end_time`)内进行,而不仅限于训练时间范围(`fit_start_time`到`fit_end_time`)。训练时间范围主要用于处理器的拟合和数据集划分,以避免未来信息泄露。 + +在实际应用中,通常会将数据划分为训练集、验证集和测试集: + +``` +全部数据时间范围(start_time到end_time) +|-------------------------------------------| +| | +|训练集 |验证集 |测试集 | +|-----------------|------------|------------| +fit_start_time fit_end_time end_time +``` + +### 8.2 处理器的作用和区别 + +**问题**:infer_processors和learn_processors是干什么的? + +**回答**:`infer_processors`和`learn_processors`是应用于已经计算好的特征的处理器,它们在特征计算完成后对数据进行进一步的处理: + +- **infer_processors**:处理用于模型推理的特征数据,主要进行特征标准化、缺失值处理等 +- **learn_processors**:处理用于模型训练的数据,特别是标签数据,主要进行标签标准化、样本过滤等 + +### 8.3 如何自定义处理器 + +**问题**:如何创建自定义处理器? + +**回答**:您可以创建自定义处理器来满足特定需求: + +```python +class MyCustomProcessor(Processor): + def __init__(self, param1, param2): + self.param1 = param1 + self.param2 = param2 + + def fit(self, df): + # 学习数据统计特性 + pass + + def __call__(self, df): + # 处理数据 + return processed_df +``` + +然后在`infer_processors`或`learn_processors`中使用它: + +```python +infer_processors = [ + {"class": "MyCustomProcessor", "kwargs": {"param1": value1, "param2": value2}} +] +``` + +## 9. 总结 + +QLib的数据加载和特征处理流程是一个复杂而强大的系统,它包括: + +1. **数据加载**:通过DataLoader加载原始数据,支持多种数据源和过滤条件 +2. **特征计算**:使用表达式引擎计算各种技术指标和特征 +3. **数据处理**:通过处理器链对数据进行标准化、缺失值处理等 +4. **特殊化处理**:支持不同的处理模式、拟合时间范围、特征分组等 + +Alpha158是QLib中的一个重要组件,它提供了158个金融因子,涵盖了价格趋势、波动性、动量、相关性等多个方面,为量化投资模型提供了丰富的输入信息。 + +通过合理配置数据加载和处理流程,可以使数据更适合模型训练和推理,提高模型性能。 + +## 10. QLib数据存储结构与时间范围过滤机制 + +### 10.1 QLib数据存储结构 + +QLib的数据存储结构是经过精心设计的,以支持高效的数据访问和过滤。主要包括以下几个部分: + +#### 10.1.1 股票池文件(instruments目录) + +`~/.qlib/qlib_data/cn_data/instruments`目录下的文件(如`csi300.txt`)定义了各个股票池包含的股票代码。例如,`csi300.txt`包含沪深300指数的成分股列表。 + +这些文件的内容通常是股票代码的列表,例如: +``` +SH600000 +SH600004 +SH600009 +... +``` + +#### 10.1.2 特征数据(features目录) + +`~/.qlib/qlib_data/cn_data/features`目录存储了所有股票的特征数据。这些数据通常以二进制格式(.bin文件)存储,以提高读取效率。 + +虽然这些.bin文件本身没有明显的时间范围标记,但QLib内部维护了一个索引结构,使其能够高效地按时间范围访问数据。 + +#### 10.1.3 特征元数据(calendars目录) + +`~/.qlib/qlib_data/cn_data/calendars`目录存储了交易日历信息,定义了哪些日期是交易日。 + +#### 10.1.4 股票元数据(instruments目录下的其他文件) + +除了股票池文件外,instruments目录还可能包含股票的元数据,如上市日期、退市日期等信息。 + +### 10.2 QLib如何根据时间范围过滤数据 + +当您指定`start_time`和`end_time`参数时,QLib通过以下机制确定要获取哪部分时间的特征数据: + +#### 10.2.1 内部索引结构 + +QLib在加载数据时会构建内部索引结构,这个结构将股票代码、日期和特征值关联起来。这个索引结构使QLib能够高效地按时间范围和股票代码过滤数据。 + +#### 10.2.2 数据加载过程 + +当您调用`handler.fetch`或在初始化DataHandler时,QLib会执行以下步骤: + +1. **解析时间范围**:将`start_time`和`end_time`转换为标准格式 +2. **获取交易日列表**:从calendars目录获取指定时间范围内的交易日 +3. **过滤股票列表**:根据instruments文件获取股票列表 +4. **加载特征数据**:从features目录加载特定股票在特定时间范围内的特征数据 + +#### 10.2.3 二进制数据文件的内部结构 + +虽然.bin文件看起来没有明显的时间标记,但它们内部是有结构的: + +- 数据通常按股票代码和日期组织 +- 每个股票的数据包含时间索引,使QLib能够快速定位特定日期的数据 +- 这种结构使QLib能够只读取需要的数据部分,而不是加载整个文件 + +### 10.3 具体实现细节 + +#### 10.3.1 数据提供器(Provider) + +QLib使用Provider类来管理底层数据访问。主要的Provider是`LocalProvider`,它负责从本地文件系统读取数据。 + +```python +class LocalProvider(Provider): + def __init__(self, data_dir): + self.data_dir = data_dir + # 初始化各种路径 + self.instruments_dir = os.path.join(data_dir, "instruments") + self.features_dir = os.path.join(data_dir, "features") + self.calendars_dir = os.path.join(data_dir, "calendars") +``` + +#### 10.3.2 特征存储(FeatureStorage) + +QLib使用FeatureStorage类来管理特征数据的存储和访问。它提供了按时间范围和股票代码过滤数据的功能。 + +```python +class FeatureStorage: + def __init__(self, data_dir): + self.data_dir = data_dir + # 加载元数据和索引 + self._load_metadata() + + def get_feature(self, instrument, field, start_time=None, end_time=None): + # 根据时间范围过滤数据 + start_idx, end_idx = self._locate_time_range(instrument, start_time, end_time) + # 从文件中读取特定范围的数据 + return self._read_data(instrument, field, start_idx, end_idx) +``` + +#### 10.3.3 时间索引定位 + +QLib使用二分查找等算法快速定位时间范围在索引中的位置: + +```python +def _locate_time_range(self, instrument, start_time, end_time): + # 获取股票的时间索引 + time_index = self._get_instrument_time_index(instrument) + + # 如果未指定时间范围,返回全部数据的索引 + if start_time is None and end_time is None: + return 0, len(time_index) + + # 使用二分查找定位开始时间 + if start_time is not None: + start_idx = bisect.bisect_left(time_index, start_time) + else: + start_idx = 0 + + # 使用二分查找定位结束时间 + if end_time is not None: + end_idx = bisect.bisect_right(time_index, end_time) + else: + end_idx = len(time_index) + + return start_idx, end_idx +``` + +#### 10.3.4 数据读取优化 + +为了提高性能,QLib使用了多种优化技术: + +- **内存映射**:使用mmap技术直接映射文件到内存,避免全部加载 +- **缓存机制**:缓存常用数据,减少重复读取 +- **并行处理**:在可能的情况下并行加载多个股票的数据 + +### 10.4 实际例子 + +假设您有以下代码: + +```python +handler = Alpha158( + instruments="csi300", + start_time="2018-01-01", + end_time="2019-12-31", + # 其他参数... +) +``` + +QLib会执行以下步骤: + +1. 从`~/.qlib/qlib_data/cn_data/instruments/csi300.txt`读取股票列表 +2. 从`~/.qlib/qlib_data/cn_data/calendars`获取2018-01-01到2019-12-31之间的交易日 +3. 对于每个股票,从`~/.qlib/qlib_data/cn_data/features`加载该时间范围内的特征数据 +4. 使用内部索引结构快速定位每个股票在特定时间范围内的数据位置 +5. 只读取需要的数据部分,而不是整个文件 + +### 10.5 总结 + +QLib通过精心设计的数据存储结构和索引机制,能够高效地根据指定的时间范围和股票池过滤数据: + +1. **股票池文件**(如csi300.txt)定义了要处理的股票列表 +2. **特征数据文件**(.bin文件)存储了所有股票的特征数据 +3. **内部索引结构**使QLib能够快速定位特定时间范围的数据 +4. **优化技术**(如内存映射、缓存)提高了数据访问效率 + +虽然.bin文件本身没有明显的时间范围标记,但QLib通过内部索引结构和元数据,能够高效地按时间范围访问数据,只加载需要的部分,而不是整个文件。 + +这种设计使QLib能够处理大规模的金融数据,同时保持高效的数据访问性能。 + +## 11. 数据存储与模型训练/预测的关系 + +### 11.1 数据的存储位置 + +在QLib中,数据加载和处理完成后,数据主要存储在`DataHandlerLP`类的实例属性中。具体来说,有三个关键的数据存储位置: + +#### 11.1.1 原始数据:`self._data` + +这是从数据加载器加载的原始数据,包含所有计算出的特征和标签,没有经过任何处理器的处理。 + +```python +# 在DataHandler的setup_data方法中 +self._data = lazy_sort_index(self.data_loader.load(self.instruments, self.start_time, self.end_time)) +``` + +#### 11.1.2 推理数据:`self._infer` + +这是经过推理处理器处理后的数据,适用于模型预测阶段。 + +```python +# 在DataHandlerLP的process_data方法中 +_infer_df = self._run_proc_l(_shared_df, self.infer_processors, with_fit=with_fit, check_for_infer=True) +self._infer = _infer_df +``` + +#### 11.1.3 学习数据:`self._learn` + +这是经过学习处理器处理后的数据,适用于模型训练阶段。 + +```python +# 在DataHandlerLP的process_data方法中 +_learn_df = self._run_proc_l(_learn_df, self.learn_processors, with_fit=with_fit, check_for_infer=False) +self._learn = _learn_df +``` + +### 11.2 数据的访问方式 + +QLib提供了统一的接口来访问这些数据,主要通过`DataHandlerLP`类的`fetch`方法: + +```python +def fetch(self, selector: Union[pd.Timestamp, slice, str] = None, level: Union[str, int] = None, + col_set=DataHandlerLP.DK_I, data_key=DK_I, **kwargs) -> pd.DataFrame: + """ + Fetch data from underlying data source + + Parameters + ---------- + selector : Union[pd.Timestamp, slice, str] + Data selector. + level : Union[str, int] + The level of the index to be used. + col_set : str + The col_set will be passed to self.get_cols. + data_key : str + The data to fetch: + - DK_I: infer data + - DK_L: learn data + - DK_R: raw data + """ +``` + +其中,`col_set`参数指定要获取的列集合(如特征、标签等),`data_key`参数指定要获取的数据类型(推理数据、学习数据或原始数据)。 + +### 11.3 数据提供给模型的流程 + +#### 11.3.1 模型训练阶段 + +在模型训练阶段,通常使用学习数据(`self._learn`): + +```python +# 获取训练数据 +train_data = handler.fetch( + selector=slice("2008-01-01", "2014-12-31"), # 时间范围 + col_set=["feature", "label"], # 获取特征和标签列 + data_key=DataHandlerLP.DK_L # 使用学习数据 +) + +# 分离特征和标签 +X_train = train_data["feature"] +y_train = train_data["label"] + +# 训练模型 +model.fit(X_train, y_train) +``` + +#### 11.3.2 模型预测阶段 + +在模型预测阶段,通常使用推理数据(`self._infer`): + +```python +# 获取预测数据 +pred_data = handler.fetch( + selector=slice("2015-01-01", "2020-08-01"), # 时间范围 + col_set="feature", # 只获取特征列 + data_key=DataHandlerLP.DK_I # 使用推理数据 +) + +# 使用模型预测 +X_pred = pred_data +y_pred = model.predict(X_pred) +``` + +### 11.4 在QLib工作流中的应用 + +在QLib的工作流(Workflow)中,数据处理器的数据会被自动提供给模型: + +```python +# 创建工作流 +workflow = Workflow( + # 数据集配置 + dataset=DatasetConfig( + handler=Alpha158( + instruments="csi300", + start_time="2008-01-01", + end_time="2020-08-01", + fit_start_time="2008-01-01", + fit_end_time="2014-12-31", + infer_processors=[...], + learn_processors=[...], + ), + segments={ + "train": ("2008-01-01", "2014-12-31"), + "valid": ("2015-01-01", "2016-12-31"), + "test": ("2017-01-01", "2020-08-01"), + }, + ), + # 模型配置 + model=ModelConfig( + model_class=LGBModel, + model_kwargs={...}, + ), +) + +# 运行工作流 +workflow.run() +``` + +在这个例子中,工作流会: + +1. 使用`handler.fetch(data_key=DK_L)`获取训练数据 +2. 使用`handler.fetch(data_key=DK_I)`获取验证和测试数据 +3. 自动将这些数据提供给模型进行训练和预测 + +### 11.5 数据的内部结构 + +在QLib中,数据通常以pandas DataFrame的形式存储,具有多级索引结构: + +``` + feature label + $close $volume Ref($close, 1) Mean($close, 3) $high-$low LABEL0 +datetime instrument +2010-01-04 SH600000 81.807068 17145150.0 83.737389 83.016739 2.741058 0.0032 + SH600004 13.313329 11800983.0 13.313329 13.317701 0.183632 0.0042 + SH600005 37.796539 12231662.0 38.258602 37.919757 0.970325 0.0289 +``` + +- 第一级索引是日期时间(datetime) +- 第二级索引是股票代码(instrument) +- 列分为特征(feature)和标签(label)两组 + +### 11.6 数据缓存和内存管理 + +为了提高性能,QLib实现了数据缓存机制: + +```python +def setup_data(self, enable_cache: bool = False): + # 如果启用缓存,会尝试从缓存加载数据 + if enable_cache: + # 缓存处理逻辑... +``` + +此外,QLib还提供了选项来释放原始数据,以节省内存: + +```python +handler = Alpha158( + # 其他参数... + drop_raw=True # 处理完数据后释放原始数据 +) +``` + +当`drop_raw=True`时,`self._data`会在处理完成后被删除,只保留`self._infer`和`self._learn`。 + +### 11.7 总结 + +在QLib中,数据加载和处理完成后: + +1. **存储位置**: + - 原始数据存储在`DataHandlerLP`实例的`self._data`属性中 + - 推理数据存储在`self._infer`属性中 + - 学习数据存储在`self._learn`属性中 + +2. **数据访问**: + - 通过`handler.fetch`方法访问数据 + - 使用`data_key`参数指定要获取的数据类型 + - 使用`col_set`参数指定要获取的列集合 + +3. **提供给模型**: + - 训练阶段:使用`data_key=DK_L`获取学习数据 + - 预测阶段:使用`data_key=DK_I`获取推理数据 + +4. **工作流集成**: + - QLib的工作流会自动将适当的数据提供给模型 + - 训练段使用学习数据,验证和测试段使用推理数据 + +这种设计使QLib能够灵活地处理不同阶段的数据需求,同时保持数据处理的一致性和正确性。 diff --git "a/my_work/doc/\346\225\260\346\215\256\345\244\204\347\220\206\345\216\237\347\220\206.png" "b/my_work/doc/\346\225\260\346\215\256\345\244\204\347\220\206\345\216\237\347\220\206.png" new file mode 100644 index 0000000000000000000000000000000000000000..c2df78797cc937c258eb4d0c5b0626acd7d107b4 GIT binary patch literal 219012 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≪W{WRD%k{y~OHjtr_+sCPsYiLUMe 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

T^C*B{dL<&C2K*nD7sOZ|h=eCaWdDBl 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

    XZPkT!JA=3X7NHkS6CLxEi9%>Gs~}QZUL2yu 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 W0T;`c&?(IfK;Y@>=d#Wzp$PzoTa%0c literal 0 HcmV?d00001 diff --git a/qlib/contrib/data/handler.py b/qlib/contrib/data/handler.py index 2fe5258daa..facd9eb85e 100644 --- a/qlib/contrib/data/handler.py +++ b/qlib/contrib/data/handler.py @@ -98,17 +98,17 @@ def get_label_config(self): class Alpha158(DataHandlerLP): def __init__( self, - instruments="csi500", - start_time=None, - end_time=None, - freq="day", - infer_processors=[], - learn_processors=_DEFAULT_LEARN_PROCESSORS, - fit_start_time=None, - fit_end_time=None, - process_type=DataHandlerLP.PTYPE_A, - filter_pipe=None, - inst_processors=None, + instruments="csi500",# 默认使用中证500成分股 + start_time=None,# 开始时间 + end_time=None,# 结束时间 + freq="day",# 数据频率,默认为日频 + infer_processors=[],# 推理阶段的数据处理器 + learn_processors=_DEFAULT_LEARN_PROCESSORS,# 学习阶段的数据处理器 + fit_start_time=None,# 拟合开始时间 + fit_end_time=None,# 拟合结束时间 + process_type=DataHandlerLP.PTYPE_A,# 处理类型 + filter_pipe=None,# 过滤管道 + inst_processors=None,# 实例处理器 **kwargs, ): infer_processors = check_transform_proc(infer_processors, fit_start_time, fit_end_time) @@ -139,16 +139,22 @@ def __init__( def get_feature_config(self): conf = { - "kbar": {}, + "kbar": {},# K线特征 "price": { - "windows": [0], - "feature": ["OPEN", "HIGH", "LOW", "VWAP"], + "windows": [0],# 时间窗口 + "feature": ["OPEN", "HIGH", "LOW", "VWAP"],# 价格特征 }, - "rolling": {}, + "rolling": {},# 滚动特征 } + # Alpha158DL中的特征可以分为以下几类: + # K线特征(kbar):基于开盘价、收盘价、最高价、最低价计算的特征 + # 价格特征(price):原始价格数据 + # 成交量特征(volume):成交量数据 + # 滚动特征(rolling):基于滚动窗口计算的各种技术指标 return Alpha158DL.get_feature_config(conf) def get_label_config(self): + # 这个标签表示从T+1到T+2的收盘价变化率,而不是T到T+1的变化率。这是因为在中国股市,T日获取收盘价后,可以在T+1日买入,T+2日卖出。 return ["Ref($close, -2)/Ref($close, -1) - 1"], ["LABEL0"] diff --git a/qlib/contrib/data/loader.py b/qlib/contrib/data/loader.py index 4d11f3a34c..11e3b277d3 100644 --- a/qlib/contrib/data/loader.py +++ b/qlib/contrib/data/loader.py @@ -103,15 +103,15 @@ def get_feature_config( names = [] if "kbar" in config: fields += [ - "($close-$open)/$open", - "($high-$low)/$open", - "($close-$open)/($high-$low+1e-12)", - "($high-Greater($open, $close))/$open", - "($high-Greater($open, $close))/($high-$low+1e-12)", - "(Less($open, $close)-$low)/$open", - "(Less($open, $close)-$low)/($high-$low+1e-12)", - "(2*$close-$high-$low)/$open", - "(2*$close-$high-$low)/($high-$low+1e-12)", + "($close-$open)/$open",# KMID:收盘价与开盘价的差值比率 + "($high-$low)/$open",# KLEN:最高价与最低价的差值比率 + "($close-$open)/($high-$low+1e-12)",# KMID2:收盘价与开盘价的差值在价格区间中的位置 + "($high-Greater($open, $close))/$open",# KUP:上影线长度 + "($high-Greater($open, $close))/($high-$low+1e-12)",# KUP2:上影线占总区间的比例 + "(Less($open, $close)-$low)/$open",# KLOW:下影线长度 + "(Less($open, $close)-$low)/($high-$low+1e-12)",# KLOW2:下影线占总区间的比例 + "(2*$close-$high-$low)/$open",# KSFT:价格偏移程度 + "(2*$close-$high-$low)/($high-$low+1e-12)", # KSFT2:价格偏移在区间中的位置 ] names += [ "KMID", @@ -124,8 +124,10 @@ def get_feature_config( "KSFT", "KSFT2", ] - if "price" in config: - windows = config["price"].get("windows", range(5)) + # 价格特征是基于原始价格数据(开盘价、收盘价、最高价、最低价、成交量加权平均价)计算的特征: + if "price" in config: + # 默认使用0-4天的窗口 + windows = config["price"].get("windows", range(5)) feature = config["price"].get("feature", ["OPEN", "HIGH", "LOW", "CLOSE", "VWAP"]) for field in feature: field = field.lower() diff --git a/qlib_web_platform/DESIGN_DOC_UI_UX.md b/qlib_web_platform/DESIGN_DOC_UI_UX.md index e61e10c676..558a219809 100644 --- a/qlib_web_platform/DESIGN_DOC_UI_UX.md +++ b/qlib_web_platform/DESIGN_DOC_UI_UX.md @@ -15,7 +15,7 @@ ### 2.1. 模型管理 (Model Management) -* **目的**: 创建、训练、管理和评估用于预测的机器学习模型。产出可供策略使用的“已训练模型”。 +* **目的**: 创建、训练、管理和评估用于预测的机器学习模型。产出可供策略使用的"已训练模型"。 * **主要页面**: * **`models.html` (模型列表页)**: * **功能**: 展示所有已创建的模型及其状态和关键信息。提供新建模型入口。 @@ -33,25 +33,18 @@ * **功能**: 配置并启动一个新的模型训练任务。 * **卡片/区域**: * **基本信息**: 模型名称 (必填), 模型描述。 - * **训练配置 (Training Configuration - 新增)**: - * 训练开始日期 (必填, `date`) - * 训练结束日期 (必填, `date`) - * 训练股票池 (必填, `select`, 包含 CSI 300, CSI 500, 全市场A股等) - * 所用特征集 (必填, `text`, placeholder: "例如: Alpha158, VWAP") - * 标签/预测目标 (必填, `text`, placeholder: "例如: Ref($close,-2)/Ref($close,-1)-1") - * **模型配置 (Model Configuration)**: - * 模型类型 (必填, `select`, LightGBM, LSTM, ...)\ - * 模型参数 (根据类型动态显示常用参数输入,或提供高级 YAML/JSON 配置入口) - * **数据配置 (Data Configuration - *待审视*)**: *此部分与“训练配置”有重叠,可能需要合并或移除。目前 `create_model.html` 中存在这部分,包含了数据源、频率、标的(Universe)、特征(重复)、标签(重复)、训练/验证期(重复)。应精简,将核心的训练上下文放在“训练配置”中。* + * **模型定义与训练上下文 (Model Definition & Training Context - 整合自原"训练配置"、"模型配置"和"数据配置")**: + * **模型类型与参数**: 模型类型 (必填, `select`), 模型参数 (常用输入或高级 YAML/JSON)。 + * **数据与训练设定**: 数据源 (必填, `select`), 数据频率 (必填, `select`), 训练股票池 (必填, `select`/`text`), 所用特征集 (必填, `textarea`), 标签/预测目标 (必填, `text`), 训练/验证/测试时间段 (必填, `date` * 6)。 * **操作按钮**: 取消, 保存草稿, **保存并开始训练**。 * **`edit_model.html` (编辑/详情页)**: * **功能**: 查看模型详细配置、训练状态、训练日志(未来)、评估结果(未来),并可编辑配置(对于草稿状态)或触发重新训练。 - * **内容**: 应包含 `create_model.html` 中的所有配置项(根据状态可能只读),并增加显示训练日志、状态详情、模型评估指标等区域。 -* **关键记录数据 (模型元数据)**: 对于每个模型,后端需记录:名称、描述、模型类型、模型参数、**训练开始/结束日期**、**训练股票池**、**特征集**、**标签配置**、训练状态、创建/更新时间、指向训练好的模型文件的指针、训练日志路径、评估结果等。 + * **内容**: 包含与 `create_model.html` 类似的"**基本信息**"和"**模型定义与训练上下文**"区域(根据状态可能只读),并增加显示训练日志、状态详情、模型评估指标等区域。 +* **关键记录数据 (模型元数据)**: 对于每个模型,后端需记录:名称、描述、模型类型、模型参数、**数据源**、**数据频率**、**训练开始/结束日期**、**训练股票池**、**特征集**、**标签配置**、训练状态、创建/更新时间、指向训练好的模型文件的指针、训练日志路径、评估结果等。 ### 2.2. 策略管理 (Strategy Management) -* **目的**: 定义如何利用一个“已训练模型”的信号来构建和执行交易策略。 +* **目的**: 定义如何利用一个"已训练模型"的信号来构建和执行交易策略。 * **主要页面**: * **`strategies.html` (策略列表页)**: * **功能**: 展示所有已创建的策略配置及其运行状态(如果有)。提供新建策略入口和执行操作。 @@ -63,40 +56,45 @@ * 创建/更新日期 * 操作 (详情, **运行回测 (按钮)**, **提交实盘 (按钮)**, 编辑 (草稿状态), 停止等) * **`create_strategy.html` (新建策略页)**: - * **功能**: 创建一个策略配置实例,核心是“选择一个已训练模型”并“定义如何使用其信号”。 + * **功能**: 创建一个策略配置实例,核心是"选择一个已训练模型"并"定义如何使用其信号"。 * **卡片/区域**: * **基本信息**: 策略名称 (必填), 策略描述。 * **选择模型**: - * 下拉框 (`select`, 必填) **只显示状态为“已训练”的模型** (需后端配合)。 + * 下拉框 (`select`, 必填) **只显示状态为"已训练"的模型** (需后端配合)。 * 下方区域 (`#selected_model_info`) **显著展示选中模型的关键训练上下文**: 训练周期, 训练股票池, 特征集, 标签。 + * **回测配置 (Backtest Configuration - 新增于此页面)**: + * 回测时段 (必填, `date` * 2, 开始/结束日期)。 + * 回测基准 (可选, `select`)。 + * 回测股票池 (可选, `text`, 默认为模型训练池)。 * **组合策略配置 (Portfolio Strategy Configuration)**: * 组合策略类型 (必填, `select`, TopkDropoutStrategy, WeightStrategy, ...) * 策略参数 (根据类型动态显示常用参数输入,或提供高级 YAML/JSON 配置入口) * 交易成本 (手续费率, 滑点)。 - * **操作按钮**: 取消, 保存草稿。 (*不再包含“运行回测”按钮*) + * **操作按钮**: 取消, 保存草稿, **开始回测**。 ### 2.3. 执行与结果 (Execution & Results) * **目的**: 基于一个已定义的策略配置,设置具体的执行参数(时间、范围、资金)来运行回测或提交实盘,并查看结果。 * **主要组件/页面**: * **运行回测模态框 (在 `strategies.html` 触发)**: - * **触发**: 点击策略列表行的“运行回测”按钮。 + * **(注意:由于回测参数(时段、基准、股票池)已移至 `create_strategy.html` 页面配置,此"运行回测模态框"的设计及其触发逻辑需要重新审视。可能不再需要在此处收集参数,或者 `create_strategy.html` 保存的是一个包含完整回测设置的策略实例。)** + * **触发**: 点击策略列表行的"运行回测"按钮。 * **参数**: * 回测开始日期 (必填, `date`) - **默认值**: 根据策略关联模型的训练结束日期自动计算下一天。 * 回测结束日期 (必填, `date`) - 默认值: 空。 * 初始资金 (必填, `number`) - 默认值: 例如 1,000,000。 * 基准 (可选, `text`)。 * **股票池/Universe** (必填, `select`) - **默认值**: 根据策略关联模型的训练股票池自动选中。 - * **警告**: 如果用户修改了股票池,导致与模型训练股票池不一致,**点击“开始回测”时弹出 `confirm` 警告**。 + * **警告**: 如果用户修改了股票池,导致与模型训练股票池不一致,**点击"开始回测"时弹出 `confirm` 警告**。 * **操作**: 开始回测 (触发后端任务), 取消。 * **提交实盘模态框 (在 `strategies.html` 触发)**: - * **触发**: 点击策略列表行的“提交实盘”按钮。 + * **触发**: 点击策略列表行的"提交实盘"按钮。 * **参数**: * 选择账户 (必填, `select`)。\ * 分配类型 (固定金额/账户百分比, `radio`)。\ * 金额/百分比 (必填, `number`)。\ * **股票池/Universe** (必填, `select`) - **默认值**: 根据策略关联模型的训练股票池自动选中。 - * **警告**: 如果用户修改了股票池,导致与模型训练股票池不一致,**点击“提交至实盘”时弹出 `confirm` 警告**。 + * **警告**: 如果用户修改了股票池,导致与模型训练股票池不一致,**点击"提交至实盘"时弹出 `confirm` 警告**。 * **操作**: 提交至实盘 (触发后端任务), 取消。 * **`strategy_detail.html` (策略详情页)**: * **功能**: 集中展示一个策略配置的详细信息以及其下所有相关的执行(回测/实盘)记录和结果。 @@ -114,7 +112,7 @@ * 执行状态 (运行中, 已完成, 失败)。 * **关键结果指标** (年化收益, 最大回撤, Sharpe 等)。 * 操作 (查看详细报告/日志, 停止实盘等)。 - * 提供触发“运行新回测”(类似列表页弹窗)或“提交新实盘”的入口。 + * 提供触发"运行新回测"(类似列表页弹窗)或"提交新实盘"的入口。 ## 3. 关键 UX 原则总结 diff --git a/qlib_web_platform/create_model.html b/qlib_web_platform/create_model.html index 478a7ce634..f554b386e6 100644 --- a/qlib_web_platform/create_model.html +++ b/qlib_web_platform/create_model.html @@ -94,104 +94,121 @@

    基本信息< - +
    -

    训练配置

    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    +

    模型定义与训练上下文

    - -
    -

    模型配置

    -
    -
    - - -
    -
    - -
    - -

    根据所选模型类型,将在此处显示常用参数输入框。

    - - -
    - -
    -

    数据配置

    -
    + + +
    +

    回测配置

    +
    + +
    + +
    + + + +
    +

    请指定回测的开始和结束日期。

    +
    + +
    + + +

    选择一个用于比较策略表现的基准指数。

    +
    + +
    + + +

    留空则使用所选模型训练时的股票池。

    +
    @@ -169,6 +211,13 @@

    组合策略 +

    diff --git a/qlib_web_platform/edit_model.html b/qlib_web_platform/edit_model.html index b355e29aa6..87b4fa0410 100644 --- a/qlib_web_platform/edit_model.html +++ b/qlib_web_platform/edit_model.html @@ -85,7 +85,10 @@

    编辑模型

    -

    基本信息

    +

    + 基本信息 + 当前状态: 已训练 +

    @@ -98,113 +101,127 @@

    基本信息<

    - +
    -

    模型配置

    -
    -
    - - - -
    -
    - - -
    -

    根据所选模型类型,将在此处显示常用参数输入框。

    - -
    - - - - +

    模型定义与训练上下文

    + + +
    +

    模型类型与参数

    +
    +
    + + + +
    +
    + + +
    +

    根据所选模型类型,将在此处显示常用参数输入框。

    + +
    + + + + +
    + + - - -
    - -
    - -
    +
    + +
    + +
    +
    -
    - -