高頻交易演算法研發心得--均線演算法
今天來探討一下常見的均線演算法的應用。在各種交易軟體中,我們常常可以見到MA指標,EMA指標以及SMA指標。
首先說明SMA的二義性,如果您在百度直接搜尋SMA指標,指的是帶加權的指數平均值;然而,再去查詢“簡單移動平均線”百度給出的縮寫又是SMA。因此,為了明確,科學,本文采用了“維基百科”的說法,其解釋如下:
MA:又稱“移動平均線”簡稱均線,移動平均可撫平短期波動,反映出長期趨勢或週期。數學上,移動平均可視為一種卷積。以筆者的理解,可以認為,MA只是一種類似曲線的統稱。
SMA:簡單移動平均(Simple Moving Average,SMA)是連續N天的算術平均值。該指標也就大家在常見的軟體中見到的MA
EMA:指數移動平均(Exponential Moving Average,EMA或EWMA)是以指數式遞減加權的移動平均。各數值的加權影響力隨時間而指數式遞減,越近期的資料加權影響力越重,但較舊的資料也給予一定的加權值。以筆者的理解,該指標定義與常見軟體中所指的EMA相同。其影象特點如下:
WMA:加權移動平均(Weighted Moving Average,WMA)指計算平均值時將個別資料乘以不同數值,在技術分析中,n日WMA的最近期一個數值乘以n、次近的乘以n-1,如此類推,一直到0。該指標的影象如下所示:
通過對比EMA和WMA的影象,不難發現,EMA隨著時間的發展,其衰減比較明顯,可以較為靈敏的反映趨勢的變化。因此,在常見的軟體中,會比較多的使用SMA(MA)和EMA。
咱們書歸正文,說了上面一堆難以理解的概念,下面聊聊這些指標的應用以及問題所在。
我們經常會在電視裡和網路上看到民間所謂之“均線金叉”以及“均線死叉”。其圖如下(短週期線:EMA:21,長週期線MA:50):
數學解析如下:
當短週期均線下穿長週期線的時候,說明整體趨勢正在下降,可以賣出。
當短週期均線上穿長週期線的時候,說明整體趨勢正在上長,可以買入。
從上圖中,觀者不難發現,短週期均線採用的是EMA線,原因是EMA演算法本身會導致越接近當前時間的EMA值,衰減越厲害,這樣可以保證其值越接近真實值,但又不能達到其真實值(看官:微積分中所說的極限)。
然而長週期均線採用的卻是
可以說利用長短均線相互追逐的買賣判定方法,在大多數情況下是適用的,而且也是金融交易中比較常用的演算法。但在某些情況下,此法可以會導致您多次小額度賠錢的!情況如下圖所示:
通過上圖,看官不難發現,當前K線在短時間內出現了類似正弦曲線的波動時,短週期均線和長週期均線會頻繁的相互交差,在這種情況下,基本上每次都會陪點錢,因為MA演算法都是事後諸葛亮,所以出現了這種情況,要麼立刻停止交易,要麼找到一些短週期指標加以判讀,以減小交易次數。那麼需要採用什麼樣的指標,如何控制呢?且聽下回分解。。。
備註:無論是哪種MA線,在週期比較的長的情況下,都會變得比較圓滑,這樣就為軟體自動判定該曲線是否出現極值點,提供了可操作性。其演算法很簡單,如下所示:(C#)
double[] data = new double[100];
//原理是極值點兩邊的斜率相乘小於0
if ((data[i]-data[i-1])*(data[i+1]-data[i])<0)
{
//出現極值點
}
作者:科學家
Email:[email protected]
微信:43175692