English 中文(简体)
组合软件在可能性巨大时如何如此迅速地提出组合建议? [已关闭]
原标题:How do portfolio software generate their portfolio suggestions so quickly when the possibilities are huge? [closed]

我希望这不会被关闭, 因为这与我一直无法解答的算法有关(因为我对它是如何完成的感到非常困惑,所以算法也是相当长的 ) 。 在很多年前,我曾在一个共同基金工作,我们使用了不同的工具来选择最佳组合以及对现有组合进行套期保值。我们会采取这些结果并进行自己的修改,然后将其出售给客户。在我的公司缩小规模之后,我决定给它一个尝试(来创建软件,并包括我的定制) 但我不知道该软件是如何实际生成组合的。

经过六个月的尝试,我承认我的方法是不可能的。 我试图使用像Knuth的书那样的组合算法,并尝试使用>bit 组合来寻找NYSE(5,000+股票 ) 上的所有可能的投资组合(我将其限制为30个股票 ) 。 但根据我所讲的每个人,我花了数十亿年的时间才得到一天的结果(对我来说,在连续处理两天后,GPU i 停止了它 ) 。

因此我错过了什么呢? 我们将进入风险容忍度, 并观察市场( 股票市场增长预期, 通货膨胀预期, 通胀预期, 资金预期, etc..), 并在几秒/ 分钟内给我们理想的投资组合( 理论上的. ) 。 有数千种可能性和股票重量的四重组合, 他们怎么能够如此快速( 甚至甚至全部)地计算结果? 随着系统的管理员, 我知道我们每天下载一个文件( 不到100公尺, 并被装入 mssql 数据库 ) 。 因此, 它并不象我们一样。 使用我的方法, 在做 Knuth 组合的瞬间时间里, 我就能拿到一个5千分之五的投资组合( 理论上的组合 ) 。 应用程序在网上工作( 因此, 他们一定在桌面/ optoptoptop two transges 组合的某个地方, 而不是在大型的超级电子计算机上进行计算, 花了一两分钟的时间。 15分钟是全球基金包括全世界所有股票的基金在内, 最晚都会得到回报。 。 。 。 它之所以如此令人困惑地需要全部的货币回报, 。

如何在程序上做到这一点?我开始相信他们并没有使用Knuth的组合算法来产生每一种可能性,但他们的结果似乎并不是随机选择的,而单独选择股票似乎忽略了相关部分。 如此多的投资软件怎么能做这种事情呢?

最佳回答

这种算法几乎肯定不会产生各种可能性,正如你正确指出的,这是不切实际的。

然而,组合选择对于其他技术来说是非常容易的,这些技术会给你一个非常好的答案。

  • If you make simplifying assumptions around risk / return you can solve for an optimal portfolio mathematically (see http://en.wikipedia.org/wiki/Capital_asset_pricing_model for some of the maths)
  • A genetic algorithm which does mutation / crossover operations on randomised sample portfolios will find a very good solution pretty fast. You can combine this with Monte-Carlo style modelling approaches to understand the range of possible outcomes.

就个人而言,我可能建议采用遗传算法方法----虽然它数学上不那么纯,但它会给你们很好的答复,并且应该能够处理任何你想轻易地施加的限制因素(例如,组合中股票的最大数量)

问题回答

现代组合理论本身就是一个主题,有《现代组合理论和投资分析》等书籍,并在http://en.wikipedia.org/wiki/Modern_portfolio_theory 上作了介绍。

获得问题的一种方法是将它当作一个数学优化问题。如果您拥有一个矢量,给您购买的每股量,那么,根据各种假设,返回是该矢量的线性函数,风险是该矢量的二次函数。如果将给定风险的回报最大化,或将给定回报的风险最小化,则是一个非常清楚的数学问题,即使对大量库存来说—— < a href="http://en.wikipedia.org/wiki/Quadratic_programing" rel=“nofolpol" >http://en.wikipedia.org/wiki/Quadratic_programing 。

其中一个实际问题是,你可能得到的答案会告诉你购买市场几乎所有股票的一小部分。我的猜测是,现实生活中的方案使用一些“秘密酱”的疲劳症,不能保证完美的答案,但受你实际准备购买的股票数量的限制,但实际上效果相当不错。 回到完美的答案似乎是一个棘手的问题――例如,见http://arxiv.org/ftp/arxiv/papers/1105/1105/3594.pdf“rel=nofollow”





相关问题
How to add/merge several Big O s into one

If I have an algorithm which is comprised of (let s say) three sub-algorithms, all with different O() characteristics, e.g.: algorithm A: O(n) algorithm B: O(log(n)) algorithm C: O(n log(n)) How do ...

Grokking Timsort

There s a (relatively) new sort on the block called Timsort. It s been used as Python s list.sort, and is now going to be the new Array.sort in Java 7. There s some documentation and a tiny Wikipedia ...

Manually implementing high performance algorithms in .NET

As a learning experience I recently tried implementing Quicksort with 3 way partitioning in C#. Apart from needing to add an extra range check on the left/right variables before the recursive call, ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Enumerating All Minimal Directed Cycles Of A Directed Graph

I have a directed graph and my problem is to enumerate all the minimal (cycles that cannot be constructed as the union of other cycles) directed cycles of this graph. This is different from what the ...

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签