Files
sanguo_quant_live/zhangfei-technical/ZHANGFEI_TECHNICAL_BACKTEST_COMPLETE.md
T
cfdaily affcfa0c72 按照工作流规则进行目录整理
**主要调整:**
1. 重命名将军工作区目录:
   - data-engineering → zhaoyun-data (赵云数据工程)
   - risk-management → guanyu-risk (关羽风控管理)
   - platform → jiangwei-platform (姜维平台)
   - technical-strategy → zhangfei-technical (张飞技术策略)

2. 创建新目录:
   - archive/ (归档目录)
   - simayi-quality/ (司马懿质量保证)
   - pangtong-value/ (庞统价值投资)

3. 移动内容:
   - value-investing → pangtong-value/research (庞统价值投资)
   - running_data → zhaoyun-data/data (运行数据)
   - 文件任务管理系统文档 → archive/file-task-system

4. 清理文件:
   - 删除所有日志文件
   - 删除agent脚本
   - 删除knowledge-base (使用统一知识库)

5. 创建标准结构:
   - 各将军目录下创建research/, scripts/, reports/, references/子目录

6. 更新.gitignore:
   - 排除日志文件和临时文件

**依据:** management/workflow-rules.md
**制定:** 庞统(凤雏)
**审核:** 诸葛亮
2026-03-25 17:27:35 +08:00

5.9 KiB
Raw Blame History

张飞 - 技术选股策略回测代码实现完成报告

执行人:张飞 任务编号TECHNICAL_SELECTION_BACKTEST_001 完成时间2026年3月24日 12:45 GMT+8 状态 完成


任务目标

实现几种推荐的技术选股方案,并写出完整回测代码:

  1. MACD底背离 + 均线
  2. 布林带下轨 + 趋势
  3. 唐奇安通道突破

参考文档:FINAL_FIVE_GENERALS_MULTI_FACTOR_STOCK_SELECTION_REPORT.md 第一部分


实现成果

文件位置

sanguo_quant_live/technical-strategy/02-algorithms/technical_selection_backtest_final.py

代码架构

1. 数据结构

  • Trade - 交易记录(代码、日期、价格、收益等)
  • BacktestResult - 回测结果(绩效指标、交易列表)

2. 技术指标计算器 (TechnicalIndicators)

  • sma() - 简单移动平均
  • ema() - 指数移动平均
  • macd() - MACD指标(DIF, DEA, MACD
  • bollinger_bands() - 布林带(上轨、中轨、下轨)
  • donchian_channel() - 唐奇安通道(上轨、下轨)
  • atr() - 平均真实波幅

3. 策略实现

策略1MACDDivergenceStrategyMACD底背离+均线)

买入条件:

  1. 股价创近期新低(20日最低)
  2. MACD DIF值没有创新低(底背离)
  3. 价格站上20日均线(趋势向上确认)

卖出条件:

  1. 收盘价跌破20日均线
  2. 止损:5%
  3. 止盈:20%

策略2BollingerBandsStrategy(布林带下轨+趋势)

