请将这段通达信公式EMA(EMA(C,10),10)转换成python代码
时间: 2023-06-10 07:06:52 浏览: 343
假设C是一个numpy数组,可以使用以下代码将该通达信公式转换为Python代码:
```python
import numpy as np
def EMA(C, n):
"""
计算n日EMA
"""
alpha = 2 / (n + 1)
ema = np.zeros_like(C)
ema[0] = C[0]
for i in range(1, len(C)):
ema[i] = alpha * C[i] + (1 - alpha) * ema[i-1]
return ema
def double_EMA(C, n):
"""
计算双重EMA
"""
ema1 = EMA(C, n)
ema2 = EMA(ema1, n)
return ema2
```
然后,你可以使用`double_EMA(C, 10)`来计算该通达信公式的结果。
相关问题
写一个通达信Impulse MACD指标
通达信的公式语言不同于Python,下面是一个通达信Impulse MACD指标的代码:
```
/* Impulse MACD指标 */
MA1:MA(CLOSE,34);
MA2:EMA(EMA(CLOSE,34),34);
MACD:MA2-MA1,COLORSTICK;
MACDS:MA(MACD,9);
MACDH:MACD-MACDS;
MACDCOLOR:IF(MACDH>0,RED,GREEN);
/* 绘制MACD柱状图、MACD信号线和MACD柱状图颜色 */
DRAWICON(MACD),COLORSTICK;
DRAWICON(MACDS),COLORGREEN;
DRAWICON(MACDH),COLORSTICK,BARSTYLE(HISTOGRAM),COLOR(MACDCOLOR);
```
这个指标与Python版本的实现类似,使用MA和EMA函数来计算移动平均线和ZLEMA指标,然后计算MACD线、MACD信号线和MACD柱状图。在通达信中,使用DRAWICON函数来绘制柱状图和信号线,并且可以使用IF函数来计算柱状图颜色。需要注意的是,通达信的绘图函数与Python的绘图库不同,需要使用特定的函数来绘制图形。
阅读全文