Python量化交易实战-26如何验证策略的可靠性

auto-trade xuhss 808℃ 0评论

一、如何验证策略的可靠性

前几节课我们学习了双均线策略,它是基于不同周期平均价格的突破型策略。

这节课来学习如何验证策略的可靠性

因为对于策略来说,肯定是越可靠越好

举个例子:

策略A:100次开仓平仓,90次亏钱,10次赚钱,最终受益为正

策略A是可靠的策略吗?大概率不是,对不对,

如何验证策略的可靠性?

1.1 评估指标

评估指标:胜率/年化收益率/最大回撤/夏普

如果说年化收益率还不错,但是胜率很低,夏普不高,那么这个策略首先不稳定,其次它的风险比较高,或者它比较适合特殊的行情,比如说“大牛市”,它才会赚钱。

1.2 假设检验

假设检验:收益 > 0 是否为大概率时间

先提出一个假设,通过多次实验,计算不同结果出现的频数和频率,来决定是否接受或者拒绝这个假设,从而验证这个现象是否随机。

举个例子:

二、检验“周期策略”数据可靠性

周期策略:周四买入;周一卖出

20210626104033 - Python量化交易实战-26如何验证策略的可靠性

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,表示可能性的意思,通过查表可知:

20210626110412 - Python量化交易实战-26如何验证策略的可靠性

  1. 横向表示“显著性水平”,显著性水平通常设置为0.05.它代表可能犯错的概率,也就是只要可能犯错的概率是小于0.05,那么就可以拒绝H0,这里的显著性水平通常取为:0.05,它取的值越小,代表精度越大,比如显著性水平取为1,表示我只有百分之1的容错概率。你可以根据应用的领域来取不同的值。比如医药型股票,它可能取的值会
  2. 纵向表示“样本数量”,我们的样本数量是773

假设一直往后查找样本数量为773,我们以0.05作为显著性水平,查到对应的P值

  • 如果小于0.05,那这代表什么意思呢,它代表符合H0概率的只有百分之5,也就是样本和理论数据有显著差异。所以结论就是拒绝原假设
  • 如果大于于0.05,就说明2者在统计学意义上没有显著性差别的,也就是无法拒绝H0,也就是几乎不赚钱。

这就是如何利用假设检验,计算t统计量P值的方式, 就可以知道我们样本和我想要比较的样本的相似度的差距。以及我是否可以拒绝我的原假设,满足我的备着假设。

转载请注明:xuhss » Python量化交易实战-26如何验证策略的可靠性

喜欢 (2)

您必须 登录 才能发表评论!