求大侠帮忙指点一下,用C#编写的股票组合;

问题描述

各位好,通过筛选股票的程序,筛选出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亿条,所以需要一个优良的算法

时间: 2024-08-15 09:43:19

求大侠帮忙指点一下,用C#编写的股票组合;的相关文章

c语言-求大侠帮忙:C语言程序设计---编程题(以下所有题目程序应是非递归的)

问题描述 求大侠帮忙:C语言程序设计---编程题(以下所有题目程序应是非递归的) 编写一个函数insert(s1,s2,ch),实现在字符串s1中的指定字符ch位置处插入字符串s2. 学校工会组织活动,要求有8名教师参加,这8名教师将分别从A学院3名教师.B学院5名教师.C学院6名教师中任意抽取,且其中必须有B学院的教师参加,请编程输出所有可能的方案 已知在C盘根目录下存有文本文件"file1.txt",编程统计文件"file1.txt"中每个字母字符和每个数字字符

c语言-C语言题程序第二个输出结果是124还是125呢?求大侠帮忙解释

问题描述 C语言题程序第二个输出结果是124还是125呢?求大侠帮忙解释 #includeint change(int *data){ return (*data)++;}main(){ int data=123; change(&data); printf(""%ddata); data=change(&data); printf(""%d""data); printf(""n"");}V

代码-java 难题 求大侠帮忙。小弟谢过了

问题描述 java 难题 求大侠帮忙.小弟谢过了 求大虾帮帮忙. 由于我底子薄,最好能用java 代码帮我解决下. 各组 ,每组有不同月份的业绩. 一共两个for循环, for (i = 0; i<=组 ; i++) { for(j = 0 ;j< = 月份; j++) { 这里是循环到月份 的业绩.取得到当月业绩. } } 例如:一共四个组,四个月份.按月份划分, 我要算出每个月的所有组业绩之和. 一组:一月 100 .二月200 .三月300. 四月.400 二组:100 200 300

c语言-C语言将两个递增有序单链表归并为一个降序的单链表,求大侠帮忙看看

问题描述 C语言将两个递增有序单链表归并为一个降序的单链表,求大侠帮忙看看 #include #include #define N 8 typedef struct list { char c; struct list *next; } SLIST; SLIST *creat(char *a) { SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; i { q=(SLIST *)malloc(sizeof(SLI

operate-范磊c++,在十八章写String类 “重载输入运算符” 遇到问题,请各位大侠帮忙指点!

问题描述 范磊c++,在十八章写String类 "重载输入运算符" 遇到问题,请各位大侠帮忙指点! #include using namespace std; class String { public: String(); String(char*); String(String&); virtual ~String(){cout<<"析构函数执行n";delete []str;len=0;} const int getlen()const{r

我是学客-【进程间通信】匿名管道问题,困扰已久,求各位帮忙指点一二

问题描述 [进程间通信]匿名管道问题,困扰已久,求各位帮忙指点一二 代码如下,这样是没有问题的,子进程收到hello child之后会返回信息.只是不知为什么 区域A 中的 问题代码 必须要在创建进程之前 关闭写句柄? 如果放到 CreateProcess之后 ,ReadFile就会一直卡在那,子进程估计没有返回,但这是为什么? 这个程序目前遇到的问题是区域A的信息成功写进去了,随后的句柄被关闭了,等子进程创建完毕后,再用区域B的WriteFile肯定是没办法写进去了,而区域C的ReadFile

c#-C# IF语句求大侠帮忙了

问题描述 C# IF语句求大侠帮忙了 Tb_blacklist是数据库里的一个表然后下面是我写的IF语句这明显是错的,新手求帮忙 解决方案 c#--if语句c#中if语句C# bool true false 操作符重载,用在 if while等语句中 解决方案二: 参考这个: OracleConnection conn = null; try { conn = GetOracleConnection(); conn.Open(); OracleCommand cmd = new OracleCo

sql server创建存储过程初始化失败,不知道为什么,求大侠帮忙看看

问题描述 sql server创建存储过程初始化失败,不知道为什么,求大侠帮忙看看 CREATE PROCEDURE p_getLogFilter @account VARCHAR(20), @split VARCHAR(10) AS BEGIN DECLARE @splitlen INT, @au_id CHAR(50), @s VARCHAR(MAX), @cform VARCHAR(255), @dbname VARCHAR(200), @sqlstr NVARCHAR(MAX) --获取

求大神指点vb.net怎么编写com组件的dll

问题描述 求大神指点我用vb.net编写的类库生成的dll却不是com组件是什么情况呀...大神们指点指点下呀.... 解决方案 解决方案二:参考:Walkthrough:CreatingCOMObjectswithVisualBasic解决方案三:呜呜,这参考资料看不懂呀,,,有没有实用点的呀,,,解决方案四:程序集信息>使程序集com可见