vector - EMA computation using filter function in R -
मैं vectorized संकेतन में इस कोड को पुन: उत्पन्न करना चाहूंगा
getEMA2 & lt; -function (x , जीत) {k & lt; -2 / (win + 1) v & lt; -vector () के लिए (i में 1: लंबाई (x)) {if (i == 1) {v [i] & lt; -x [i ]} और {v [i] & lt; -k * x [i] + (1-k) * v [i-1]} वापसी (v)} टेस्टऑप्टपुट & lt; -getEMA2 (rnorm (100,0,1) , 5) मैंने फिल्टर फ़ंक्शन का उपयोग करने की कोशिश की है, लेकिन यह प्रकट नहीं होता कि पुनरावर्ती / कनवर्लिशन विधियों को यह प्राप्त कर सकता है
प्रतिक्रियाओं के लिए धन्यवाद,
चूंकि फ़िल्टर computes y [n ] = X [n] + अल्फा * y [n-1] आपको परिणाम rescale की आवश्यकता है।
f & lt; - function (x , जीत) {अल्फा और एलटी; - 2 / (जीत + 1) फिल्टर (एक्स, 1-अल्फा, विधि = "रिकर्सिव", पक्ष = 1, init = x [1] / अल्फा) * अल्फा} x & lt; - 1 : 10 के & lt; - 3 getEMA2 (x, k) f (x, k) # समान अधिकांश फिल्टर पहले से ही TTR पैकेज में परिभाषित किए गए हैं ।
Comments
Post a Comment