mirror of
https://github.com/silencesdg/mt5_python_ea_suite.git
synced 2026-07-28 11:17:43 +00:00
3.3 KiB
3.3 KiB
架构重构说明
重构概述
本次重构将原有的单一策略架构分离为策略层和风险管理层,实现了更清晰的功能分离和动态权重配置。
新架构结构
1. 策略层 (strategies/)
包含纯粹的交易策略,每个策略只负责生成买入/卖出信号:
ma_cross.py- 均线交叉策略rsi.py- RSI超买超卖策略bollinger.py- 布林带策略macd.py- MACD策略kdj.py- KDJ策略turtle.py- 海龟交易法则daily_breakout.py- 日内突破策略mean_reversion.py- 均值回归策略momentum_breakout.py- 动量突破策略
2. 风险管理层 (risk_management/)
market_state.py- 市场状态分析器(基于原resilient_trend)position_manager.py- 仓位管理器(基于原profit_protect)__init__.py- 风险管理控制器
3. 动态权重系统
dynamic_weights.py- 动态权重管理器
核心改进
1. 市场状态判断
- 将
resilient_trend重构为市场状态分析器 - 判断市场状态:
uptrend、downtrend、ranging、none - 提供置信度评估(0.0-1.0)
2. 动态权重配置
根据市场状态自动调整策略权重:
- 上升趋势:侧重趋势跟踪策略(均线交叉、动量突破)
- 下降趋势:侧重趋势跟踪和反转策略
- 震荡市场:侧重均值回归和超买超卖策略
- 无明确趋势:使用平衡的权重配置
3. 综合风险管理
- 止损机制:固定止损10%
- 止盈机制:固定止盈20% + 追踪止损
- 仓位控制:最大单笔仓位10%
- 日内限制:最大日亏损5%
使用方法
1. 运行回测
python main.py
回测会使用当前市场状态对应的权重配置进行测试。
2. 运行实盘交易
# 在main.py中取消注释
run_realtime()
实盘交易会实时分析市场状态并动态调整权重。
3. 运行优化
# 在main.py中取消注释
run_optimizer()
优化器会寻找最佳的基础权重配置。
配置说明
config.py 新配置项
# 风险管理参数
RISK_CONFIG = {
"stop_loss_pct": -0.10, # 固定止损:亏损10%
"profit_retracement_pct": 0.30, # 利润回撤30%止盈
"min_profit_for_trailing": 0.05, # 追踪止损激活阈值:利润5%
"take_profit_pct": 0.20, # 固定止盈:盈利20%
"max_position_size": 0.1, # 最大仓位10%
"max_daily_loss": -0.05, # 最大日亏损5%
}
# 市场状态分析参数
MARKET_STATE_CONFIG = {
"trend_period": 50,
"retracement_tolerance": 0.30,
}
# 默认权重(低置信度时使用)
DEFAULT_WEIGHTS = {
"ma_cross": 1.5,
"rsi": 1.5,
"bollinger": 1.5,
# ... 其他策略
}
优势
- 更清晰的功能分离:策略专注于信号生成,风险管理专注于风险控制
- 动态适应性:根据市场状态自动调整策略权重
- 更强的风险控制:多层次的风险管理机制
- 更好的可扩展性:易于添加新策略和风险管理规则
- 更稳定的性能:通过权重分散降低单一策略风险
兼容性
- 保持与现有回测和优化系统的兼容性
- 策略接口保持不变,现有策略无需修改
- 配置文件结构更新,但提供了向后兼容