TATrend
TA.MAMA() - MESA自适应移动平均线
MESA Adaptive Moving Average (MAMA) 和 FAMA (Following Adaptive Moving Average),动态调整周期的自适应移动平均线。
语法
python
TA.MAMA(data)
TA.MAMA(data, fastlimit=0.5, slowlimit=0.05)参数
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| data | array | 价格数据 | - |
| fastlimit | float | 快速限制(最大调整速度) | 0.5 |
| slowlimit | float | 慢速限制(最小调整速度) | 0.05 |
返回值
返回二维数组:[MAMA数组, FAMA数组]
- MAMA:母线(快线)
- FAMA:跟随线(慢线)
计算方法
基于希尔伯特变换和相位分析,动态计算主导周期,根据市场周期自动调整平滑参数。计算较复杂,核心是:
plaintext
1. 通过希尔伯特变换计算市场相位
2. 确定主导周期
3. 根据周期动态调整alpha值
4. MAMA = alpha × Price + (1-alpha) × MAMA[-1]
5. FAMA = 0.5 × alpha × MAMA + (1-0.5×alpha) × FAMA[-1]特点
- 周期自适应:自动识别市场周期
- 双线系统:MAMA快线 + FAMA慢线
- 趋势敏感:快速响应趋势变化
- 复杂算法:基于信号处理理论
基础示例
python
def main():
records = exchange.GetRecords()
if len(records) < 50:
return
closes = [r['Close'] for r in records]
mama_fama = TA.MAMA(closes, 0.5, 0.05)
mama = mama_fama[0]
fama = mama_fama[1]
# MAMA与FAMA交叉
if mama[-1] > fama[-1] and mama[-2] <= fama[-2]:
Log("MAMA上穿FAMA,看涨信号")
elif mama[-1] < fama[-1] and mama[-2] >= fama[-2]:
Log("MAMA下穿FAMA,看跌信号")高级应用
MAMA交叉策略
python
def mama_crossover_strategy():
records = exchange.GetRecords()
closes = [r['Close'] for r in records]
mama_fama = TA.MAMA(closes, 0.5, 0.05)
mama = mama_fama[0]
fama = mama_fama[1]
atr = TA.ATR(records, 14)
# 金叉做多
if mama[-1] > fama[-1] and mama[-2] <= fama[-2]:
stop_loss = closes[-1] - 2 * atr[-1]
exchange.Buy(-1, 1)
Log(f"MAMA金叉做多,止损: {stop_loss}")
# 死叉做空
elif mama[-1] < fama[-1] and mama[-2] >= fama[-2]:
stop_loss = closes[-1] + 2 * atr[-1]
exchange.Sell(-1, 1)
Log(f"MAMA死叉做空,止损: {stop_loss}")MAMA趋势过滤
python
def mama_trend_filter():
records = exchange.GetRecords()
closes = [r['Close'] for r in records]
mama_fama = TA.MAMA(closes)
mama = mama_fama[0]
fama = mama_fama[1]
# 趋势方向
if mama[-1] > fama[-1]:
trend = "多头"
# 仅做多
rsi = TA.RSI(closes, 14)
if rsi[-1] < 30: # 超卖回调
exchange.Buy(-1, 0.5)
Log("多头趋势中回调买入")
elif mama[-1] < fama[-1]:
trend = "空头"
# 仅做空
rsi = TA.RSI(closes, 14)
if rsi[-1] > 70: # 超买反弹
exchange.Sell(-1, 0.5)
Log("空头趋势中反弹卖出")参数调整
| 参数 | 推荐值 | 效果 |
|---|---|---|
| fastlimit | 0.5 | 标准快速响应 |
| fastlimit | 0.8 | 更快响应(更多噪音) |
| fastlimit | 0.3 | 较慢响应(更平滑) |
| slowlimit | 0.05 | 标准慢速平滑 |
与其他自适应MA对比
| 指标 | 自适应方式 | 复杂度 | 效果 |
|---|---|---|---|
| KAMA | 效率比率 | 中 | 好 |
| MAMA | 希尔伯特变换 | 高 | 优秀 |
| T3 | 多重平滑 | 高 | 好 |
注意事项
- 计算复杂,资源消耗较大
- 参数调整对结果影响大
- 建议先用默认参数测试
- 适合趋势市场,震荡市慎用
实战技巧
- 交叉信号:等待K线确认
- 趋势过滤:仅顺MAMA/FAMA方向
- 止损设置:FAMA下方1-2个ATR
- 时间周期:建议4小时以上