2013年1月24日 星期四

★遞回均線(RMA)策略含程式碼

有一個經典的教學策略「遞回均線策略(Recursive MA system)」,其中有使用到平滑因子(Alpha)。我所見過美國的交易策略中,不管是SINEWAVE指標或是專業法人的交易學習策略,裡面都可以發現有這類的平滑因子。相對於簡單平均線、指數平均線或加權平均線,這種平滑方式被美國交易員認為是較有效且能過濾隨機走勢的一種的平滑方式。平滑因子的程式碼如下,在這裡我不多說,給讀者自行研究的機會。

下圖為應用這個交易策略於台指期60分鐘K線,回測結果如下:


由績效上面去看,會覺得這個策略一點都不吸引人,隨便一條均線都比這個強。但如果我們從「參數變動穩定性」下去分析的話,可以發現這個策略的邏輯背後可是有其優點的。

單純就語法來說的話,使用一般的單一均線可以很容易寫出比上面這個策略還要漂亮的績效,但是卻很難寫出下面這種參數最佳化的穩定性,參數的變動相當於參考過去X根K線的數量,我從參數X=5變動到X=200,所有NET PROFIT都為正值。

由下面參數及Net Profit對照表中可看到參數在50以內的表現不穩定,其主要原因為回顧過去的k線數太短,大幅隔夜跳空的影響相對較嚴重;而當參數X>50,獲利則相對穩定。用這種平滑因子下去寫策略,在策略的穩定性上會有所幫助。



策略程式碼免費獻給耐心看到最後面的人:


inputs: X(70);

vars: alpha(0),
bo(0),
bo1(c),
xest(0),
xest1(c),
ema(0),
ema1(c),
tosc(0);

alpha = 2 / (X + 1); ------>策略平滑因子

bo = (1 - alpha) * bo1 + close;
ema = ema1 + alpha * (close - ema1);
xest = (1 - alpha) * xest1 + alpha * (close + bo - bo1);

bo1 = bo;
xest1 = xest;
ema1 = ema;

tosc = xest - ema;

if barnumber > 50 then begin
if tosc > 0 then buy this bar on close;
if tosc < 0 then sellshort this bar on close;
end;







更多開放程式碼量化投資學人網站  http://www.quantitative-advisors.com/

0 留言:

張貼留言

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

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