使用MATLAB
%清除工作空间已有变量
clear;
%从“IGE.xis”读入数据
[num,txt]=xlsread('IGE');
%第一列(从第二行开始)是交易日,格式为mm/dd/yyyy.
tday=txt(2:end,1);
%将时间格式转化为yyyymmdd.
tday=datestr(datenum(tday,'mm/dd/yyyy'),Iyyyymmdd');
%将数据字符串转化为单元型数组,再转化为数值型变量
tday=str2double(cellstr(tday));
%最后一列是调整后的收盘价
cls=num(:,end);
%将tday按时间升序排列
cls=num(:,end);
%将tday按时间升序排列
[tday sortIndex]=sort( tday, 'ascend');
%将cls按时间升序排列
cls=cls(sortlndex);
%计算日收益率
dailyret= (cls(2:end)-cls(1:end-1))./cls(1:end-1);
%假设无风险利率为4%/年,每年252个交易日,计算超额收益率;
excessRet=dailyret-0.04/252;
%输出结果应该是0.7893
sharpeRatio=sqrt(252 )*mean(excess Ret)/std(excessRet)
MATLAB代码可以从我的个人网站上下载epchan.com/book/example3 4. m。