# qmt **Repository Path**: wuyouxin/qmt ## Basic Information - **Project Name**: qmt - **Description**: 量化交易 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2025-07-11 - **Last Updated**: 2025-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QMT量化交易系统 ## 项目概述 QMT量化交易系统是一个基于Python开发的量化交易平台,集成了数据获取、策略回测、实盘交易、风险控制等功能模块。系统采用模块化设计,支持多种数据源接入和策略执行方式。 ## 项目结构 ``` qmt/ ├── config/ # 配置文件目录 │ └── config.ini # 系统配置文件 ├── logs/ # 日志文件目录 ├── src/ # 源代码目录 │ ├── controller/ # API控制器层 │ ├── database/ # 数据库处理层 │ ├── dto/ # 数据传输对象 │ ├── factory/ # 工厂类 │ ├── handle/ # 业务处理器 │ ├── logic/ # 业务逻辑层 │ ├── request/ # 请求对象 │ ├── scheduler/ # 任务调度器 │ ├── service/ # 服务层 │ ├── strategy/ # 策略实现 │ ├── utils/ # 工具类 │ └── main.py # 应用入口 └── README.md # 项目说明文档 ``` ## 修复记录 ### 2025-09-01 - **功能**: 新增板块涨跌幅排名功能 - **实现**: 在SectorLogic.py中添加calculate_increase_in_price_ranking()方法,在SectorHandler.py中添加数据库操作逻辑,实现历史所有板块数据的每日涨跌幅排名计算并写入increase_in_price_ranking字段 - **问题**: PriceVolumeTrendTrackingStrategy.py中get_buy_stocks方法的KeyError问题 - **修复**: 将直接字典访问改为get方法 - **问题**: DateStrategyScheduler.py中股票代码格式不统一问题 - **修复**: 为stock_id添加交易所后缀 ### 2025-08-31 - **问题**: numpy数组布尔判断错误 "The truth value of an array with more than one element is ambiguous" - **修复**: 修改IndicatorsUtil.py中的calculate_atr、calculate_high_price、calculate_volume_ma函数,将`if not array`检查改为`if array is None or len(array) == 0` - **问题**: numpy.float32直接转换为Decimal导致TypeError - **修复**: 修改StockLogic.py中的Decimal转换代码,添加float中间转换步骤:`Decimal(float(numpy_array[i]))` - **问题**: 股票指标数据更新效率低下,逐条更新性能差 - **修复**: 重构StockHandler.py中的update_stock方法,使用批量更新机制替代逐条更新,性能提升显著 - **问题**: PriceVolumeTrendTrackingStrategy.py中decimal.Decimal与float类型乘法运算TypeError - **修复**: 修改第224行和226行的计算逻辑,将float类型常量替换为Decimal类型,并添加Decimal模块导入 ### 2025-09-03 - **问题**: StockTradeHandler.buy_stock方法在账户余额不足时返回False而不是None,导致后续AttributeError: 'bool' object has no attribute 'stock_id' - **修复**: 修改StockTradeHandler.py第65行,将return False改为return None,并添加余额不足的日志记录 - **修复**: 修改PriceVolumeTrendTrackingStrategy.py第210行,在调用update_holdings_from_trades前检查trade_record是否为None - **修复**: 修复PriceVolumeTrendTrackingStrategy.py中buy_benchmark方法对trade_record的None检查 - **修复**: 修复PriceVolumeTrendTrackingStrategy.py中get_market_state方法的切片操作问题,添加数据有效性检查并修正字典索引错误 - **功能**: 在StockLogic.py中新增add_column方法,支持为所有股票表批量添加字段 - **功能**: 在StockHandler.py中新增add_column方法,支持为单个股票表添加字段 ### 2025-09-04 - **优化**: 重构StockHandler.py中的add_column方法,将循环执行多条ALTER TABLE语句改为使用一条SQL批量增加多个字段 - **优化**: 修改StockLogic.py中的add_column方法,适配新的StockHandler.add_column接口 - **修复**: 在StockHandler.py中添加ColumnInfo类的导入,确保类型检查正确 ### 2025-09-05 - **优化**: 修改StockLogic.py中get_stock_volume方法的JSONP回调函数名,从固定时间戳改为动态生成时间戳,避免缓存问题 - **修复**: 解决DateStrategyScheduler.py中KeyError: '601989.SH'错误,在构建stock_dict时添加异常处理,并在后续访问时添加安全检查,避免因股票数据获取失败导致的KeyError ### 2025-10-11 - **功能**: 为test11.py添加鼠标悬停显示数据点值功能,修复update_annot函数中的KeyError错误 - **优化**: 将update_annot函数中数据点索引获取方式从ind["name"]改为ind["ind"][0],直接从原始points数组获取值 - **功能**: 为test11.py添加鼠标横向滚动条功能,实现x轴范围的动态调整 - **功能**: 为test11.py添加图片左右移动功能,支持Shift+滚轮左右平移和方向键控制 - **修复**: 修复test11.py中TickStock对象属性访问错误,将lastClose改为pre_close - **修复**: 修复test11.py中matplotlib焦点设置问题,移除无效的setFocusPolicy调用 ### 2025-10-12 - **问题**: test11.py中位置81和82未被识别为波峰,导致连续波峰检测不完整 - **分析**: 原始波峰检测逻辑过于严格,要求当前值必须同时大于前后值,无法识别平台式波峰和上升趋势中的局部高点 - **修复**: 修改波峰检测条件,支持平台式波峰(当前值>前值且=后值)和上升趋势局部高点(当前值>前值且<后值) - **优化**: 将幅度过滤阈值从0.5%降低至0.1%,以识别更多有意义的局部极值点 - **结果**: 位置81和82成功被识别为波峰,连续波峰检测效果显著改善,波峰数量从8个增加到78个 - **验证**: 通过多次测试验证修改后的波峰检测逻辑,确保位置81和82被正确识别并包含在最终波峰列表中 ### 2025-10-12(绘图优化) - **优化**: 取消折线图上的普通数据点标记,将ax.plot()格式从'b-o'改为'b-',使折线图更加清晰 - **优化**: 减小波峰、波谷、上行点、下行点的标注点大小,波峰波谷从s=100减小到s=40,上下行点从s=80减小到s=30 - **效果**: 图表更加美观,标注点大小适中,既不会过于突出遮挡折线,又能清晰标识出各种极值点 - **保持**: 所有交互功能(鼠标悬停、缩放、平移)保持完整,用户体验不受影响 ## 核心模块详细说明 ### 1. 数据传输对象 (DTO) #### `src/dto/Models.py` 数据库表实体类定义文件,包含所有数据库表的ORM映射: - **Holdings类**: 持仓表实体,存储策略持仓信息 - 属性:策略执行ID、策略ID、股票ID、持仓数量、价格、价值、成本价、浮动利润等 - 方法:无特殊方法 - **HoldingsHistory类**: 持仓历史表实体,存储历史持仓记录 - 属性:交易日期、持仓信息、价格、价值、利润等历史数据 - 方法:无特殊方法 - **StockTrade类**: 股票交易表实体,存储交易记录 - 属性:交易ID、策略信息、交易日期、股票信息、交易类型、持仓、价格、金额、手续费等 - 方法:无特殊方法 - **Stock类**: 股票数据表实体(抽象基类,分表设计) - 属性:股票代码、名称、交易日期、开盘价、最高价、最低价、收盘价、成交量、成交额 - 技术指标:各种均线、波动率、RSI、ATR、MACD等28种技术指标 - 方法:`get_table_suffix(stock_code)` - 根据股票代码获取表后缀 - **Account类**: 账户表实体,存储账户资金信息 - 属性:账户ID、策略信息、总金额、现金金额、可用金额、冻结金额等 - 方法:无特殊方法 #### `src/dto/BaseEntities.py` 基础实体类定义文件,包含业务逻辑使用的数据类: - **OrderCost类**: 交易成本配置类 - 属性:买入印花税、卖出印花税、买入佣金、卖出佣金、最低佣金、交易时间等 - 方法:无特殊方法 - **StockIndicators类**: 股票指标类 - 属性:股票代码、交易日期、Z-Score、RSI、ATR、波动率分位数、成交量比率、信号得分等 - 方法:无特殊方法 - **StrategyExecute类**: 策略执行记录实体类 - 属性:策略执行ID、策略信息、执行类型、时间范围、手续费配置、执行状态 - 性能指标:策略收益、年化收益、超额收益、Alpha、Beta、夏普比率、胜率、最大回撤等 - 方法:无特殊方法 ### 2. 工具类 (Utils) #### `src/utils/IndicatorsUtil.py` 技术指标计算工具类(包含RSI、波动率、Z-Score等技术指标,已修复RSI计算中可能产生NaN值的问题,并修复了numpy数组处理问题): - **IndicatorsUtil类**: 指标计算工具类 - `calculate_adx()`: 计算ADX指标(平均趋向指数) - `calculate_price_volatility()`: 计算价格波动率 - `calculate_price_volatility_list()`: 计算价格波动率列表 - `calculate_volatility_quantile()`: 计算波动率分位数 - `calculate_zscore()`: 计算Z-Score标准化分数 - `calculate_rsi()`: 计算RSI相对强弱指数(已修复NaN值问题) - `calculate_volume_ratio()`: 计算成交量比率指标 - `calculate_signal_score()`: 计算综合信号得分 - `calculate_atr()`: 计算ATR平均真实波幅(已修复numpy数组布尔判断问题) - `calculate_high_price()`: 计算最高价(已修复numpy数组布尔判断问题) - `calculate_volume_ma()`: 计算成交量均线(已修复numpy数组布尔判断问题) - `calculate_dynamic_stop_price()`: 计算动态止损价格 ### 3. 工厂类 (Factory) #### `src/factory/DataSourceFactory.py` 数据源工厂类,负责创建不同类型的数据源策略实例: - **DataSourceFactory类**: 数据源工厂 - `create_strategy()`: 从配置文件中读取策略类型并创建对应的数据源策略实例 - 支持的数据源类型:mysql、qmt、http #### `src/factory/EnvironmentFactory.py` 环境工厂类,负责创建不同执行环境的策略实例: - **EnvironmentFactory类**: 环境工厂 - `create_strategy(env_type)`: 根据环境类型创建对应的策略实例 - 支持的环境类型:local(本地回测)、qmt(QMT回测)、real(实盘交易) #### `src/factory/BackTestFactory.py` 回测策略工厂类,负责创建不同类型的回测策略实例: - **BackTestFactory类**: 回测策略工厂 - `create_strategy(strategy_id)`: 根据策略ID创建对应的回测策略实例 - 支持的策略类型:10001(增长动量策略)等 #### `src/factory/StockModelFactory.py` 股票模型工厂类,负责创建分表对应的ORM模型: - **StockModelFactory类**: 股票模型工厂 - `get_model(suffix)`: 根据表后缀获取对应的股票数据模型 - 支持动态创建分表对应的ORM模型 ### 4. 业务处理器 (Handle) #### `src/handle/StockHandler.py` 股票数据处理器,负责股票数据的CRUD操作: - **StockHandler类**: 股票处理器 - `get_stock(stock_code, date)`: 获取指定股票的日线数据 - `is_table_exist(stock_code)`: 检查股票对应的分表是否存在 - `create_table(stock_code)`: 创建股票分表(包含唯一键约束) - `batch_insert_or_update(stock_code, data)`: 批量插入或更新股票数据(高效版) - `update_stock(stock_code, stock_list)`: 更新股票技术指标数据 #### `src/handle/StrategyExecuteHandler.py` 策略执行处理器,负责策略执行记录的CRUD操作: - **StrategyExecuteHandler类**: 策略执行处理器 - `update(strategy_execute)`: 更新策略执行记录 - `get_by_strategy_execute_id(strategy_execute_id)`: 根据ID查询策略执行记录 - `update_execute_state(strategy_execute_id, state)`: 更新策略执行状态 - `save(strategy_execute)`: 保存策略执行记录 #### `src/handle/AccountHandler.py` 账户处理器,负责账户资金的CRUD操作: - **AccountHandler类**: 账户处理器 - `create(strategy_execute)`: 创建基准账户和策略账户 - 其他账户相关的操作方法 #### `src/handle/AccountEndingHandler.py` 账户结算处理器,负责账户每日结算处理: - **AccountEndingHandler类**: 账户结算处理器 - `init_account_ending(strategy_execute_id, account_id, date)`: 初始化账户日终数据 - 其他账户结算相关方法 #### `src/handle/WeekConfigHandler.py` 工作日配置处理器,负责判断是否为工作日: - **WeekConfigHandler类**: 工作日配置处理器 - `is_workday(date)`: 判断指定日期是否为工作日 #### `src/handle/SectorConfigHandler.py` 板块配置处理器,负责板块数据的处理: - **SectorConfigHandler类**: 板块配置处理器 - 处理股票板块配置信息 ### 5. 业务逻辑层 (Logic) #### `src/logic/StockLogic.py` 股票业务逻辑处理,负责股票数据的处理和指标计算(已修复numpy.float32到Decimal的直接转换问题): - **StockLogic类**: 股票逻辑处理 - `date_line_indicators_replenish(stock_list)`: 补充股票日线指标数据 - `get_stock_indicator(stock_code, date)`: 获取股票技术指标 - `calculate_stock_indicator(stock_list)`: 计算股票技术指标 - `shares_date_line_by_date(stock_code, start_date, end_date)`: 按日期范围获取股票日线数据 - `shares_date_line_base(stock_code, date, day)`: 获取基准日线数据 ### 6. 服务层 (Service) #### `src/service/StrategyExecuteService.py` 策略执行服务,负责策略执行的业务逻辑: - **StrategyExecuteService类**: 策略执行服务 - `add_strategy_execute(add_strategy_execute_request)`: 添加策略执行记录 - `start_strategy_execute(strategy_execute_id)`: 启动策略执行 - `_convert_to_strategy_execute(request)`: 将请求对象转换为策略执行实体 ### 7. 任务调度器 (Scheduler) #### `src/scheduler/DateStrategyScheduler.py` 日期策略调度器,负责每日定时执行策略: - **DateStrategyScheduler类**: 日期策略调度器 - `execute()`: 执行日期策略(每日下午4点30分执行) - 获取所有A股代码,计算技术指标,执行策略选股 #### `src/scheduler/SectorStockScheduler.py` 板块股票调度器,负责板块股票数据的定时处理: - **SectorStockScheduler类**: 板块股票调度器 - 处理板块股票数据的定时任务 ### 8. API控制器层 (Controller) #### `src/controller/StrategyExecuteController.py` 策略执行控制器,提供策略执行的API接口: - **StrategyExecuteController类**: 策略执行控制器 - `add_strategy_execute()`: 添加策略执行记录API - `start_strategy_execute()`: 启动策略执行API - `get_strategy_execute()`: 获取策略执行记录API - `get_strategy_execute_list()`: 获取策略执行列表API ### 9. 策略实现 (Strategy) #### `src/strategy/backTestStrategy/AbstractBackTestStrategy.py` 回测策略抽象基类,定义所有回测策略的接口规范: - **AbstractBackTestStrategy类**: 回测策略抽象基类 - `get_benchmark_stock()`: 获取基准股票 - `get_backTest_stocks()`: 获取回测股票列表 - `get_market_state()`: 获取市场状态 - `get_technical_indicators()`: 获取技术指标 - `sell()`: 卖出操作 - `buy()`: 买入操作 - `buy_benchmark()`: 买入基准股票 #### `src/strategy/backTestStrategy/GrowthMomentumStrategy.py` 增长动量策略实现,沪深300成分股均值回归增强策略: - **GrowthMomentumStrategy类**: 增长动量策略 - `get_buy_stocks(stock_indicators_list)`: 获取买入股票列表 - `is_market_up_trend()`: 判断市场是否处于上涨趋势 - `calculate_technical_indicators()`: 计算技术指标 - `generate_trading_signals()`: 生成交易信号 - `execute_buy_operations()`: 执行买入操作 - `execute_sell_operations()`: 执行卖出操作 #### `src/strategy/backTestStrategy/PriceVolumeTrendTrackingStrategy.py` 量价趋势跟踪策略,基于价格突破和成交量变化的趋势跟踪策略: - **PriceVolumeTrendTrackingStrategy类**: 量价趋势跟踪策略 - 买入信号:收盘价突破20日内最高价、当日量超5日均量80%、5日线上穿13日线 - 卖出信号:收盘价跌破5日均线、成交量萎缩、从高点回撤8%、死叉信号、波动率突破 - 仓位管理:基于ATR动态调整仓位 #### `src/strategy/backTestStrategy/LateDayBuyingStrategy.py` 尾盘买入策略,在交易日尾盘进行买入操作的策略: - **LateDayBuyingStrategy类**: 尾盘买入策略 - 实现尾盘时段的特殊买入逻辑 #### `src/strategy/dataSourceStrategy/AbstractDataSourceStrategy.py` 数据源策略抽象基类,定义数据获取接口规范: - **AbstractDataSourceStrategy类**: 数据源策略抽象基类 - `get_sector_list()`: 获取板块列表 - `get_market_data_ex()`: 获取股票行情数据 - `get_latest_price()`: 获取最新价格 - `get_stock()`: 获取股票信息 #### `src/strategy/dataSourceStrategy/MySqlDataSourceStrategy.py` MySQL数据源策略,从MySQL数据库获取股票数据: - **MySqlDataSourceStrategy类**: MySQL数据源策略 - `get_sector_list(sector_name)`: 获取板块股票列表 - `get_market_data_ex()`: 获取扩展的市场数据 - `get_latest_price()`: 获取指定日期的最新价格 - `get_stock()`: 获取股票详细信息 #### `src/strategy/dataSourceStrategy/QMTDataSourceStrategy.py` QMT数据源策略,从QMT平台获取股票数据: - **QMTDataSourceStrategy类**: QMT数据源策略 - 从QMT平台获取实时行情数据 #### `src/strategy/dataSourceStrategy/HttpDataSourceStrategy.py` HTTP数据源策略,通过HTTP接口获取股票数据: - **HttpDataSourceStrategy类**: HTTP数据源策略 - 通过REST API获取股票数据 #### `src/strategy/environmentStrategy/AbstractEnvironmentStrategy.py` 环境策略抽象基类,定义不同执行环境的策略接口: - **AbstractEnvironmentStrategy类**: 环境策略抽象基类 - `execute()`: 执行策略 #### `src/strategy/sectorListStrategy/AbstractSectorListStrategy.py` 板块列表策略抽象基类,定义板块数据获取接口: - **AbstractSectorListStrategy类**: 板块列表策略抽象基类 - `get_data()`: 获取板块数据 #### `src/strategy/sectorListStrategy/HS300Strategy.py` 沪深300策略,专门处理沪深300成分股数据: - **HS300Strategy类**: 沪深300策略 - `get_data()`: 获取沪深300成分股列表 - 调用东方财富API获取实时沪深300数据 ### 10. 数据库处理层 (Database) #### `src/database/Database.py` 数据库连接管理,提供数据库会话管理: - **数据库连接配置**: MySQL数据库连接配置 - **shares_session()**: 获取股票数据库会话 - **get_shares_inspector()**: 获取数据库检查器 #### `src/database/DatabaseConnector.py` 数据库连接器,提供原始的数据库操作: - **DatabaseConnector类**: 数据库连接器 - `connect()`: 建立数据库连接 - `execute_query()`: 执行查询语句 - `execute_update()`: 执行更新语句 - `close()`: 关闭数据库连接 ### 11. 工具类 (Utils) #### `src/utils/SequenceGenerator.py` 序列号生成器,负责生成各种业务ID: - **SequenceGenerator类**: 序列号生成器 - `get_strategy_execution_id()`: 生成策略执行ID - 其他业务ID生成方法 #### `src/utils/LarkUtil.py` 飞书工具类,负责飞书消息推送: - **LarkUtil类**: 飞书工具类 - `send_card_message(user_id)`: 发送卡片消息 - `send_text_message(user_id, message)`: 发送文本消息 - `get_user_id(phone)`: 根据手机号获取用户ID #### `src/utils/DateUtil.py` 日期工具类,负责日期时间处理和节假日查询: - **DateUtil类**: 日期工具类 - `get_holidays(start_date, end_date)`: 查询指定时间范围内的节假日 - `get_date_info(date)`: 获取指定年份的所有日期信息 - `process_years_range(start_year, end_year)`: 处理指定年份范围内的所有日期信息 - `save_date_info_to_db(date_list)`: 将日期信息保存到数据库 #### `src/utils/HttpClient.py` HTTP客户端工具类,负责HTTP请求的发送和处理: - **HttpClient类**: HTTP请求工具类 - `get(url, params, headers)`: 发送GET请求 - `post(url, data, json_data, headers)`: 发送POST请求 #### `src/utils/SequenceGenerator.py` 序列号生成器,负责生成各种业务ID: - **SequenceGenerator类**: 序列号生成器 - `get_strategy_execution_id()`: 生成策略执行ID - 其他业务ID生成方法 #### `src/utils/LarkUtil.py` 飞书工具类,负责飞书消息推送: - **LarkUtil类**: 飞书工具类 - `send_card_message(user_id)`: 发送卡片消息 - `send_text_message(user_id, message)`: 发送文本消息 - `get_user_id(phone)`: 根据手机号获取用户ID #### `src/utils/IndicatorsUtil.py` 技术指标计算工具类(包含RSI、波动率、Z-Score等技术指标,已修复RSI计算中可能产生NaN值的问题): - **IndicatorsUtil类**: 指标计算工具类 - `calculate_adx()`: 计算ADX指标(平均趋向指数) - `calculate_price_volatility()`: 计算价格波动率 - `calculate_price_volatility_list()`: 计算价格波动率列表 - `calculate_volatility_quantile()`: 计算波动率分位数 - `calculate_zscore()`: 计算Z-Score标准化分数 - `calculate_rsi()`: 计算RSI相对强弱指数(已修复NaN值问题) - `calculate_volume_ratio()`: 计算成交量比率指标 - `calculate_signal_score()`: 计算综合信号得分 - `calculate_atr()`: 计算ATR平均真实波幅 - `calculate_dynamic_stop_price()`: 计算动态止损价格 ### 12. 请求对象 (Request) #### `src/request/StrategyExecuteRequest.py` 策略执行请求对象,定义API请求参数: - **AddStrategyExecuteRequest类**: 添加策略执行请求 - 包含策略执行相关的所有请求参数 ### 13. 测试模块 (Tests) #### `tests/controller/test_StrategyExecuteController.py` 策略执行控制器测试文件,包含单元测试用例: - **TestStrategyExecuteController类**: 策略执行控制器测试类 - `test_add_strategy_execute()`: 测试添加策略执行方法 ### 14. 配置文件 (Config) #### `config/config.ini` 系统配置文件,包含数据库连接、日志配置、策略参数等: - 数据库连接配置 - 日志级别设置 - 策略执行参数 - 第三方API配置 #### `config/logging.conf` 日志配置文件,定义日志格式、输出位置、轮转策略等 #### `config/os.env` 环境变量配置文件,包含系统环境相关的配置 ### 15. 依赖管理文件 #### `requirements.txt` Python依赖包列表,包含项目运行所需的所有第三方库 #### `Pipfile` 和 `Pipfile.lock` Pipenv依赖管理文件,用于虚拟环境管理 #### `pyproject.toml` Python项目配置文件,包含构建系统和项目元数据 ### 16. 开发工具配置 #### `.vscode/launch.json` VS Code调试配置文件,包含调试启动配置 #### `.vscode/settings.json` VS Code工作区设置文件,包含编辑器配置 #### `launch.json` 通用调试配置文件 ### 17. 测试文件 项目包含多个测试文件(test2.py - test14.py),用于功能测试和验证: - 各种策略的测试验证 - 数据获取功能测试 - 技术指标计算验证 - 交易逻辑测试 ## 技术特色 1. **模块化设计**: 采用清晰的分层架构,各模块职责明确 2. **策略多样化**: 支持多种量化策略,包括增长动量、量价趋势跟踪、尾盘买入等 3. **数据源灵活**: 支持MySQL、QMT、HTTP等多种数据源 4. **技术指标丰富**: 包含28种技术指标计算,支持复杂的量化分析 5. **风险控制**: 完善的仓位管理和止损机制 6. **实时监控**: 集成飞书消息推送,实时监控策略执行状态 7. **自动化调度**: 支持定时任务调度,自动执行策略 8. **智能过滤**: 支持配置股票黑名单,自动跳过指定股票的计算和处理 9. **性能优化**: 集成Cython编译,关键性能模块使用C扩展提升执行效率 10. **智能文件分发**: 自动将Cython编译生成的文件分类输出到指定目录(C源代码到src/c,编译模块到src/pyd) 11. **多模块支持**: 支持同时编译PriceMa和VolumeMa等多个Cython模块,统一管理技术指标计算函数 ## 开发规范 1. 代码遵循PEP8规范 2. 使用类型注解提高代码可读性 3. 完善的日志记录系统 4. 单元测试覆盖核心功能 5. 配置文件与代码分离 6. 数据库操作使用ORM框架 7. HTTP请求使用统一的客户端工具 ## 部署说明 ### 生产环境部署 1. 配置数据库连接信息 2. 设置日志输出路径 3. 配置飞书消息推送 4. 设置定时任务调度 5. 监控系统运行状态 ### 开发环境部署 1. 安装Python 3.8+环境 2. 安装项目依赖:`pip install -r requirements.txt` 3. 配置开发数据库 4. 设置调试环境 5. 运行测试用例 ## 安装教程 ### 环境要求 - Python 3.8+ - MySQL 5.7+ - 相关Python依赖包 ### 安装步骤 1. 克隆项目代码 2. 安装依赖:`pip install -r requirements.txt` 3. 配置数据库连接信息 4. 运行应用:`python src/main.py` ## API文档 系统提供完整的RESTful API接口,支持策略执行、数据查询、监控管理等功能。 ## 技术支持 如有问题请联系开发团队。 --- *最后更新日期: 2025年*