回測跨年季節趨勢策略

  |  


這裏給出了我之前提到的跨年李節趨勢文易策略的.MATLAB代碼。(源代碼可從epchan. com/book/example7_7. m下載。)由於數據是基於2007年12月23日獲取的標準普爾500指數,所以存在存活偏差。

clear;

load('SPX 20071123','tday','stocks','c1');

%找到月底幾天的指數.

monthEnds= find (isLastTradingDayOf Month( tday));

monthlyRet=..

(cl(monthEnds,:)-lagl (cl(monthEnds,:)))./..

lagl(cl(monthEnds,:));

mycl=fillMissingData(cl);

%按月收益率升序排列

[monthlyRetSorted sortIndex]=sort(monthly,Ret,2);

%排序後的前一年本月收益率

prevYearMonthlyRetSorted=backshift(12 , monthlyRetSorted) ;%去年排序後的指數

prevYearSortIndex=backshift(12,sortIndex);

positions= zeros(size( month IyRet));

for m=13:size( monthlyRet,1)

hasReturns=...

isfinite(prevYearMonthlyRetSorted(m,:))&..

isf inite(cl(monthEnds( m-1),:));

mySortIndex=prevYearSortlndex(m,hasReturns);

%買入十分位數最高的幾隻股票,賣出十分位數最低的幾隻股票

topN=floor( length(mySortlndex) /10);

posiions(m-1,inySortlndex(1:topN))=-1;

positions(m-1,..

mySortlndex(end-topN+1:end))=1;’

end

ret=smartsum (lag1(positions) .*monthlyRet,2);

avgannret=12 * smartmean(ret);

sharpe= sqrt (12)*smartmean(ret)/smartstd(ret);

fprintf (1,..

'Avg ann return= %7.4f Sharpe ratio= %7.4f\n',..

avgannret,sharpe);

%輸出應該是年收益率均位=-0.9167 Sharpe ratio=-0.1055

這一程序用到T幾個工具函數,第一個是LastTradingDayOf Month,它返回1和0的邏輯數組,用以判斷某個文易日是否是一個月的最後一個交易日。


function isLastTradingDay0f Month=..

isLastTradingDayOfMonth( tday)

% isLastTradingDayOfMonth= isLastTradingDayOfMonth( tday)返回一個邏擇序列。如果tday(t)確爲當月的最後交易日,返回True.

tdayStr=datestr(datenum(num2str(tday),'yyyymmdd'));

todayMonth= month(tdayStr);

tmrMonth=fwdshift( ],todayMonth);%tomorrow's month

isLastTradingDayOfMonth= false( size(tday));

isLastTradingDayOfMonth (todayMonth?二tmrMonth &..

isfinite(todayMonth)衣isfinite(tmrMonth))=true;

另一個工具函數是backshift函數,它與lagl函數類似,但可以平移任意天數。

function y=backshift(day,x)

%y= backshift (day, x)

assert(day> = 0);

y= [NaN(day,size(x,2),size(x,3));x(1:end-day,:,:)];

如果你嘗試錄近5年而不是全部數據,會發現平均收益率更低。

推薦閱讀

相關文章

KDJ指標金叉和死叉及選股法(圖解)

KDJ指標的金叉形態當股價經過一段很長時間的低位盤整行情,並且K、D、J三線都處於50線以下時,一旦J線和K線幾乎同時向上突破D線時,表明股市即將轉強,股價跌勢已經結束,將止跌朝上,可以開始買進股票,進行中長線建倉。這是KDJ指標“黃金交叉”的一種形式。

KDJ指標買入及賣出信號

KDJ指標的實戰技巧主要集中在KDJ指標的“金叉”、“死叉”以及KDJ曲線所處的位置和KDJ曲線運行方向等三個方面。下面以分析家軟件上的日參數爲(89,9,12)的KDJ指標爲例,來揭示KDJ指標的買賣和觀望功能。

DIFF綫與DEA綫市場含義

一、MACD指標展示 MACD指標示意圖上圖是標示瞭股票行情軟件中的MACD指標示意圖,圖中,相對較細、波動較迅急的的麯綫是DIFF綫,波動相對平緩、較粗的麯綫則為DEA綫。DIFF綫市場含義及實例依據DIFF綫的計算公式(DIFF=EMAI﹣EMA2),我們知道,DIFF值是快速均綫與慢速均綫的差值。

均線系統實戰股譜解密

如圖1 -9所示,2008年,當5周均線和13周均線向下發散形成空頭排列時,大盤明顯走進了可怕的下降通道,在此通道內持股風險巨大;;2009年,當5周均線和13周均線向上發散形成多頭排列時,大盤明顯走入了可喜的上升通道,在此通道內持股賺錢是必然的事情。

財務報表附有的其他資料

財務報表附有的其他資料上市股份公司對外公佈的財務報表通常附有對報表加以說明的補充材料。它與財務報表共同構成一個有機總體。投資者利用這些資料可以瞭解到許多非常有用的信息公司財務報表附有的其它資料可以分爲兩部分。

成交量對趨勢反轉的確認

當均綫形成雙底、三重底、頭肩底等底部形態,以及雙頂、三重頂、頭肩頂等頂部形態時,成交量應該顯示齣先縮量然後放量的形態。這樣的形態說明原來推動行情發展的力量減弱,新的力量進入,推動股價反轉。開開實業日K綫如圖4-11所示。

均綫炒股技巧!10日均綫買賣戰法

10日均綫買賣戰法 操作 上以"順勢而為,波段操作"為好。那怎樣波段操作呢?簡單講就是按照均綫,個股運行下破10日均綫,同時10日均綫嚮下運行,這是波段頭部,要賣齣獲利; 而當個股在30日、60日均綫獲得支撐,或者個股突破趨勢壓力綫,或突破長時間盤整,那就是安全的買入機會。

頭肩形態與MACD指標結閤實戰應用

頭肩形態形成的過程中,MACD指標往往形成經典的項底背離形態。在頭肩底形態中,其頭部形成時,MACD會齣現“DIFF綫與股價底背離”的看漲信號。之後股價上漲,當右肩形成時,DIFF綫往往嚮上突破零軸然後迴調,得到支撐後再次嚮上。反之,在頭肩頂形態中,其頭部形成時,MACD會齣現“DIFF綫與股價項背離”的看跌信號。

江南紅箭K綫圖(2009.10-2010.3)的趨勢是什麼樣的?

如圖2-4,江南紅箭(000519): 自2008年11月初該股股價見曆史大底以來,到2009年12月下旬,該股股價已經持續上漲一年多,且漲幅達到驚人的7倍多。2009年12月下旬該股股價已到達曆史高位,進入高位橫盤築頂階段。

KDJ的特殊分析方法

KDJ的分析週期日、周、月、分鐘(主要是60分鐘); 10日以下爲分析參數的KDJ的研判適用週期爲3天左右(從金叉到死叉爲3天時間);50日以下爲分析參數的KDJ的研判使用週期爲10天左右 ;50日以上爲分析參數的KDJ的研判適用週期爲20天左右。