TATrend
TA.DEMA() - 双重指数移动平均线
Double Exponential Moving Average (DEMA) 双重指数移动平均线,通过两次EMA计算减少滞后。
语法
python
TA.DEMA(data)
TA.DEMA(data, timeperiod=30)参数
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| data | array | 价格数据(通常为收盘价) | - |
| timeperiod | int | 计算周期 | 30 |
返回值
返回双重指数移动平均线数组。
计算方法
plaintext
DEMA = 2 × EMA - EMA(EMA)
其中:
EMA1 = EMA(Close, N)
EMA2 = EMA(EMA1, N)
DEMA = 2 × EMA1 - EMA2这种计算方式使DEMA比EMA响应更快,滞后更少。
特点
- 低滞后:比EMA滞后更少
- 高灵敏:快速响应价格变化
- 平滑性:保持良好的平滑效果
- 趋势跟踪:适合快速趋势捕捉
基础示例
python
def main():
records = exchange.GetRecords()
if len(records) < 50:
return
closes = [r['Close'] for r in records]
price = closes[-1]
dema20 = TA.DEMA(closes, 20)
dema50 = TA.DEMA(closes, 50)
# 价格与DEMA位置关系
if price > dema20[-1] and dema20[-1] > dema50[-1]:
Log("强势多头")
elif price < dema20[-1] and dema20[-1] < dema50[-1]:
Log("强势空头")高级应用
DEMA突破策略
python
def dema_breakout():
records = exchange.GetRecords()
closes = [r['Close'] for r in records]
dema = TA.DEMA(closes, 20)
atr = TA.ATR(records, 14)
price = closes[-1]
threshold = atr[-1] * 0.5
# 向上突破DEMA
if price > dema[-1] + threshold and closes[-2] <= dema[-2]:
exchange.Buy(-1, 1)
Log("突破DEMA做多")
# 向下跌破DEMA
elif price < dema[-1] - threshold and closes[-2] >= dema[-2]:
exchange.Sell(-1, 1)
Log("跌破DEMA做空")DEMA趋势跟踪
python
def dema_trend_following():
records = exchange.GetRecords()
closes = [r['Close'] for r in records]
dema_fast = TA.DEMA(closes, 10)
dema_slow = TA.DEMA(closes, 30)
# 快慢线交叉
if dema_fast[-1] > dema_slow[-1] and dema_fast[-2] <= dema_slow[-2]:
# 金叉 + 确认
if dema_fast[-1] - dema_slow[-1] > closes[-1] * 0.001:
exchange.Buy(-1, 0.8)
Log("DEMA金叉做多")
elif dema_fast[-1] < dema_slow[-1] and dema_fast[-2] >= dema_slow[-2]:
# 死叉 + 确认
if dema_slow[-1] - dema_fast[-1] > closes[-1] * 0.001:
exchange.Sell(-1, 0.8)
Log("DEMA死叉做空")参数优化
| 市场 | 短周期 | 长周期 | 说明 |
|---|---|---|---|
| 快速 | 5-10 | 20-30 | 日内高频 |
| 中速 | 10-20 | 30-50 | 短期波段 |
| 慢速 | 20-30 | 50-100 | 中长期趋势 |
与其他MA对比
| 指标 | 滞后性 | 灵敏度 | 噪音 | 复杂度 |
|---|---|---|---|---|
| SMA | 最高 | 最低 | 最少 | 简单 |
| EMA | 高 | 中 | 少 | 简单 |
| DEMA | 低 | 高 | 中 | 中等 |
| TEMA | 最低 | 最高 | 多 | 复杂 |
注意事项
- 灵敏度高可能产生更多假信号
- 建议结合ATR或ADX过滤
- 震荡市场中表现一般
- 趋势明确时效果最佳