緊接著昨天的夜報,繼續貢獻這部分代碼,作為大家日後進行簡易模型評估的典型框架。
%% 6 計算策略交易次數和勝率並繪圖
s = zeros(size(Close_T1));
% 創建大小和Close_T1一樣的0矩陣
s(fast>slow) = 1; % 信號值1
s(slow>fast) = -1; % 信號值-1
s(1:col-1)=0; % 第1天到第col天間置零,長期均線還沒計算完成,信號不可用
tradetimes=0; %交易次數初始化
s_length=length(s); %計算樣本的長度
rate_return=nan(1,s_length);
%初始化盈利矩陣,個數為樣本長度
lasting_day=nan(1,s_length);
%初始化持續天數矩陣,個數為樣本長度
index_open=1;
for i=2:s_length
if s(i-1)*s(i)<0 %前後狀態發生變化,交易信號產生
tradetimes=tradetimes+1; %交易次數++
rate_return(tradetimes) = s(i-1)*(ZZ500(i)-ZZ500(index_open))-cost;
%平舊倉,計算這一波段的盈利,扣除手續費
lasting_day(tradetimes) = i-index_open;
%持續天數
index_open=i;
%記錄開新倉的位置
end
end
rate_return(isnan(rate_return)) = [];
lasting_day(isnan(lasting_day)) = []; %去除矩陣中的nan元素
winrate=sum(rate_return(:)>0)/length(rate_return);
%輸出整個樣本的勝率
plot([Close_T1,fast,slow]); grid on
title(['訓練集最大年化夏普 = ',num2str(max(maxSH),3) ...
' fast=',num2str(row(col)) ' slow=',num2str(col)])
% 計算最大年化夏普作為標題
xlim=get(gca,'xlim'); ylim=get(gca,'ylim');
text_display=['交易次數=',num2str(tradetimes),' ','勝率=',num2str(winrate)]; %顯示在圖片中的文本
text(sum(xlim)/2-200,sum(ylim)/2+1800,text_display,'horiz','center')
以下是今日收評:
今日大盤開盤後小幅下探,此後震蕩上行出現反彈,滬市弱於創業板。截至收盤,滬市報收2982.43,深市報收10366.50。操作上,注意明天的反彈力度,開盤後維持強勢,則底倉不動,如果走軟,底倉可以減少部分,等待較大周期低點再次介入。
今日螺紋鋼出現震蕩盤下走勢,尾市出現小幅反彈,豆粕在震蕩下跌跳水後出現V型反彈,並創當日新高,操作上,螺紋鋼注意10日線支撐,在上有壓力下有支撐的窄幅空間下多觀望為主。豆粕跌幅收窄,有止跌跡象,空單可以觀察五日線壓力情況適時止盈。
上證指數:
狀態:買入。倉位:60%。
創業板指:
狀態:買入。倉位:40%。
隱約感受到這種小陽線反彈,不堪一擊,大家小心之後可能會出現的下探,尤其是個股上殺傷力還是比較大的。
點擊底部【閱讀原文】
跳轉到我們剛發布的《打開量化交易大門 36節精選公開課》目錄。
或者去優酷,也可以看到完整的課程專輯。
http://list.youku.com/albumlist/show?id=27113684&ascending=1&page=1.html