凯利公式判定持仓比例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luoganttcc/article/details/83185572
from matplotlib import pyplot as plt 
import numpy as np 
from mpl_toolkits.mplot3d import Axes3D

#p是你的胜率
#b是你的赔率
def caly(p,b):
    
    f=(p*(b+1)-1)/b
    return round(f,2)
   

如果你的选股正确率是0.8,赔率是1的话,你的仓位是60%

caly(0.8,1)
Out[69]: 0.6

在不可做空的天朝你的持仓比例与你的胜率的关系

x = np.linspace(0,1,200)  # 横轴的数据
y = [caly(i,1) for i in x]  # 纵轴的数据
for k in range(len(x)):
    
    if y[k]<0:
        y[k]=0
        
plt.plot(x, y)  # 调用pylab的plot函数绘制曲线
plt.show()  # 显示绘制出的图

在这里插入图片描述

在不可做空的天朝你的持仓比例与你的赔率的关系

x = np.linspace(0.1,1.2,200)  # 横轴的数据
y = [caly(0.8,i) for i in x]  # 纵轴的数据

for k in range(len(x)):
    
    if y[k]<0:
        y[k]=0
        
plt.plot(x, y)  # 调用pylab的plot函数绘制曲线
plt.show()  # 显示绘制出的图

在这里插入图片描述

你的仓位与你的胜率和赔率的关系,非线性,负数被0填充,天朝不能做空

fig = plt.figure() 
ax = Axes3D(fig)
p =np.linspace(0,1,100)
b=np.linspace(0.01,5,100)
p, b = np.meshgrid(p, b)


R =(p*(b+1)-1)/b
R[R<= 0] = 0  

ax.view_init(elev=30,azim=-120)
ax.plot_surface(p, b, R, rstride=1, cstride=1, cmap='rainbow') 
plt.show()

在这里插入图片描述

你不是上帝,不要每次满仓,否则市场分分钟教你做人。

猜你喜欢

转载自blog.csdn.net/luoganttcc/article/details/83185572