بنقرة واحدة
stock-strategy-ma-cross
均线交叉策略。计算均线交叉点,生成买卖信号。用户说"均线策略"、"MA交叉"、"金叉死叉"时使用此 skill。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
均线交叉策略。计算均线交叉点,生成买卖信号。用户说"均线策略"、"MA交叉"、"金叉死叉"时使用此 skill。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | stock-strategy-ma-cross |
| description | 均线交叉策略。计算均线交叉点,生成买卖信号。用户说"均线策略"、"MA交叉"、"金叉死叉"时使用此 skill。 |
当用户需要:
位置: 工作空间根目录 signals-ma-cross.md
格式示例:
# 均线交叉信号
## 策略参数
- 策略: ma_cross_enhanced
- 快线周期: 5
- 慢线周期: 10
- MA20周期: 20
- RSI周期: 14
- RSI超买阈值: 70
- RSI超卖阈值: 30
- 持续周期: 2
- K线周期: 5m
- 生成时间: 2026-03-05T15:00:00
## 信号列表
| 时间 | 代码 | 方向 | 价格 | MA20 | RSI | 持续周期 |
|------|------|------|------|------|-----|----------|
| 2026-03-05 14:35 | 000001.SZ | 买入 | 10.52 | 10.40 | 55.2 | 2 |
| 2026-03-06 10:00 | 000001.SZ | 卖出 | 10.85 | 10.92 | 68.5 | 2 |
| 参数 | 默认值 | 说明 |
|---|---|---|
| K线周期 | 5m | 5分钟K线 |
| 快线周期 | 5 | 短期均线周期 |
| 慢线周期 | 10 | 长期均线周期 |
| MA20 周期 | 20 | 趋势判断均线(可选) |
| RSI 周期 | 14 | RSI 计算周期 |
| RSI 超买阈值 | 70 | RSI 超买线(可选) |
| RSI 超卖阈值 | 30 | RSI 超卖线(可选) |
| 持续周期 | 2 | 信号确认周期(交叉后持续N根K线) |
⚠️ 持续周期说明:
支持的K线周期: 1d, 1m, 5m, 15m, 30m, 60m
基础金叉条件:
MA_fast[t-1] < MA_slow[t-1] 且 MA_fast[t] > MA_slow[t]
基础死叉条件:
MA_fast[t-1] > MA_slow[t-1] 且 MA_fast[t] < MA_slow[t]
为提高信号质量,减少假信号,策略采用多条件过滤:
要求交叉后的状态持续 >= N 根 K 线后才输出信号:
⚠️ 重要:正确的持续性确认逻辑
持续性确认是检查交叉后的K线,而不是交叉前的K线:
金叉发生时刻: T
确认检查: T+1, T+2, ..., T+N
输出信号时刻: T+N
关键点:
信号延迟输出机制:
| 时间点 | 事件 | 检查内容 | 输出 |
|---|---|---|---|
| T | 金叉发生 | 快线刚好上穿慢线 | 无输出(等待确认) |
| T+1 | 状态持续 | 快线 > 慢线 | 无输出 |
| T+2 | 状态持续 | 快线 > 慢线 | 输出买入信号(满足2周期) |
注意:输出的是"确认时刻"的信号,价格使用确认时刻的收盘价。
使用 RSI(14) 判断超买超卖状态:
1. 金叉发生:MA_fast[t-1] < MA_slow[t-1] 且 MA_fast[t] > MA_slow[t]
2. MA20 趋势过滤(可选):
- 价格 > MA20(当前在均线之上,趋势向上)
3. 持续性确认:
- 快线 > 慢线 的状态在交叉后已持续 >= N 根 K 线
- 即检查 T+1, T+2, ..., T+N 时刻的状态
4. RSI 辅助过滤(可选):
- RSI(14) < 70(非超买状态)
- RSI > 30 更佳(有反弹空间)
1. 死叉发生:MA_fast[t-1] > MA_slow[t-1] 且 MA_fast[t] < MA_slow[t]
2. MA20 趋势过滤(可选):
- 价格 < MA20(当前在均线之下,趋势向下)
3. 持续性确认:
- 快线 < 慢线 的状态在交叉后已持续 >= N 根 K 线
- 即检查 T+1, T+2, ..., T+N 时刻的状态
4. RSI 辅助过滤(可选):
- RSI(14) > 30(非超卖状态)
- RSI < 70 更佳(有下跌空间)
MA(n) = (P1 + P2 + ... + Pn) / n
其中 P 为收盘价,n 为周期。
RSI(n) = 100 - 100 / (1 + RS)
其中:
RS = 平均涨幅 / 平均跌幅
n = 14(默认周期)
计算步骤:
计算增强版均线交叉所需的最小 K 线数量:
数据量 = max(slow_period, 20) + sustain_period + RSI周期 + 缓冲
其中:
- slow_period: 慢线周期
- 20: MA20 周期
- sustain_period: 持续性确认周期(默认2)
- RSI周期: 14
- 缓冲: 建议 +10 根 K 线
示例(slow=10, sustain_period=2):
所需 K 线 = max(10, 20) + 2 + 14 + 10 = 20 + 2 + 14 + 10 = 46 根
推荐获取 = 46 × 1.5 ≈ 69 根
| slow_period | 最少 K 线数 | 推荐获取 |
|---|---|---|
| 5 | 46 | 69 |
| 10 | 46 | 69 |
| 20 | 56 | 84 |
| 指标 | 数据需求 | 说明 |
|---|---|---|
| MA(slow_period) | slow_period 根 K 线 | 计算慢线 |
| MA20 | 20 根 K 线 | 趋势过滤 |
| RSI(14) | 14 + 1 根 K 线 | 计算价格变化 |
| 持续性确认 | sustain_period 根 K 线 | 信号确认延迟(默认2) |
| 交叉检测 | 1 根 K 线 | 比较 t 和 t-1 |
| 总计 | max(slow_period, 20) + sustain_period + 15 | 含价格变化缓冲 |
根据 K 线周期和数据量计算 start_time:
| K线周期 | 每24小时K线数 | 计算公式 |
|---|---|---|
| 1d | 1 | N 天前 |
| 60m | 4 | N/4 天前(向上取整) |
| 30m | 8 | N/8 天前(向上取整) |
| 15m | 16 | N/16 天前(向上取整) |
| 5m | 48 | N/48 天前(向上取整) |
| 1m | 240 | N/240 天前(向上取整) |
示例(slow=10, sustain_period=2,推荐获取69根K线):
1d 周期:69 天前 → start_time = 当前日期 - 69天5m 周期:69/48 ≈ 2 天前 → start_time = 当前日期 - 2天日期格式:YYYYMMDD(如 20260305)
计算 start_time 的步骤:
bars_needed = max(slow_period, 20) + sustain_period + 14 + 10bars_recommended = bars_needed * 1.5days = ceil(bars_recommended / bars_per_day)当前日期 - days 天命令示例:
分析均线交叉 000001.SZMA策略 600519.SH --fast 5 --slow 10金叉死叉 300750.SZ --period 1d操作流程:
代码补全规则:
| 输入 | 补全为 |
|---|---|
000001 | 000001.SZ |
600000 | 600000.SH |
300750 | 300750.SZ |
交易所判断规则:
6 开头 → .SH(上海)0、3 开头 → .SZ(深圳)68 开头 → .SH(科创板)命令示例:查看均线信号、显示信号列表、列出买卖信号
操作流程:
命令示例:清除均线信号、清空信号、删除所有信号
操作流程:
确认格式:
⚠️ 危险操作检测!
操作类型:清除所有均线交叉信号
影响范围:将删除 signals-ma-cross.md 中的所有信号数据
风险评估:信号数据将被永久删除,无法恢复
请确认是否继续?
命令示例:导出信号、导出信号到CSV、信号导出
操作流程:
CSV 格式:
时间,代码,方向,价格,MA20,RSI,持续周期
2026-03-05 14:35,000001.SZ,买入,10.52,10.40,55.2,2
2026-03-06 10:00,000001.SZ,卖出,10.85,10.92,68.5,2
精确数据获取原则:仅获取计算所需的最小数据量,避免下载过多历史数据。
计算 start_time 的步骤:
bars_needed = slow_period * 3days = ceil(bars_needed / bars_per_day)当前日期 - days 天命令示例(假设 slow=10,当前日期 20260305):
# 5分钟K线,需要 69 根,约 2 天
xtdata download_history_data2 --stock-list "['000001.SZ']" --period "5m" --start-time "20260303"
# 日线,需要 69 根,69 天
xtdata download_history_data2 --stock-list "['000001.SZ']" --period "1d" --start-time "20251226"
动态计算模板:
bars_needed = max(slow_period, 20) + sustain_period + 14 + 10 # 最小需求
bars_recommended = bars_needed * 1.5 # 推荐数量
period=1d: start_time = today - ceil(bars_recommended / 1) (天)
period=60m: start_time = today - ceil(bars_recommended / 4) (天)
period=30m: start_time = today - ceil(bars_recommended / 8) (天)
period=15m: start_time = today - ceil(bars_recommended / 16) (天)
period=5m: start_time = today - ceil(bars_recommended / 48) (天)
period=1m: start_time = today - ceil(bars_recommended / 240) (天)
# 使用相同的 start_time 获取数据
xtdata get_market_data_ex --stock-list "['000001.SZ']" --period "5m" --start-time "20260304"
xtdata get_instrument_detail --stock-code "000001.SZ"
分析前应确保数据已下载:
推荐流程:
1. 计算数据量: bars_needed = max(slow_period, 20) + sustain_period + 14 + 10
2. 推荐数量: bars_recommended = bars_needed * 1.5
3. 计算 start_time: 根据 period 和 bars_recommended 推算
4. 优先获取数据: xtdata get_market_data_ex(直接查缓存)
5. 若数据不足: xtdata download_history_data2(下载缺失数据)
6. 计算 MA(快)、MA(慢)、MA20、RSI(14)
7. 检测交叉点并应用过滤条件
8. 生成信号并存储
示例(slow=10, sustain_period=2, period=5m, today=20260305):
bars_needed = max(10, 20) + 2 + 14 + 10 = 46 根K线
bars_recommended = 46 * 1.5 = 69 根
days = ceil(69 / 48) = 2 天
start_time = 20260305 - 2 = 20260303
命令: xtdata get_market_data_ex --stock-list "['000001.SZ']" --period "5m" --start-time "20260303"
分析完成后,输出以下信息:
📊 均线交叉分析结果
股票: 000001.SZ 平安银行
策略: MA交叉增强版 (快线5 / 慢线10 / MA20)
K线周期: 5分钟
📊 过滤条件:
- MA20 趋势过滤: ✅ 启用
- 持续性确认: ✅ 2周期
- RSI 过滤: ✅ RSI(14), 超买70/超卖30
📈 信号统计:
- 总信号数: 3
- 买入信号: 2
- 卖出信号: 1
📋 信号详情:
| 时间 | 方向 | 价格 | MA20 | RSI | 持续周期 |
|------|------|------|------|-----|----------|
| 2026-03-05 14:35 | 买入 | 10.52 | 10.40 | 55.2 | 2 |
| 2026-03-06 10:00 | 卖出 | 10.85 | 10.92 | 68.5 | 2 |
✅ 信号已保存至 signals-ma-cross.md
| K线周期 | 推荐持续周期 | 推荐MA20过滤 | 推荐RSI过滤 |
|---|---|---|---|
| 1分钟 | 3-5 | ❌ | 可选 |
| 5分钟 | 2-3 | 可选 | 可选 |
| 15分钟 | 2-3 | 可选 | 可选 |
| 30分钟 | 2-3 | ✅ | ✅ |
| 60分钟 | 2-3 | ✅ | ✅ |
| 日线 | 2-4 | ✅ | ✅ |
说明:
| 错误情况 | 处理方式 |
|---|---|
| 股票代码无效 | 提示用户检查代码格式 |
| 数据未下载 | 提示先执行下载命令 |
| 快线周期 >= 慢线周期 | 提示参数错误,要求重新输入 |
| K线数据不足 | 提示数据量不足以计算指标(需要至少46根K线) |
| RSI计算失败 | 检查数据连续性,确保无缺失数据 |
| MA20计算失败 | 检查数据量是否达到20根K线 |
| xtdata 服务不可用 | 提示检查 xtdata 服务状态 |