问题描述
各位好,通过筛选股票的程序,筛选出52只股票,但是现在想编写一个在一定量资本的情况下选出4只目标股票,并计算出各种股票的最佳数量,目前有的数据为:每只股票的价格,每只股票的收益率,每只股票可能面临的亏损值;我目前的操作分为两步走:1、从52只股票中随机构建组合,每个组合包含4只股票,组合以后的数据约22万条;思路:使用的递归算法,构建这个组合的数据比较快,大概10分钟可以完成;2、计算每个组合的最优购买数量,然后并计算所有组合的最优数量,从而得到52只股票的最优组合。思路:先计算出在一定资金量下,每只股票最大可以购买的数量,然后将组合中的股票按照数量进行组合,从而计算出,在本组合下,每只股票不同数量下雨其他股票不同数量的在组合,以此计算出不同数量的不同股票进行组合;可能写的不是很清楚;组合的股票有:000155,000100,000036,000017在现有的资本量下,各个股票的最大购买数量为:00015522手,00010023手,00003619手,00001718手;现在想求出:00015511手,00010010手,00003617手,00001737手,收益最大,哪位大侠有没有什么好的算法呢?
解决方案
解决方案二:
收益最大??除非你能预测哪个股票会涨的更多,否则所谓收益最大完全都是骗人的
解决方案三:
如果你真的能预测哪只股票涨的最快,全部买那个股票才是收益最大的,买其他股票都是在浪费钱
解决方案四:
如果是这个要求,其实和股票也没啥关系!我不会跟上面那位一样去纠结你是不是股票我只想说这个先看边际成本,在看机会成本。
解决方案五:
引用1楼Z65443344的回复:
收益最大??除非你能预测哪个股票会涨的更多,否则所谓收益最大完全都是骗人的
哥,我主要是想怎样实现这个算法,股票知识举个例子,编写一个资产组合模型的程序出来而已,本来以为这样好懂一点,但是你非要扣字眼,怪我
解决方案六:
引用4楼stone970431的回复:
Quote: 引用1楼Z65443344的回复:
收益最大??除非你能预测哪个股票会涨的更多,否则所谓收益最大完全都是骗人的哥,我主要是想怎样实现这个算法,股票知识举个例子,编写一个资产组合模型的程序出来而已,本来以为这样好懂一点,但是你非要扣字眼,怪我
问题是你必须给出具体的需求,而不是笼统的"收益最大",为什么第二种组合就比第一种组合收益更大?这根据什么来的如果你说不清楚,也没法给出一个具体的算法
解决方案七:
所有的组合都在同一资本量下,所有股票都有不同的收益和风险(亏损),所以这样的组合每一个风险和收益都不一样,所以在这个前提下,追求收益最大,这个是运筹学的线性规划模型而已;例如出现A组合,在一定资金(1w)下,x1(5手),x2(10手),x3(9手)的资产的收益和为1000,但是B组合也是在一定资金(1w)下,X1(7手),x2(4手),x3(6手)的资产收益和为1200,那么就可以认定B组合比A组合好;同样X1这个股票存在收益率R1,风险为V1;
解决方案八:
如果不追求绝对化的最大化算法,贪婪算法也许是个很好的选择先确定最好的一个,把钱全部投进去,因为是以手为单位,所以一般会有剩余,用剩余的再去买其他的
解决方案九:
否则你就只能暴力遍历,每生成一个组合计算一次收益和,全部遍历之后确定最优解
解决方案十:
引用8楼Z65443344的回复:
否则你就只能暴力遍历,每生成一个组合计算一次收益和,全部遍历之后确定最优解
是啊,必须要遍历,并且还只能用递归遍历,所以耗时,如果从经济价值考虑,那么就没有实际意义,所以我想有没有更优良的算法,目前根据数学公式计算了一次,光组合出来的记录就有160亿条,所以需要一个优良的算法