資源簡介
matlab量化擇時模型回測代碼
代碼片段和文件信息
%%?Test回測程序
%?腳本程序
%@?xuhuaxuan
%?程序實現測試所使用的MATLAB版本:MATLAB?R2010b(7.11.0)
%%?clean?work
clear;
clc;
close?all;
%%??Load?Data
A?=?xlsread(‘IF_5min_20100826-20130315.xlsx‘);
%%?Initialization
%?構造IF(每日K線)
per?=?54;
IF=zeros(length(A)/per5);
IF(:1)?=?1:length(A)/per;
for?t1=1:length(A)/per
????midHigh?=?A((t1-1)*per+13);
????midLow?=?A((t1-1)*per+14);
????for?t2=1:per
????????midHigh?=?max([A((t1-1)*per+t23)midHigh]);
????????midLow?=?min([A((t1-1)*per+t24)midLow]);
????????IF(t12:5)=[A((t1-1)*per+12)midHighmidLowA(t1*per5)];
????end
end
len?=?length(A);
EquityDay?=?zeros(length(IF)1);
EquityDay(22)?=?50e4;
RSV9?=?zeros(length(IF)1);
%RSV9=?RSV9(20:end);
K9=zeros(length(IF)1);
%K9?=?K9(20:end);
D9?=?zeros(length(IF)1);
%D9?=?D9(20:end);
RSV14?=?zeros(length(IF)1);
%RSV14=?RSV14(20:end);
K14=zeros(length(IF)1);
%K14?=?K14(20:end);
D14?=?zeros(length(IF)1);
%D14?=?D14(20:end);
TR?=?zeros(length(IF)1);
%TR?=?TR(20:end);
ATR?=?zeros(length(IF)1);
%ATR?=?ATR(20:end);
ADX?=?zeros(length(IF)1);
%%?策略過程初始化
%?開多標簽?1?多一手?0?無?
LongFlag?=?0;
%?開空標簽?1?空一手?0?無
ShortFlag?=?0;
%?記錄多頭序列
LongS?=?zeros(len1);
LongSmax?=?zeros(len1);
LongSlen?=?1;
%?記錄空頭序列
ShortS?=?zeros(len1);
ShortSmin?=?zeros(len1);
ShortSlen?=?1;
%?記錄操作勝率次數
winLen=0;
%%?calc?ADX
HIGH=A(13);
HIGH1=A(13);
LOW?=A(14);
LOW1?=A(14);
CLOSE?=?A(15);
N=14;
M=14;
K9(221)?=?(IF(215)-min(IF(13:214)))/(max(IF(13:213))-min(IF(13:214)))*100;
D9(221)=K9(221);
K14(221)=?(IF(215)-min(IF(8:214)))/(max(IF(8:213))-min(IF(8:214)))*100;
D14(221)=K14(221);
currentLow?=??A(22*per+14);
currentHigh?=??A(22*per+13);
ATR(221)=max([IF(223)-IF(224)abs(IF(223)-IF(225))abs(IF(224)-IF(225))]);
ADX(221)=max([IF(223)-IF(224)abs(IF(223)-IF(225))abs(IF(224)-IF(225))]);
????????
for?i=23:length(IF)
????if?i?>=23
????????EquityDay(i1)?=?EquityDay(i-11);
????end
????%?計算當天資金流
????if?LongFlag?==?1?&&?ShortFlag?==?0
????????EquityDay(i1)?=?EquityDay(i-11)?+?(IF(i5)-IF(i-15))*300;
????end
????if?ShortFlag?==?1?&&?LongFlag?==?0
????????EquityDay(i1)?=?EquityDay(i-11)?+?(IF(i-15)-IF(i5))*300;
????end
????
????L9?=?min(IF((i-9):(i-1)4));
????H9?=?max(IF((i-9):(i-1)3));
????RSV9(i-11)=(IF(i-15)-L9)/(H9-L9)*100;
????K9(i-11)=2/3*K9(i-21)+1/3*RSV9(i-11);
????D9(i-11)=2/3*D9(i-21)+1/3*K9(i-11);
????????????
????L14?=?min(IF((i-14):(i-1)4));
????H14?=?max(IF((i-14):(i-1)3));
????RSV14(i-11)=(IF(i-15)-L14)/(H14-L14)*100;
????K14(i-11)=2/3*K14(i-21)+1/3*RSV14(i-11);
????D14(i-11)=2/3*D14(i-21)+1/3*K14(i-11);
????
????for?j?=1:per
????????MA5?=?(IF(i-4:i-15)+A((i-1)*per+j5))/5;
????????MA10?=?(IF(i-9:i-15)+A((i-1)*per+j5))/10;
????????MA20?=?(IF(i-19:i-15)+A((i-1)*per+j5))/20;
????????LongSmax(LongSlen)?=?max([LongSmax(LongSlen)A((i-1)*per+j5)]);
????????ShortSmin(LongSlen)?=?min([ShortSmin(LongSlen)A((i-1)*per+j5)]);
???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5243??2013-07-11?23:43??huice2.m
-----------?---------??----------?-----??----
?????????????????5243????????????????????1
- 上一篇:求解四步相移法的光柵相位的matlab程序
- 下一篇:極化SAR圖像分類數據
評論
共有 條評論