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))
TV এর EMA সূত্র 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)
এই টেস্টের ফলাফল টিভির সাথে মিলে না (৫০ এর নিচে একই রকম) ১০০ এর উপরেও একই রকম নয়। তাই টিভির জন্য ইমা টেস্ট দেখুন।
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
