一、如何验证策略的可靠性
前几节课我们学习了双均线策略,它是基于不同周期平均价格的突破型策略。
这节课来学习如何验证策略的可靠性
因为对于策略来说,肯定是越可靠越好
举个例子:
策略A:100次开仓平仓,90次亏钱,10次赚钱,最终受益为正
策略A是可靠的策略吗?大概率不是,对不对,
如何验证策略的可靠性?
1.1 评估指标
评估指标:胜率/年化收益率/最大回撤/夏普
如果说年化收益率
还不错,但是胜率
很低,夏普
不高,那么这个策略首先不稳定,其次它的风险比较高,或者它比较适合特殊的行情,比如说“大牛市”,它才会赚钱。
1.2 假设检验
假设检验:收益 > 0 是否为大概率时间
先提出一个假设,通过多次实验,计算不同结果出现的频数和频率,来决定是否接受或者拒绝这个假设,从而验证这个现象是否随机。
举个例子:
二、检验“周期策略”数据可靠性
周期策略:周四买入;周一卖出
count 773
mean 0.00378
std 0.0399
min -0.141
max 0.205
怎么理解这个频数图?
x
轴是收益率,最小收益率是-0.141
,最大的收益率是0.205
。
这里count
是代表有多少条数据,总共是773
条数据。
它的收益率的均值mean是0.00378
,
整体呈现正态分布。它是最常见的一种概率分布形态。
对于这样的一个周期策略
如何知道它的收益率为正的情况的概率为多少?
因为收益率为正的概率越大,说明这个策略越可能让我赚到钱。
这里我们可以通过假设检验:t-test
2.1 如何利用假设检验验证数据的可靠性
2.1.1 H0
H0:样本均值 = 理论均值
- 样本均值:每次平均收益率=0
- 理论均值:设为0,表示不赚钱。也不亏钱。当然不希望策略的收益为0,那样就白干了。
2.1.2 H1
H1:样本均值 > 理论均值
- 样本均值:每次平均收益率>0
- 理论均值:设为0,表示不赚钱。也不亏钱。当然不希望策略的收益为0,那样就白干了。
2.1.3 t统计量
t统计量 = (样本均值-理论平均值)/(样本标准差/根号(样本数量))
那如何知道数据样本是满足H1这个情况,就需要用到t统计量
,t统计量
用于比较不同数据样本的相似度。
以上述数据为例子:
t = (mean-0)/(std/根号(count))
计算的t值越大,相似度越低,值越小,相似度越高。
2.1.4 P值
P值代表probablity
,表示可能性的意思,通过查表可知:
- 横向表示“
显著性水平
”,显著性水平
通常设置为0.05
.它代表可能犯错的概率,也就是只要可能犯错的概率是小于0.05
,那么就可以拒绝H0
,这里的显著性水平
通常取为:0.05,它取的值越小,代表精度越大,比如显著性水平取为1,表示我只有百分之1的容错概率。你可以根据应用的领域来取不同的值。比如医药型股票,它可能取的值会 纵向
表示“样本数量
”,我们的样本数量是773
。
假设一直往后查找样本数量为773
,我们以0.05
作为显著性水平,查到对应的P值
:
- 如果小于
0.05
,那这代表什么意思呢,它代表符合H0
概率的只有百分之5,也就是样本和理论数据有显著差异。所以结论就是拒绝原假设。 - 如果大于于
0.05
,就说明2者在统计学意义上没有显著性差别的,也就是无法拒绝H0,也就是几乎不赚钱。
这就是如何利用假设检验,计算t统计量
和P值
的方式, 就可以知道我们样本和我想要比较的样本的相似度的差距。以及我是否可以拒绝我的原假设,满足我的备着假设。
转载请注明:xuhss » Python量化交易实战-26如何验证策略的可靠性