版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
因为年初疫情影响,书剩在别的地方无法出门取,AFML所以断更了很久,现在持续更新中……
之前有搜到大神weixin_38753422的AFML系列。写得很详细并且有代码和图片解释,链接在此
此系列从Part 1 Chapter 3开始写起,Chapter3之前内容可以在上面的链接里看到。(注意并不是所有内容的整理,而是我个人觉得需要整理的内容)
本文讲的时Part 3 Chapter 14 &15 Backtest Statistics & Understanding Strategy Risk
前几章内容记录了进行回测的三种不同方法
这一章主要记录的是有哪些可以给策略进行评估的指标
以下是一些指标的罗列:
评价指标:
总收益是指变现了的或者未变现的账面收益,包括应计利息,已付息票和交易期间的股息
每个策略都有它自己的止盈止损的点位,即使你的策略不设置止损的点位,那跌到需要交保证金的时候就是止损位了。所以一个策略总有它的两个退出位。
假设你的策略每年会执行 n n n 个服从 I I D IID IID 的bet,那每个bet我们可以用 X i , i ∈ [ 1 , n ] X_i, i\in[1,n] Xi,i∈[1,n]来表示
正收益的bet表示为:收益 π > 0 \pi >0 π>0 机率 P [ X i = π ] = p P[X_i = \pi] = p P[Xi=π]=p
负收益的bet表示为:收益 π < 0 \pi <0 π<0 机率 P [ X i = − π ] = 1 − p P[X_i = -\pi] = 1 - p P[Xi=−π]=1−p
p p p 是模型预测的二分类结果的probability
真正例会获得正收益
假正例会负收益
真负例与假负例都会Pass,不会产生bet
因为每个bet之间都是相互独立的,所以
收益的期望是 E [ X i ] = π p + ( − π ) ( 1 − p ) = π ( 2 p − 1 ) E[X_i]=\pi p+(-\pi)(1-p)=\pi(2p-1) E[Xi]=πp+(−π)(1−p)=π(2p−1)
收益的方差是 V [ X i ] = E [ X i 2 ] − E [ X i ] 2 = 4 π 2 p ( 1 − p ) V[X_i]=E[X_i^2]-E[X_i]^2=4\pi^2 p(1-p) V[Xi]=E[Xi2]−E[Xi]2=4π2p(1−p)
也就可以算出年化夏普比率 θ \theta θ为:
可以看出夏普比率与收益无关,并且 n n n越大,夏普比例越大,也就解释了为什么机构都喜欢高频策略了。
夏普比率是跟Precision有关,与Accuracy无关,如果Bet中负例太多, n n n就越少也就夏普比率越小。
同时,我们可以通过上式反推出 p p p的值如果我们确定夏普比率的情况下
0 ⩽ p ⩽ 1 0\leqslant p\leqslant1 0⩽p⩽1
当我们策略是每周进行一bet,那么策略的precision需要达到 p = 0.6336 p = 0.6336 p=0.6336,夏普 θ \theta θ才能达到2
假设你的策略每年会执行 n n n 个服从 I I D IID IID 的bet,那每个bet我们可以用 X i , i ∈ [ 1 , n ] X_i, i\in[1,n] Xi,i∈[1,n]来表示
正收益的bet表示为:收益 π > 0 \pi >0 π>0 机率 P [ X i = π + ] = p i P[X_i = \pi_+] = p_i P[Xi=π+]=pi
负收益的bet表示为:收益 π < 0 \pi <0 π<0 机率 P [ X i = π − ] = 1 − p P[X_i = \pi_-] = 1 - p P[Xi=π−]=1−p
且 π + > π − \pi_+>\pi_- π+>π−
收益的期望是 E [ X i ] = ( π + − π − ) p + π i E[X_i]=(\pi_+-\pi_-)p+\pi_i E[Xi]=(π+−π−)p+πi
收益的方差是 ( π + − π − ) 2 p ( 1 − p ) (\pi_+-\pi_-)^2 p(1-p) (π+−π−)2p(1−p)
所以策划的年化夏普收益率为:
当 π + = π − \pi_+ =\pi_- π+=π−的情况下上式就是这个
到这我们就推出了在不同参数( π − , π + , n \pi_-,\pi_+,n π−,π+,n)策略需要达到多高的Precision p p p才能达成指定的夏普比率 θ \theta θ
例子:设 n = 260 , π + = . 005 , π − = − . 01 n=260, \pi_+=.005, \pi_-=-.01 n=260,π+=.005,π−=−.01, 那么要达到 θ = 2 \theta = 2 θ=2, p p p就必须达到.72(这个要达到这个Precision不容易)
同时也说明了策略在这些参数的细微变化下,会变化比较大
当策略参数 n , π − , π + , θ n, \pi_-,\pi_+,\theta n,π−,π+,θ各个参数都确定了之后,就可以判断策略的临界 p p p值:
P [ p < p θ ∗ ] P[p
有一时间序列的bet记录 { π t } t = 1 , 2 … … , T \{\pi_t\}_{t=1,2……,T} { πt}t=1,2……,T
bet序列中的负收益预期可以表示为 π − = E [ { π t ∣ π t ⩽ 0 } t = 1 … … T ] \pi_-=E[\{\pi_t|\pi_t\leqslant0\}_{t=1……T}] π−=E[{ πt∣πt⩽0}t=1……T]
bet序列中的正收益预期可以表示为 π + = E [ { π t ∣ π t ⩾ 0 } t = 1 … … T ] \pi_+=E[\{\pi_t|\pi_t\geqslant 0\}_{t=1……T}] π+=E[{ πt∣πt⩾0}t=1……T]
(这里正、负收益的bet也可以通过模拟混合高斯模型,运用EF3M算法)
接下来年化bet频次 n = T y n = \frac{T}{y} n=yT y y y是运行策略的年数 1 ⩽ y ⩽ T 1 \leqslant y\leqslant T 1⩽y⩽T
最后按照下述步骤[重复采样] p p p:
重复 I I I次以下步骤:
i = 1 … … I i=1……I i=1……I
对 { p i } i = 1 … … I \{p_i\}_{i=1……I} { pi}i=1……I使用核密度估计方法,模拟一个PDF函数,记为 f [ p ] f[p] f[p]
在足够的多的样本抽样下,可以得出 f [ p ] ∼ N [ p ˉ , p ˉ ( 1 − p ˉ ) ] f[p] \sim N[\bar{p},\bar{p}(1-\bar{p})] f[p]∼N[pˉ,pˉ(1−pˉ)],且 p ˉ = E [ p ] = ∥ { π t ∣ π t ( i ) ⩾ 0 } t = 1 … … T ∥ T \bar{p} = E[p] = \frac{\left \| \{\pi_t|\pi_t^{(i)}\geqslant 0\}_{t=1……T} \right \|}{T} pˉ=E[p]=T∥∥{ πt∣πt(i)⩾0}t=1……T∥∥
在给予限定夏普比率 θ ∗ \theta^* θ∗情况下,策略风险可以用 P [ p < p θ ∗ ] = ∫ − ∞ p θ ∗ f [ p ] d p P[p