2016-04-17

一些关于交易策略的计算

考虑一个交易策略.

有Winning的概率获得Return的收益.
同时有1-Winning的概率获得Lose的收益

那么进行一次交易后的
Cash_1 = Cash_0 * (1+Return)*Winning*(Realize_0) + Cash_0 * (1-Lose)*(1-Winning)*(1-Realize_0)
其中Realize_0为实际发生的是Return的收益还是Lose的收益.
即 Realize_0 = {0,1}

推广下就是
Cash_{n+1} = Cash_0 * \prod_i^n ( (1+Return)*Winning*Realize_i) +(1-Lose)*(1-Winning)*(1-Realize_i) )
令Cash_0 = 1
->
Cash_{n+1} = \prod_i^n ( (Winning+ Return*Winning)*Realize_i + (1-Lose)*(1-Winning) - (1-Lose)*(1-Winning)*Realize_i )
->
Cash_{n+1} = \prod_i^n (Winning+ Return*Winning - (1-Lose)*(1-Winning))*Realize_i + (1-Lose)*(1-Winning)

对于给定策略来说,Winning Return 和Lose都是一个常数.

A = (Winning+ Return*Winning - (1-Lose)*(1-Winning))
B = (1-Lose)*(1-Winning)
则有
Cash_{n+1} = \prod_i^n A*Realize_i+B

由于Realize_i的取值为离散的1和0.
考虑让n=p+q,其中p为取值1的数量,q为取值0的数量.
则有
Cash_{n+1} = ((A+B)^p) * (B^q)
->
Cash_{n+1} = ((1+Return)*Winning)^p) * ((1-Lose)*(1-Winning))^q

考虑Winning=0.5,Return = Lose = k的情况.
->
Cash_{n+1} = ( (1+k)^p*(1-k)^q )/2^n

由于Winning为0.5,也就是说当n->\infty的时候p=q
->
Cash_{n+1} = (1-k^2)^(n/2) / 2^n
->
Cash_{n+1} = \sqrt{ ((1-k^2)/4)^n }

在这种条件下,要有实际意义的盈利空间就意味着
Cash_{n+1} > 1
->
\sqrt{ ((1-k^2)/4)^n } > 1
->
((1-k^2)/4)^n > 1
->
(1-k^2)/4) > 1
->
3+k^2 < 0 但由于k>0
->
3+k^2 > 3
与需要满足的条件矛盾.

也就是说,在50%胜率,且单次交易盈亏幅度相同的情况下.
随着交易次数的增加,收益率是趋向0的.

这个跟直觉上可能有点冲突.

对于给定的50 50胜率的重复实验来说,其期望应该是
E=1+Return-Lose
当Return=Lose的时候
E=1即不变的.

但这里隐含的条件是每次执行策略都是相互独立/完全相同的初始条件的.

对于实际上的操作来说,每次的策略执行的Cash_i是不同的,且依赖于上一次的结果.
所以,对于这种类型的交易策略来说,并不能直接套用这类期望计算.

一个较为直观的解释是.
假设胜率为50%,收益率为正负10%.
那么对于两次分别正负的策略执行来说,就有可能存在
1.1*0.9 = 0.99

虽然收益率的幅度相同,但是由于基数不同,所以导致了实际并不为一的情况.
而且就这种情况来说,要使得收益为1.
1.1*x=1
->
x=0.909

换句话来说,在这种胜负均等的简单情况下,也要求正收益率要高于负收益率.
如果考虑实际的市场波动情况的话,结果可能更复杂.

考虑
Cash_{n+1} = ((1+Return)*Winning)^p) * ((1-Lose)*(1-Winning))^q
当n->\infty
Winning = p/(p+q)
也就是p的出现次数跟总次数的比值会趋近于Winning.
->
Cash_{n+1} = (1+Return)^p * p^p * (p+q)^(-p) * (1-Lose)^q * q^q * (p+q)^(-q)
->
Cash_{n+1} = ( (p+p*Return)^p * (q-q*Lose)^q ) / (p+q)^(p+q)
令Return=x,Lose=0,p+q=n
->
Cash_{n+1} = (p+p*x)^p *q^q / ((p+q)^(p+q))
->
Cash_{n+1} = ((p+p*x)/n)^p * (q/n)^q

当n->\infty
Winning = p/(p+q) = w
->
Cash_{n+1} = (w+w*x)^p * (1-w)^((p-w*p)/w)
->
Cash_{n+1} = ( ((w+w*x)/(1-w)) * (\sqrt[w](1-w)) ) ^ p

令Cash_{n+1} > 1
->
( ((w+w*x)/(1-w)) * (\sqrt[w](1-w)) ) ^ p > 1

当n-> \infty时,不管w/胜率为多少,那么p-> \infty
->
((w+w*x)/(1-w)) * (\sqrt[w](1-w)) > 1
->
((w+w*x)/(1-w))^w * (1-w) > 1

对w求偏导数
->
\frac{ \partial( ((w+w*x)/(1-w))^w * (1-w) ) }{ \partial w } = (w+1)*( ((x+1)*w)/(1-w) )^w * \log (x+1)*w/(1-w)


\frac{ \partial( \log (x+1)*w/(1-w) )}{ \partial w } = (\log(x+1)) / ((1-w)^2)

假设x>=0的话,
则\frac{ \partial( \log (x+1)*w/(1-w) )}{ \partial w } = (\log(x+1)) / ((1-w)^2) > 0
即\log (x+1)*w/(1-w)是一个关于w的区间内的单调递增函数.

由于w \in [0,1],
则\log (x+1)*w/(1-w) \in [-\infty,+\infty]

那么对于\log (x+1)*w/(1-w)来说就存在一个零点w_0.
使得
当w 0
即当 w < w_0时,((w+w*x)/(1-w))^w * (1-w) > ((w_0+w_0*x)/(1-w_0))^w_0 * (1-w_0)

当w>w_0时,\log (x+1)*w/(1-w) > 0.
((w+w*x)/(1-w))^w * (1-w) < ((w_0+w_0*x)/(1-w_0))^w_0 * (1-w_0) 即((w_0+w_0*x)/(1-w_0))^w_0 * (1-w_0)为给定x的对于w的最小值. 那么对于给定的收益率x \log (x+1)*w/(1-w) = 0 ->
(x+1)*w/(1-w) = 1
->
w = w_0 = 1/(x+2)

->
((w_0+w_0*x)/(1-w_0))^w_0 * (1-w_0) = ((x+1)/(x+2))^((x+3)/(x+2)) > 1
->
x<-3 也就是说,并不存在一个收益率,使得无论其胜率如何都能产生正的收益. 这其实是很符合直觉感受的. 但对于给定的收益率x,还是能得出一个交易胜率下限要求的. ((w+w*x)/(1-w))^w * (1-w) > 1
令x=0.01
->
w>0.9987

当然,这个通常没有什么意义.
如果有99%胜率的交易策略,那么也不用做这些计算了.

聊聊卡布里尼

最近看了部片叫卡布里尼,算是可能这段时间来比较有意思的一部电影. 故事也不算复杂,就是一个意大利修女去美国传教,建立慈善性质医院的故事. 某种程度上来说,也很一般的西方普世价值主旋律. 但是如果换一套叙事手法,比如共产国际的社会主义革命建立无产阶级广厦千万间的角度来看的话,也不是...