买入条件:

  1. 股价触及或跌破布林带下轨
  2. 均线系统多头排列(MA5 > MA10 > MA20
  3. RSI < 35(超卖确认)

卖出条件:

  1. 收盘价站上布林带中轨(回归均值)
  2. 跌破20日均线(趋势破坏)
  3. 止损:5%
  4. 止盈:15%

策略3DonchianChannelStrategy(唐奇安通道突破)

买入条件:

  1. 收盘价突破20日唐奇安通道上轨
  2. 前一日未突破(避免连续信号)

卖出条件:

  1. 收盘价跌破10日唐奇安通道下轨
  2. ATR止损:2倍ATR

4. 回测引擎 (BacktestEngine)

功能:

  • 支持单持仓策略回测
  • 实时计算并跟踪交易
  • 自动处理开仓/平仓信号
  • 计算完整绩效指标
  • 输出详细的交易记录

绩效指标:

  • 总收益率
  • 年化收益率
  • 最大回撤
  • 夏普比率
  • 胜率
  • 平均盈利/亏损
  • 交易次数统计

代码特点

优点

模块化设计 - 指标计算、策略逻辑、回测引擎分离清晰 可扩展性强 - 新策略只需实现 check_buy_signal/check_sell_signal 完整指标 - 覆盖主要技术分析指标(MACD、布林带、唐奇安、RSI、ATR) 绩效完善 - 回测结果包含所有关键绩效指标 注释清晰 - 每个策略的买卖条件都有详细说明 模拟数据 - 内置生成随机测试数据,便于快速验证

已集成功能

  • 手续费计算(默认万三)
  • 固定仓位管理(默认80%资金)
  • 止损止盈机制
  • 强制平仓(回测结束时)
  • 交易记录完整追踪

使用示例

from technical_selection_backtest_final import *
import pandas as pd

# 生成或加载数据
data = generate_sample_data(days=500)
# 或 data = pd.read_csv('your_stock_data.csv')

# 创建回测引擎
engine = BacktestEngine(initial_capital=100000.0)

# 运行策略
macd_strategy = MACDDivergenceStrategy()
result = engine.backtest(data, macd_strategy, "MACD Divergence")

# 打印结果
engine.print_result(result)

# 访问交易明细
for trade in result.trades:
    print(f"{trade.code}: {trade.profit_pct:.2%}")

文档参考

策略设计基于 FINAL_FIVE_GENERALS_MULTI_FACTOR_STOCK_SELECTION_REPORT.md 第一部分技术指标推荐:

指标 胜率 年化收益预期 A股评分
MACD底背离 + 均线 ~60-65% 20-30%
布林带下轨 + 趋势 ~58-63% 18-28%
唐奇安通道突破 50-55% 15-25%

测试验证

已通过基本语法检查:

  • Python语法正确
  • 导入正常
  • 三种策略均可实例化
  • 回测引擎正常执行
  • 绩效计算无错误

模拟数据测试:

  • 生成500天随机K线数据
  • 三种策略回测均成功运行
  • 结果输出格式正确

代码提交

Commit Hash: 9884345a

Commit Message:

feat: 张飞完成技术选股策略回测代码实现

实现了三种推荐技术选股策略的完整回测框架:

1. MACD底背离+均线策略
   - 买入:股价创新低但MACD未创新低(底背离),且站上20日均线
   - 卖出:跌破20日均线或止损5%/止盈20%

2. 布林带下轨+趋势策略
   - 买入:触及/跌破布林带下轨,均线多头排列(MA5>MA10>MA20),RSI<35
   - 卖出:站上中轨或跌破20日均线或止损5%/止盈15%

3. 唐奇安通道突破策略
   - 买入:收盘价突破20日通道上轨
   - 卖出:跌破10日通道下轨或ATR止损(2倍ATR)

包含完整回测引擎、绩效指标计算、交易记录跟踪。

作者:张飞
日期:2026-03-24

Git Status: 已提交并推送到 origin/main


后续建议

  1. 实盘数据接入 - 使用 akshare 或 Tushare 获取真实A股数据
  2. 多股票回测 - 扩展为同时跟踪多只股票的回测
  3. 参数优化 - 对各策略参数进行网格搜索优化
  4. 绩效可视化 - 添加资金曲线、回撤曲线等图表
  5. 风险管理增强 - 集成司马懿的风控模块

任务总结

已完成

  • 三种技术选股策略完整实现
  • 回测引擎框架搭建
  • 绩效指标计算模块
  • 交易记录追踪系统
  • 代码测试验证
  • Git提交推送

代码质量:模块清晰、注释完善、易于扩展

交付状态:已完成,可投入使用


张飞 - 技术选股策略实现完毕 ⚔️

"俺张飞粗中有细,代码写得利落,回测框架结实,三位将军的策略都实现了,丞相可以放心用!"