写论文第二天:验证交易策略

1.size函数

size(A)函数是用来求矩阵的大小的,你必须首先弄清楚A到底是什么,大小是多少。

比如说一个A是一个3×4的二维矩阵:

      1、size(A) %直接显示出A大小

       输出:ans=

                          3    4


2.zeros函数

创建一个元素全为0的矩阵,比如a=zeros(3,5);就是创建一个3行5列的0矩阵。


3.diff函数

>> x=[2 3 5 7 12 23]
>> d=diff(x)
d =
1 2 2 5 11


4.sharpe函数



它的公式非常简单,就是策略的年化收益与无风险利率的差,除以策略的年化波动率。夏普比率的优缺点都是广为人知的,但是它的实用性也是业界所认可的。它在众多指标中的地位就好比于BSM之于期权定价模型中的地位。

投资绩效指标——带你走进Matlab和量化的世界 

它的缺陷几乎和它自身一样闻名遐迩。对它的批评集中在以下几点。首先,无风险利率的选择是非常重要的。比如某项策略的收益6%,而无风险利率3%,但是融资利率高达6%的时候,策略实际上是无利可图。其次,夏普比率极度依赖于过去的历史表现(似乎没有哪个是不依赖的?)一个策略在过去表现如何,不代表它的将来一定会表现得怎样。再次,夏普比率基于均值方差理论,它实际上要求资产的投资回报率服从正态分布。然而实际情况并非如此。而且波动率估计本身就存在误差,基于其计算的夏普比率也有估计误差的问题。最后,究竟是使用账户规模还是占用资金来计算会产生极大不同。


简言之:Sharpe比率=(期望收益-无风险收益)/方差


5.计算移动均线法之下的年化夏普收益率

clc, clear all, close all  
load CSI300.mat  
CSI300_1Mn=raw_CSI300_1Mn(:,4);  
CSI300_1Mn=CSI300_1Mn(1:end);  
CSI300_EOD=raw_CSI300_EOD(:,4);  
testPts=floor(0.8*length(CSI300_EOD));  
CSIClose=CSI300_EOD(1:testPts);  
CSICloseV=CSI300_EOD(testPts+1:end); 

[lead,lag]=movavg(CSIClose,20,30,'e');  
figure  
plot([CSIClose,lead,lag]),grid on  
legend('Close','Lead','Lag','Location','Best')  
xlabel('时间/天');ylabel('价格/元') 
%假设全年有250个交易日
s=zeros(size(CSIClose));
s(lead>lag)=1;
s(lead<lag)=-1;
r=[0;s(1:end-1).*diff(CSIClose)];
sh=sqrt(250)*sharpe(r,0);
sh =


    0.4365




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值