2013年12月24日 星期二

★峰度與偏度之統計學策略原型(含策略程式碼)

   在統計學裡面有兩個描述機率模型的數字,一個是峰度(kurtosis);另一個是偏度(skew)。最近看到海外的策略,發現有人把這兩個數值運用在程式交易,更巧的是Multicharts居然有內建這些函數,比較少人會去用而已。背後的理論可能有點深奧,如果沒興趣的人,大概知道怎麼使用即可,開始切入主題。

Kurtosis (峰度):主要是用來表示過去一段時間行情分佈的極值偏離平均值的影響程度,如果峰度為正,而且正很大,表示過去一段時間出現了與平均值相差甚大的振幅;如果峰度為負,表示過去一段時間出現的行情如同常態分配一樣很平均。在交易理論中,有些人會把峰度突然由正轉負視為一個臨界點,進而佈局多空。

Skew(偏度):偏度比較好解釋,如果是橫向盤整時期,上漲及下跌的機率及幅度都差不多,因此行情的分佈如同常態分配,但是如果出現連續上漲,行情上漲的機率較下跌的機率來得多,這時候就會出現偏度大於0的情況(英文稱之為skew to the right);反之當下跌的時候,偏度則會出現小於0(英文稱之為skew to the left),借重這個指標,你可以大概知道目前的位置,是很跨漲的連續上漲還是連續下跌,把盤整、漲及跌進行非線性的量化。

我隨便利用這兩個指標寫成個策略如下,邏輯很單純,就是只要當峰度出現時,如果偏度又是偏正值,我判斷行情來了,所以追多進場;反之追空。


Inputs: KurtLen(5), SkewLen(25);
Vars:  MP(0), StopPrice(0), Kurt(0), Skewv(0);

Kurt = Kurtosis(Close,KurtLen);
Skewv = Skew(Close,SkewLen);

if time>0900 and time<1300 then begin
If Kurt>0 then Begin
       If Skewv > 0 then
              Buy next bar at highest(h,3) stop;
       If Skewv < 0 then
              Sellshort next bar at lowest(l,3) stop;
end;
end;

setstoploss(4000);


setexitonclose;


台指期簡單的回測如下,不含手續費。


以下附上一些統計學機率分佈模型的示意圖,可以簡單看出skew及kurtosis的差異點。(資料取自於wikipedia)






6 留言:

台股交易員 提到...

很實用
謝謝分享

匿名 提到...

交易次數三千多,加上手續費應該就.....

WEN 提到...

你可以過濾。。。 這是策略原型。

匿名 提到...

感謝分享!
不過峰度為負那段舉例怪怪的,常態分配的峰度值不是3嗎?

匿名 提到...

能否請教通常使用何種方式過濾呢?

Samuel Yang 提到...

偏度的解釋怪怪 正偏是低於平均值的這些數值其出現機率較高,反之是因爲右邊大於均值的值的出現機率低只是 range較大

張貼留言

如果有私人問題想請教,請透過網站右方『與站長聯絡』之表單,謝謝!

----------------------------------------------------------------------------------------------------
網站聲明(Disclaimer)
本教學網站內所提供之程式碼(包括函數、指標、訊號)屬開放程式碼,用意在於讓使用者學習程式語法之撰寫,使用者可以任意修改語法內容並調整參數。本網站所有之內容(包括文章、影片、歷史紀錄、程式碼、教材)限用於個人學習使用,請勿轉寄、濫用,嚴禁私自串接帳戶交易。
-------------------------------------------------------------------------------------------------