在“Neo4j”中对时变金融风险进行建模

时间:2014-06-01 13:03:03

标签: neo4j cypher

如何在Neo4j中为这类数据建模?:

> HOLDINGS
   Portfolio                         Holding    Instrument       Date BALANCE.USD
1        ABC           Stock 1 Share Class A       Stock 1 2013-12-31    25360291
2        ABC           Stock 1 Share Class A       Stock 1 2014-01-31    25302011
3        ABC           Stock 1 Share Class B       Stock 1 2013-12-31    12264011
4        ABC           Stock 1 Share Class B       Stock 1 2014-01-31    12893201
5        DEF Fund 1 Share Class EUR Series 1        Fund 1 2013-12-31    21012222
6        DEF Fund 1 Share Class EUR Series 1        Fund 1 2014-01-31    21632101
7        DEF Fund 1 Share Class EUR Series 2        Fund 1 2013-12-31     8214325
8        DEF Fund 1 Share Class EUR Series 2        Fund 1 2014-01-31     8292630
9        DEF           Portfolio ABC Account Portfolio ABC 2013-12-31   155364592
10       DEF           Portfolio ABC Account Portfolio ABC 2014-01-31   156202162

> FACTORS
  Instrument                                         Factor ExposureStrength
1    Stock 1                              North America: US             1.00
2    Stock 1                                    Industrials             1.00
3     Fund 1                                 Liquidity: Low             0.05
4     Fund 1                                  North America             0.70
5     Fund 1                      Europe: Eurozone: Germany             0.20
6     Fund 1 Industrials : Capital Goods: Building Products             0.25

为了给出一点叙述,投资组合投资于具有时变值的不断变化的工具集(股票,债券,其他投资组合......)。这些工具反过来对因素很敏感,这些因素可以是等级的,例如行业(e.g. GICS classification),地区/国家,大小等。虽然它没有反映在上面的FACTORS表中,ExposureStrength也可能随时间而变化。

然后将每个因素的投资组合风险计算为Balance * ExposureStrength。目的是随后通过不同的因子集聚合或切片和切片曝光。

我还不是Neo4j的用户,但考虑学习Cypher查询语言,所以对于不发布可重复的示例表示歉意。很奇怪Cypher这些问题的片段有多复杂。

1 个答案:

答案 0 :(得分:2)

您可以通过创建一个与具有日期引用的项目组合和工具连接的HoldingBalance节点来建模时间差异,该日期引用具有:NEXT关系并且同时锚定在时间树中以便快速访问子序列。

这样的事情:

                (Portfolio)-->(Holding)<--(Instrument)
                                  |
                                  v
(HoldingBalance)<-[:NEXT]-(HoldingBalance)-->(day)-->(month)-->(year)

同样适用于因素

                     (Factor)-->(Exposure)<--(Instrument)
                                    |
                                    v
(ExposureStrength)<-[:NEXT]-(ExposureStrength)-->(day)-->(month)-->(year)

我开始将其建模为图形要点,但尚未完成:

http://gist.neo4j.org/?cace2732effa846d9fc2