凯利公式判定持仓比例
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()
你不是上帝,不要每次满仓,否则市场分分钟教你做人。