-
Notifications
You must be signed in to change notification settings - Fork 724
配置文件设置
fasiondog edited this page Nov 22, 2025
·
1 revision
**本文引用的文件**
- [hku_config_template.py](file://hikyuu/data/hku_config_template.py)
- [hikyuu_linux.ini](file://test_data/hikyuu_linux.ini)
- [hikyuu_win.ini](file://test_data/hikyuu_win.ini)
- [logger.properties](file://test_data/logger.properties)
- [hikyuu.cpp](file://hikyuu_cpp/hikyuu/hikyuu.cpp)
- [hikyuu.h](file://hikyuu_cpp/hikyuu/hikyuu.h)
- [StockManager.h](file://hikyuu_cpp/hikyuu/StockManager.h)
- [StockManager.cpp](file://hikyuu_cpp/hikyuu/StockManager.cpp)
- [examples_init.py](file://hikyuu/examples/examples_init.py)
- [mylog.py](file://hikyuu/util/mylog.py)
- [IniParser.h](file://hikyuu_cpp/hikyuu/utilities/ini_parser/IniParser.h)
Loading
Loading
- 简介
- 项目结构与配置文件定位
- 核心配置结构与参数详解
- 数据库连接配置(MySQL/SQLite/ClickHouse)
- 数据存储路径与HDF5配置
- 日志设置与调试
- 默认市场参数与交易时间
- Linux与Windows配置差异与适配
- 配置验证与初始化流程
- 常见问题与排错
- 结论
本指南面向Hikyuu框架使用者,围绕配置文件设置展开,基于模板文件与示例配置,系统讲解:
- 配置文件结构与各节参数含义
- 数据库连接(MySQL/SQLite/ClickHouse)配置要点
- HDF5数据存储路径与文件映射
- 日志配置与调试方法
- 默认市场参数与交易时间
- Linux与Windows配置差异与适配
- 配置验证与初始化流程,确保StockManager等核心组件正确加载
- 模板与默认配置生成:位于数据模块,提供HDF5/MySQL/ClickHouse三套模板与默认配置生成逻辑
- 示例配置:提供Linux与Windows两套示例配置,展示路径分隔符差异
- 日志配置:提供log4cplus的logger.properties示例
- 初始化与加载:C++侧通过IniParser读取配置,Python侧负责默认配置生成与加载
graph TB
A["hikyuu/data/hku_config_template.py<br/>模板与默认配置生成"] --> B["~/.hikyuu/hikyuu.ini<br/>默认配置文件"]
C["test_data/hikyuu_linux.ini<br/>Linux示例配置"] --> D["运行时加载"]
E["test_data/hikyuu_win.ini<br/>Windows示例配置"] --> D
F["test_data/logger.properties<br/>日志配置"] --> G["日志输出"]
H["hikyuu_cpp/hikyuu/hikyuu.cpp<br/>读取配置并初始化"] --> I["StockManager::init<br/>核心组件初始化"]
图表来源
- hku_config_template.py
- hikyuu_linux.ini
- hikyuu_win.ini
- logger.properties
- hikyuu.cpp
- StockManager.h
章节来源
- hku_config_template.py
- hikyuu_linux.ini
- hikyuu_win.ini
- logger.properties
- hikyuu.cpp
- StockManager.h
Hikyuu配置采用INI格式,主要包含以下节:
- hikyuu:全局参数(临时目录、数据目录、重载时间、行情服务器等)
- block:板块数据源(type与数据库连接或本地目录)
- preload:预加载开关与最大条数限制
- baseinfo:基础信息数据源(type与数据库连接)
- kdata:K线数据源(type与具体数据文件或数据库连接)
- importdata-gui(模板中提供):导入工具相关参数(启用开关、数据源、调度等)
参数要点:
- tmpdir/datadir:临时与数据根目录,影响StockManager的临时目录与数据目录
- reload_time:数据重载时间(HH:MM)
- quotation_server:行情服务地址(IPC或TCP)
- preload.与preload._max:按K线类型控制是否预加载与最大条数
- baseinfo与block的type字段决定数据源类型(sqlite3/mysql/clickhouse/qianlong等)
- kdata的type字段决定K线数据源类型(hdf5/mysql/clickhouse/tdx等)
章节来源
- hku_config_template.py
- hku_config_template.py
- hku_config_template.py
- hku_config_template.py
- SQLite:适用于轻量场景,无需网络连接;在block与baseinfo节中设置type=sqlite3,并提供db路径
- MySQL:在block、baseinfo、kdata节中设置type=mysql,并提供host/port/usr/pwd
- ClickHouse:在block、baseinfo、kdata节中设置type=clickhouse,并提供host/port/usr/pwd
注意:
- 当选择MySQL或ClickHouse时,需确保相应数据库已部署并具备权限
- kdata节的type需与block/baseinfo保持一致,以保证数据一致性
章节来源
- hku_config_template.py
- hku_config_template.py
- HDF5模式下,kdata节type=hdf5,并为不同市场与周期提供.h5文件映射
- 示例配置展示了上海/深圳/北京市场的日线、分钟线、分时与成交明细文件路径
- Linux与Windows示例配置分别使用正斜杠与反斜杠作为路径分隔符
章节来源
- hku_config_template.py
- hikyuu_linux.ini
- hikyuu_win.ini
- Python侧日志:默认将日志输出到用户目录下的日志文件,并提供基础格式化
- C++侧日志:通过Log.h宏进行断言与异常处理,便于定位初始化与运行期问题
- 示例日志配置:logger.properties展示了log4cplus的rootLogger与hikyuu子logger配置方式
章节来源
- mylog.py
- hikyuu.cpp
- logger.properties
- MarketInfo包含市场简称、名称、描述、基本指数代码、最后交易日期以及两个交易时段的时间段
- 交易时间与节假日判断依赖MarketInfo与交易日历,确保回测与实盘交易时间准确
章节来源
- MarketInfo.h
- MarketInfo.cpp
- MarketInfo.cpp
- 路径分隔符:Linux使用正斜杠,Windows使用反斜杠
- 示例配置分别展示了两种平台的路径写法
- 建议在跨平台部署时,统一使用相对路径或通过脚本替换路径分隔符
章节来源
- hikyuu_linux.ini
- hikyuu_win.ini
- Python侧默认配置生成:当用户目录下不存在默认配置时,自动创建hikyuu.ini与importdata-gui.ini,并复制板块配置目录
- 配置读取与参数传递:Python侧将hikyuu节参数与block/baseinfo/kdata/preload节参数封装为Parameter对象
- C++侧初始化:C++侧通过IniParser读取配置文件,提取hikyuu、block、baseinfo、kdata、preload等参数,并调用StockManager::init完成初始化
sequenceDiagram
participant Py as "Python层"
participant FS as "文件系统"
participant Cpp as "C++层"
participant SM as "StockManager"
Py->>FS : 检查~/.hikyuu/hikyuu.ini是否存在
alt 不存在
Py->>FS : 生成默认配置与导入配置
Py->>FS : 复制板块配置目录
end
Py->>Cpp : 调用hikyuu_init(配置文件路径)
Cpp->>Cpp : IniParser读取配置文件
Cpp->>SM : StockManager : : init(参数)
SM-->>Cpp : 初始化完成
Cpp-->>Py : 返回
图表来源
- hku_config_template.py
- hikyuu.cpp
- StockManager.h
章节来源
- hku_config_template.py
- hikyuu.cpp
- StockManager.h
- 配置文件不存在:Python侧会尝试生成默认配置;若仍失败,检查用户目录权限与路径
- IniParser读取异常:确认配置文件格式正确(每个节必须有方括号节头,键值对格式为key=value)
- 数据库连接失败:核对host/port/usr/pwd与数据库连通性
- HDF5文件缺失:确认kdata节中各市场与周期的.h5文件路径存在且可读
- 日志无输出:检查logger.properties配置与日志文件路径权限
章节来源
- hikyuu.cpp
- IniParser.h
- logger.properties
- 使用模板与示例配置快速搭建Hikyuu环境
- 根据实际数据来源选择合适的数据库或HDF5存储
- 注意Linux/Windows路径差异,确保配置文件路径正确
- 通过默认配置生成与初始化流程,确保StockManager等核心组件正确加载
- 遇到问题时,结合日志与IniParser错误提示进行定位与修复