教材上有這樣一句話:“簡(jiǎn)單移動(dòng)平均線只不過是計(jì)算與等權(quán)重的指示函數(shù)的卷積∏裕”又表明诗芜,“卷積定義為一個(gè)函數(shù)與經(jīng)過翻轉(zhuǎn)和平移的另一個(gè)函數(shù)的乘積的積分瞳抓。”
那么伏恐,卷積到底是什么呢孩哑?具體可以參考這篇博客:https://www.cnblogs.com/delphi-xe5/p/11373199.html。從物理狀態(tài)而言翠桦,卷積是為了更好地從時(shí)間和空間上全局地去解釋結(jié)果横蜒。
np.convolve(a, v, mode=‘full’),這是numpy函數(shù)中的卷積函數(shù)庫销凑。a和v表示的是兩個(gè)輸入的一維數(shù)組丛晌,即信號(hào)。其mode有三種形式闻鉴,full茵乱、same、valid孟岛,顧名思義瓶竭,full即表示卷積的全部影響都需要寫出來(包含邊際效應(yīng)),valid則只把所有信號(hào)都作用到的影響范圍寫出來渠羞,same的意思應(yīng)該是和原數(shù)組的元素?cái)?shù)一致斤贰,即兩個(gè)輸入數(shù)組為M和N的話,則same把最大的那個(gè)數(shù)值作為自身的長(zhǎng)度次询。
讀下圖所示的代碼和數(shù)字的計(jì)算公式荧恍,請(qǐng)把數(shù)組a當(dāng)作是輸入信號(hào),把數(shù)組b當(dāng)作是信號(hào)隨時(shí)間的權(quán)重屯吊,從上文博客中學(xué)到的翻轉(zhuǎn)和平移送巡,在這邊就能很好地加以運(yùn)用了。
利用信號(hào)處理技術(shù)計(jì)算簡(jiǎn)單移動(dòng)平均線:與1/N的權(quán)重進(jìn)行卷積運(yùn)算盒卸。
指數(shù)移動(dòng)平均值的求解:
布林帶的使用:在簡(jiǎn)單移動(dòng)平均的基礎(chǔ)上加入上軌和下軌:
注:教材上將std自行用公式求解了骗爆,本質(zhì)公式是一致的。另外教材上利用np.fill函數(shù)取了sma[i-N-1]的值作為average蔽介,這點(diǎn)讓我很疑惑摘投;另外,選擇dev數(shù)組的時(shí)候虹蓄,是從第5個(gè)元素向后取的犀呼,也是一個(gè)困惑點(diǎn)。因?yàn)槲覀冏鲆苿?dòng)平均薇组,用的是0-4元素為一組的嘛外臂。私以為上面截圖寫的才是對(duì)的,教材看看就好律胀。