因为在程序化交易策略中使用了网格算法进行交易,因为在网格中想设置动态资源大小的问题,所以就想到使用抛物线的分布方法来对网格资金配置进行分配。
比如我的网格最大值设置为1540,最小值设置为1404,中间值设置为1472,我假定大部分价格波动都是在中间产生。所以在中间部分想分配大一些的资金,而在最大值和最小值部分分配少一些资金。我的想法是在1472处分配0.5,1504和1404网络处都只分配0.01的资金。这样我就得到了一个开口向下的抛物线。
这样我就已知抛物线上的三点,(1404,0.01),(1472,1),(1540,0.01).我们要把这三个点代入抛物线的方程来得到抛物线的方程系数,进而就可以得到其他任件点上的资金全配值了,抛物线的一般方程如下:
y = ax^2+bx+c 将三个点代入后得到一个三元一次方程组:
0.01 = 1404*1404*a + 1404*b + c
0.5 = 1472*1472*a + 1472*b + c
0.01 = 1540*1540*a + 1540*b + c 只要我们解出这个方程组就可以得到抛物线的方程了。
下边使用python的numpy库中的代性代数函数对这个三元一次方程组求解。方法如下: 转自:
http://jingyan.baidu.com/article/f3e34a128c93aef5eb653502.html
用python的numpy包中的linalg.solve()方法解多元一次方程,如果你对矩阵解方程非常熟悉,那么现在只是学习一下这个函数就好了。如果你不是很熟悉用矩阵解方程,你需要看一下线性代数的课本。