TAMomentum
TA.MOM()
动量指标 (Momentum)
当前价格与 N 周期前价格的差值,直接衡量价格变化动能。
语法
python
TA.MOM(data, timeperiod=10)参数
| 参数名 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|
| data | any | 否 | - | 价格数据数组 |
| timeperiod | any | 否 | - | 时间周期,默认 10 |
返回值
返回动量值数组(价格差值)
计算方法
MOM = Close[t] - Close[t - n]
信号解读
- MOM > 0: 价格上升动能
- MOM < 0: 价格下降动能
- MOM 穿越 0: 趋势可能反转
- MOM 扩大: 动能增强
- MOM 缩小: 动能减弱
基础示例
python
def main():
records = exchange.GetRecords()
closes = [r['Close'] for r in records]
mom = TA.MOM(closes, 10)
Log(f"动量值: {mom[-1]:.2f}")
if mom[-1] > 0:
Log("价格上升动能")
else:
Log("价格下降动能")
# 穿越零线
if mom[-1] > 0 and mom[-2] <= 0:
Log("动量指标上穿零线,买入信号")
elif mom[-1] < 0 and mom[-2] >= 0:
Log("动量指标下穿零线,卖出信号")高级应用
1. 动量加速度
python
def main():
records = exchange.GetRecords()
closes = [r['Close'] for r in records]
mom = TA.MOM(closes, 10)
# 动能变化率(加速度)
mom_change = mom[-1] - mom[-2]
if mom[-1] > 0 and mom_change > 0:
Log("上升动能加速")
elif mom[-1] > 0 and mom_change < 0:
Log("上升动能减速,可能见顶")
elif mom[-1] < 0 and mom_change < 0:
Log("下降动能加速")
elif mom[-1] < 0 and mom_change > 0:
Log("下降动能减速,可能见底")2. 动量背离
python
def detect_mom_divergence(prices, mom_values, period=10):
"""检测动量背离"""
if len(prices) < period or len(mom_values) < period:
return None
# 顶背离
if (prices[-1] > max(prices[-period:-1]) and
mom_values[-1] < max(mom_values[-period:-1])):
return "顶背离"
# 底背离
if (prices[-1] < min(prices[-period:-1]) and
mom_values[-1] > min(mom_values[-period:-1])):
return "底背离"
return None
def main():
records = exchange.GetRecords()
closes = [r['Close'] for r in records]
mom = TA.MOM(closes, 10)
divergence = detect_mom_divergence(closes, mom)
if divergence:
Log(f"动量指标{divergence}")参数优化建议
| 周期 | 推荐参数 | 特点 |
|---|---|---|
| 短线 | MOM(5) | 敏感 |
| 标准 | MOM(10) | 平衡 |
| 长线 | MOM(20) | 稳定 |
与其他指标配合
MOM + MA
python
mom = TA.MOM(closes, 10)
ma = TA.MA(closes, 20)
# 动量确认趋势
if mom[-1] > 0 and closes[-1] > ma[-1]:
Log("上升趋势 + 正动量")注意事项
⚠️ 重要提醒:
- 绝对值: MOM 是绝对价格差,不同价格水平不可比
- 配合使用: 建议与 ROC 等百分比指标配合
相关指标
- ROC - 变动率指标 - 动量的百分比版本