0

我有一个包含 Robinhood 股票订单的 RethinkDB 表。相关领域是:

sidebuysell
state(我只是在寻找filled订单)
price(订单的平均美元价格)
quantity(出售或购买的股票数量)

我只是想了解我的订单历史中每只股票的历史盈亏。

我有以下工作查询,它​​告诉我所有 SELL 订单的价格,按股票代码分组:

r.db('robinhood').table('orders').filter({side: 'sell', state: 'filled'})
 .map(function(order) { 
   return {
     cost: (order('price').coerceTo('number')).mul(order('quantity').coerceTo('number')),
     symbol: order('symbol')
   }
}).group('symbol').sum('cost')

这将返回如下内容:

[{"group":"AA","reduction":491},{"group":"AAPL","reduction":10589},{"group":"ABEO","reduction":7596.16},...]

显然,我可以对边执行相同的查询BUY,这将告诉我所有采购订单的总成本(然后,理论上,我可以从之前的每个SELL值中减去这个)。

简而言之,如何使用 ONE ReQL 查询从每个股票代码的BUY订单总值中减去每个股票代码的订单总值?SELL

谢谢你的时间。

4

1 回答 1

1

您可以尝试将买单的反价值添加到您的总和中:

r.db('robinhood').table('orders').filter({state: 'filled'})
 .map(function(order) { 
   return {
     cost: order('price').coerceTo('number')
           .mul(order('quantity').coerceTo('number'))
           .mul(r.branch(order('side').eq('sell'), 1, -1)),
     symbol: order('symbol')
   }
}).group('symbol').sum('cost') 
于 2017-01-28T12:41:09.337 回答