基于 deep_itm_bull_spread_strategy.py 的ETF获取逻辑,创建了一个专门的ETF价格与移动平均线距离分析工具。该工具用于分析ETF月收盘价与移动平均线的距离关系。
etf_monthly_ma_analysis.py - 完整的分析工具(包含分析功能和直接运行代码)README_ETF_MA_Analysis.md - 本说明文档运行后会生成以下文件:
ETF月线距离分析_开始日期_结束日期.png - 分析图表ETF_月线分析_ETF名称_开始日期_结束日期.csv - 每个ETF的详细数据# 在聚宽环境中直接运行
python etf_monthly_ma_analysis.py
文件中已经预设了分析参数,直接运行即可开始分析。如需修改时间范围,编辑文件底部的参数:
# 修改这里的参数来自定义分析
analyzer = ETFMonthlyMAAnalysis(
start_date='2024-01-01', # 修改开始日期
end_date='2024-10-31' # 修改结束日期
)
如果需要在其他脚本中使用,可以导入并自定义:
from etf_monthly_ma_analysis import ETFMonthlyMAAnalysis
# 创建分析器
analyzer = ETFMonthlyMAAnalysis(
start_date='2024-06-01',
end_date='2024-12-31'
)
# 运行完整分析
analyzer.run_complete_analysis(
save_chart=True, # 保存图表
export_csv=True # 导出CSV
)
==========================================
详细分析结果
==========================================
50ETF 分析结果:
------------------------------
MA5:
平均距离: 0.0234 元
距离标准差: 0.0456 元
平均百分比距离: 1.23%
高于均线次数: 6
低于均线次数: 4
高于均线比例: 60.0%
MA10:
平均距离: 0.0156 元
...
| 年月 | close | MA5 | MA10 | MA20 | Distance_MA5 | Distance_MA5_Pct | ... |
|---|---|---|---|---|---|---|---|
| 2024-01 | 2.845 | 2.834 | 2.821 | 2.808 | 0.011 | 0.39% | ... |
| 2024-02 | 2.892 | 2.856 | 2.843 | 2.835 | 0.036 | 1.26% | ... |
analyzer = ETFMonthlyMAAnalysis(
start_date='2024-01-01', # 开始日期
end_date='2024-12-31' # 结束日期
)
可在类初始化时修改 self.ma_periods = [5, 10, 20]
可在类初始化时修改 self.etf_symbols 字典
get_price() 函数获取ETF日线数据resample('M') 方法距离 = 月收盘价 - 移动平均线百分比距离 = (月收盘价 - 移动平均线) / 移动平均线 × 100%jqdata 包和 get_price() 函数可以基于此工具进一步开发: