【发布时间】:2019-09-06 01:03:47
【问题描述】:
如果我的表格如下所示,我如何创建另一个名为 vwap 的列来计算 vwap?
time bid_size bid ask ask_size trade trade_size phase
0 2019-01-07 07:45:01.064515 495 152.52 152.54 19 NaN NaN OPEN
1 2019-01-07 07:45:01.110072 31 152.53 152.54 19 NaN NaN OPEN
2 2019-01-07 07:45:01.116596 32 152.53 152.54 19 NaN NaN OPEN
3 2019-01-07 07:45:01.116860 32 152.53 152.54 21 NaN NaN OPEN
4 2019-01-07 07:45:01.116905 34 152.53 152.54 21 NaN NaN OPEN
5 2019-01-07 07:45:01.116982 34 152.53 152.54 31 NaN NaN OPEN
6 2019-01-07 07:45:01.147901 38 152.53 152.54 31 NaN NaN OPEN
7 2019-01-07 07:45:01.189971 38 152.53 152.54 31 ask 15.0 OPEN
8 2019-01-07 07:45:01.189971 38 152.53 152.54 16 NaN NaN OPEN
9 2019-01-07 07:45:01.190766 37 152.53 152.54 16 NaN NaN OPEN
10 2019-01-07 07:45:01.190856 37 152.53 152.54 15 NaN NaN OPEN
11 2019-01-07 07:45:01.190856 37 152.53 152.54 16 ask 1.0 OPEN
12 2019-01-07 07:45:01.193938 37 152.53 152.55 108 NaN NaN OPEN
13 2019-01-07 07:45:01.193938 37 152.53 152.54 15 ask 15.0 OPEN
14 2019-01-07 07:45:01.194326 2 152.54 152.55 108 NaN NaN OPEN
15 2019-01-07 07:45:01.194453 2 152.54 152.55 97 NaN NaN OPEN
16 2019-01-07 07:45:01.194479 6 152.54 152.55 97 NaN NaN OPEN
17 2019-01-07 07:45:01.194507 19 152.54 152.55 97 NaN NaN OPEN
18 2019-01-07 07:45:01.194532 19 152.54 152.55 77 NaN NaN OPEN
19 2019-01-07 07:45:01.194598 19 152.54 152.55 79 NaN NaN OPEN
对不起,表格不清楚,但最右边的第二列是trade_size,在它的左边是trade,它显示了交易的一面(买或卖)。如果 trade_size 和 trade 都是 NaN,则表明在该时间戳没有发生任何交易。
如果 df['trade'] == "ask",交易价格将是 'ask' 列中的价格,如果 df['trade] == "bid",交易价格将是 '列中的价格出价'。既然有2个价格,请问如何计算vwap,df['vwap']?
我的想法是使用 np.cumsum()。
【问题讨论】:
-
VMAP 的公式是什么?
-
您应该使用哪个价格 - 出价还是要价?
-
如果 df['trade'] == "ask",使用 df['ask]。否则,如果 df['trade] == "bid",则使用 df["bid"]。如果df['trade'] == NaN,表示没有交易
标签: python-3.x pandas numpy dataframe quantitative-finance