# 股票量化 **Repository Path**: hqs_2026/stock-quantification ## Basic Information - **Project Name**: 股票量化 - **Description**: 简单的股票量化工具代码 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-26 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票量化交易系统 这是一个功能完整的股票量化交易系统,提供数据获取、策略定义和回测功能,帮助用户进行量化投资决策。 ## 功能特点 - **多源数据获取**:支持从AKShare、Tushare和Yahoo Finance等多个数据源获取股票历史数据 - **灵活策略定义**:提供多种内置策略,并支持用户自定义交易策略 - **强大回测系统**:评估策略在历史数据上的表现,计算收益率、最大回撤、夏普比率等指标 - **可视化分析**:生成交易信号图表、权益曲线、回撤分析等可视化结果 - **详细报告生成**:自动生成HTML格式的回测报告,包含完整的交易记录和性能指标 ## 项目结构 ``` ├── data/ # 数据模块 │ ├── fetcher.py # 数据获取 │ └── processor.py # 数据处理 ├── strategies/ # 策略模块 │ ├── base.py # 策略基类 │ ├── common.py # 常用策略 │ └── custom.py # 自定义策略 ├── backtest/ # 回测模块 │ └── engine.py # 回测引擎 ├── config.py # 配置文件 ├── main.py # 主程序入口 ├── examples.py # 使用示例 └── requirements.txt # 项目依赖 ``` ## 安装与使用 1. 安装依赖: ``` pip install -r requirements.txt ``` 2. 运行示例: ``` python examples.py ``` 3. 使用命令行工具: ``` # 回测策略 python main.py backtest --stock 000001.SZ --strategy ma_cross --start 2022-01-01 --end 2023-01-01 # 获取股票数据 python main.py data --stock 000001.SZ --start 2022-01-01 --end 2023-01-01 --save # 列出可用策略 python main.py list ``` ## 内置策略 系统内置了多种常用交易策略: - **移动平均线交叉策略**:短期均线上穿长期均线买入,下穿卖出 - **RSI超买超卖策略**:RSI低于超卖阈值买入,高于超买阈值卖出 - **布林带策略**:价格触及下轨买入,触及上轨卖出 - **MACD策略**:MACD线上穿信号线买入,下穿卖出 - **突破策略**:价格突破N日高点买入,跌破N日低点卖出 - **双均线策略**:价格位于两条均线之上买入,位于两条均线之下卖出 ## 自定义策略 您可以通过两种方式创建自定义策略: 1. **继承BaseStrategy类**:在`strategies`目录下创建新的策略文件,继承`BaseStrategy`类并实现`generate_signals`方法 2. **使用StrategyBuilder**:使用`strategies.custom`模块中的`StrategyBuilder`类,通过API方式创建策略,无需编写代码 ```python # 使用StrategyBuilder创建策略示例 from strategies.custom import StrategyBuilder # 创建策略 strategy = StrategyBuilder.create_strategy("My_Strategy") # 添加指标 StrategyBuilder.add_indicator(strategy, 'rsi', window=14, name='rsi_14') StrategyBuilder.add_indicator(strategy, 'sma', window=20, name='sma_20') # 添加买入条件 StrategyBuilder.add_buy_condition(strategy, 'rsi_14', '<', 30) StrategyBuilder.add_buy_condition(strategy, 'close', '>', 'sma_20', logic='and') # 添加卖出条件 StrategyBuilder.add_sell_condition(strategy, 'rsi_14', '>', 70) ``` ## 回测结果 回测结果将显示策略的以下指标: - 总收益率 - 年化收益率 - 最大回撤 - 夏普比率 - 胜率 - 交易次数 系统会自动生成回测报告和可视化图表,帮助您分析策略表现。 ## 配置说明 在`config.py`文件中可以修改系统配置: - 数据源配置 - 数据存储配置 - 回测参数配置 - 日志配置 - 绘图配置 ## 示例代码 ```python # 导入必要模块 from data.fetcher import AKShareDataFetcher from strategies.common import MovingAverageCrossStrategy from backtest.engine import BacktestEngine # 获取数据 fetcher = AKShareDataFetcher() data = fetcher.get_stock_data("000001.SZ", "2022-01-01", "2023-01-01") # 创建策略 strategy = MovingAverageCrossStrategy() strategy.set_parameters({'short_window': 10, 'long_window': 30}) # 创建回测引擎 engine = BacktestEngine(strategy=strategy, data=data) # 运行回测 results = engine.run() # 绘制结果 engine.plot_results() # 保存报告 engine.save_report() ```