feat(strategy): 新增纯美股动量轮动策略
新增美股轮动策略模块: - strategies/us_rotation/config.yaml: 47只美股标的池,动量窗口250天,Top5选股 - strategies/us_rotation/strategy.py: USRotationStrategy实现 - run_us_rotation.py: 回测入口脚本 回测结果 (2016-2026, 约10年): - 总收益: 7675% (年化52.49%) - 基准NDX收益: 540% (年化19.72%) - 超额年化收益: 32.78% - 夏普比率: 1.33 (基准0.80) - 最大回撤: 42.15% - 卡玛比率: 1.25 - 胜率: 56.1% - 平均持仓: 2.7天 年度最佳: 2020年+221% (超额176%) 年度防守: 2022年-10.5% (基准-33.7%, 超额+23.3%) 持仓Top5: NVDA(35.8%), AMD(30.1%), SHOP(26%), AVGO(23.9%), FICO(23.3%)
This commit is contained in:
55
run_us_rotation.py
Normal file
55
run_us_rotation.py
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
美股动量轮动策略回测入口
|
||||
|
||||
运行方式:
|
||||
python run_us_rotation.py
|
||||
python run_us_rotation.py --save results/us_rotation
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
from strategies.us_rotation.strategy import USRotationStrategy
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='美股动量轮动策略回测')
|
||||
parser.add_argument(
|
||||
'--config',
|
||||
type=str,
|
||||
default='strategies/us_rotation/config.yaml',
|
||||
help='配置文件路径'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--save',
|
||||
type=str,
|
||||
default='results/us_rotation',
|
||||
help='报告保存路径前缀'
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
start_time = time.time()
|
||||
|
||||
print("=" * 60)
|
||||
print("美股动量轮动策略")
|
||||
print("=" * 60)
|
||||
print(f"配置文件: {args.config}")
|
||||
print(f"保存路径: {args.save}")
|
||||
|
||||
# 创建策略实例
|
||||
strategy = USRotationStrategy.from_yaml(args.config)
|
||||
|
||||
# 运行回测
|
||||
result = strategy.run_backtest(save_path=args.save)
|
||||
|
||||
elapsed = time.time() - start_time
|
||||
print(f"\n总耗时: {elapsed:.1f}秒")
|
||||
|
||||
return result
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user