我有一个由Robinhood Stock Orders组成的RethinkDB表。相关领域是:
side
(buy
或sell
)
state
(我只是在寻找filled
个订单)
price
(订单的平均美元价格)
quantity
(已售出或购买的股数)
我只是想了解订单历史中每只股票的历史盈亏。
我有以下工作查询,它告诉我所有卖出订单的价格,按股票代码分组:
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
方做同样的查询,这会告诉我所有采购订单的总成本(然后,理论上,我可以从之前的每一个中减去这个{ {1}}值)。
简而言之,如何使用ONE ReQL查询从每个股票代码的SELL
订单总值中减去每个股票代码的BUY
个订单总值?
感谢您的时间。
答案 0 :(得分: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')