首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何跟踪股票投资组合中不断变化的项目?

如何跟踪股票投资组合中不断变化的项目?
EN

Stack Overflow用户
提问于 2012-06-30 22:30:11
回答 1查看 459关注 0票数 0

我有一个系统,人们可以在这个系统中挑选一些股票,并对他们的投资组合进行估值,但我每天都无法有效地做到这一点,因为我正在为没有任何变化的日子创建条目(想象一下,我正在测量价值并进行版本控制,这样我就可以跟踪投资组合设计方式的变化)。

下面是一个例子(每天的投资组合以及股票名称和权重):

代码语言:javascript
复制
Day1:
ibm = 10%
microsoft = 50%
google = 40%

day5:
ibm = 20%
microsoft = 20%
google = 40%
cisco = 20%

我可以在day1上衡量投资组合的价值,并理解我需要在day5上再次衡量它(当它发生变化时),但我如何在不重新创建数据库中的第1天条目的情况下衡量第2-4天?

我现在的方法(我不喜欢)是在我的数据库中创建一个临时条目,用于当有人更改投资组合时,然后在一天结束时,当我计算价值时,如果有临时条目,我使用它,否则我使用最近几天的数据创建一个新条目(第2-4天)。问题是,由于数据通常不会改变,所以我创建的条目基本上是重复的。问题是:我的股票数据都是每天的。我也想过拿投资组合,如果它在3天内没有更新,就可以找到每只股票过去3天的回报,但我不确定是否有更好的解决方案。

有什么想法吗?我认为这是一个直截了当的问题,但我就是看不到一个有效的方法。

注意:在金融术语中,这被称为创建资产净值,大多数公司都是以我这样做的低效方式来做这件事,但这是因为这个过程是在大约50年前创建的,并且没有改变。我认为这个问题与版本控制非常相似,但我似乎无法做出解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-30 22:45:38

在存储术语中,最有意义的就是直接存储:

UserId - StockId1 - 23% - 2012-06-25 UserId - StockId2 - 11% - 2012-06-26 UserId - StockId1 - 20% - 2012-06-30

所以你可以看到股票1在30号下跌了。现在,如果您想知道第28天的StockId1百分比,只需选择:

代码语言:javascript
复制
SELECT * 
FROM stocks 
WHERE datecolumn<=DATE(2012-06-28) 
ORDER BY datecolumn DESC LIMIT 0,1

如果它没有返回任何东西,那么你就没有得到它,否则你就会得到最后一个位置。

顺便说一句。例如,如果您需要一个股票1的图表,您可以对一个充满日期的表进行连接。然后你就可以很容易地填上空白了。

例如,我在这里找到了这篇文章:

代码语言:javascript
复制
UPDATE mytable
SET number = (@n := COALESCE(number, @n))
ORDER BY date;

SQL QUERY replace NULL value in a row with a value from the previous known value

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11274875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档