我有一张由股票交易组成的表格。我需要计算每个交易员(这里是一个例子,交易员“本”)赚取的利润。
trader position quantity tradeprice marketprice
Ben long 1 100 150
Ben short -1 105 150
诀窍是,多头头寸为正数,而空头头寸为负数,因此根据交易情况,需要对计算利润进行些微修改。
逻辑如下:
多头头寸的利润为50(以100的价格购买,以150的价格出售给市场)。
空头头寸的获利为-45(以105的价格卖给市场,以150的价格从市场买进)
总利润= 5
电子表格方式:
-1*(quantity*tradeprice) + marketprice = 50 / Long position profit
-1*(quantity*tradeprice) - marketprice = -45 / Short position profit
我需要为每个交易者添加另外一列Profit
。
非常感谢,
答案 0 :(得分:1)
这只是条件聚合。当您描述问题时:
select trader,
sum(case when position = 'long' then (market_price - trade_price) * quantity
when position = 'short' then (market_price - trade_price) * (- quantity)
end)
from t
group by trader;
但是,您的样本数据表明:
select trader, sum( (market_price - trade_price) * quantity)
from t
group by trader;