Expand description
qmt-parser 提供面向 MiniQMT / QMT 本地数据目录的解析能力。
这个 crate 主要覆盖三类能力:
- 历史行情
.dat文件解析:tick、1 分钟线、日线 - 可选的 Polars
DataFrame输出 - QMT 本地财务与分红数据读取
大多数用户可以直接从 crate 根模块调用重导出的顶层函数,例如
parse_ticks_to_structs、parse_min_to_structs、
parse_daily_to_structs 或 FinanceReader::read_file。
§Feature Flags
polars:默认开启,启用parse_*_to_dataframe系列接口
§Quick Start
解析 tick 文件为结构体:
use qmt_parser::parse_ticks_to_structs;
let ticks = parse_ticks_to_structs("data/000001-20250529-tick.dat")?;
println!("rows = {}", ticks.len());解析日线并限制日期范围:
use qmt_parser::parse_daily_to_structs;
let rows = parse_daily_to_structs("data/day/000001.dat", "20230101", "20231231")?;
println!("rows = {}", rows.len());在启用 polars feature 时生成 DataFrame:
use qmt_parser::parse_min_to_dataframe;
let df = parse_min_to_dataframe("data/000001-1m.dat")?;
println!("{:?}", df.shape());§Modules
Re-exports§
pub use datadir::Market;pub use datadir::QmtDataDir;pub use datadir::parse_security_code;pub use day::daily_dataframe_column_names;pub use day::DailyKlineData;pub use day::DailyReader;pub use day::parse_daily_file_to_dataframe;pub use day::parse_daily_to_dataframe;pub use day::parse_daily_to_dataframe_in_range;pub use day::parse_daily_file_to_structs;pub use day::parse_daily_to_structs;pub use day::parse_daily_to_structs_in_range;pub use dividend::DividendDb;pub use dividend::DividendError;pub use dividend::DividendRecord;pub use error::DailyParseError;pub use error::DataDirError;pub use error::MetadataParseError;pub use error::MinParseError;pub use error::TickParseError;pub use finance::FileType;pub use finance::FinanceData;pub use finance::FinanceError;pub use finance::FinanceReader;pub use finance::FinanceRecord;pub use metadata::load_holidays_from_root;pub use metadata::load_holidays_from_standard_paths;pub use metadata::load_industry_from_root;pub use metadata::load_industry_from_standard_paths;pub use metadata::load_sector_names_from_root;pub use metadata::load_sector_names_from_standard_paths;pub use metadata::load_sector_weight_index_from_root;pub use metadata::load_sector_weight_index_from_standard_paths;pub use metadata::load_sector_weight_members_from_root;pub use metadata::load_sector_weight_members_from_standard_paths;pub use metadata::load_sectorlist_from_root;pub use metadata::load_sectorlist_from_standard_paths;pub use metadata::parse_holiday_file;pub use metadata::parse_industry_file;pub use metadata::parse_sector_name_file;pub use metadata::parse_sector_weight_index;pub use metadata::parse_sector_weight_members;pub use metadata::parse_sectorlist_dat;pub use min::min_dataframe_column_names;pub use min::parse_min_to_dataframe;pub use min::MinKlineData;pub use min::MinReader;pub use min::parse_min_to_structs;pub use tick::parse_ticks_to_dataframe;pub use tick::FULL_TICK_API_FIELD_NAMES;pub use tick::TICK_DATAFRAME_COLUMN_NAMES;pub use tick::tick_api_field_names;pub use tick::tick_dataframe_column_names;pub use tick::TickData;pub use tick::TickReader;pub use tick::parse_ticks_to_structs;