pine_ema(src, length) =>
alpha = 2 / (length + 1)
sum = 0.0
sum := na(sum[1]) ? sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1])
plot(pine_ema(close,15))
ٹی وی کے ای ایم اے فارمولا sum: = na ((sum[1]) ? sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1])
میں نے یہ مضمون پڑھا ہے اور اس میں کچھ غلطیاں پائی جا رہی ہیں، کیا آپ اس کا ترجمہ کر سکتے ہیں؟ شکریہ
نوٹ:
- df['close'].ewm(span=110,adjust = False).mean()
- talib.EMA(np.array(close), timeperiod=110)
ٹیسٹ کے نتائج ٹی وی کے ساتھ متضاد ہیں (کم سے کم 50 کے امکانات ایک جیسے ہیں) 100 سے زیادہ مختلف ہیں۔ tv کو حل کرنے کے لئے ای ایم اے ٹیسٹ پر ایک نظر ڈالیں۔
function ema(src, length) {
var arr = [];
var sum = 0;
var alpha = 2 / (length + 1)
for(var i in src) {
if( i<length-1 ) {
arr[i] = null;
sum += src[i];
}
if( i==length-1 ) {
arr[i] = (sum+src[i])/length;
}
else {
arr[i] = alpha * src[i] + (1 - alpha) * arr[i-1]
}
}
return arr;
}
好像结果跟ewma也不相同
def EMA(ps,period=5,exp=0.1):
ewma=pd.Series(0.0,index=ps.index)
ewma[period-1]=ps[:period].mean()
for i in range(period,len(ps)):
ewma[i] =exp*ps[i]+(1-exp)*ewma[i-1]
return ewma
- 1
