美国原油成交量怎么看?
这个问题问得有点儿奇怪,不过我刚好最近在做相关研究,就以此回答问题吧! 首先,关于“交易量”的概念要弄清楚。这里涉及两个概念:现货市场和期货市场。对于现货市场而言(例如Energy Pro),一单的交易量就等于成交的桶数乘以单价;而对于期货市场来说,一单的交易量就等于买入或卖出合约的数量。
接下来,我们要判断您所说的“交易量”究竟指的是哪个市场的交易量。以WTI原油为例,它可以指现货或者期货任意一个市场的交易量。但如果是BRENT原油,那它就只能特指期货的市场交易量了。 因为WTI和BRENT是不同交易所的合约,有各自的结算价,所以可以方便地通过计算得到现货市场交易量(BRENT): 当然,这个例子中我们用的是某几个月平均的月成交额来估算(因为每个月的成交额不均匀,如果直接用某一个月的成交额作为估计会有偏差).为了更精确,我们可以用加权的方法来计算。具体方法如下: 先分别计算出各月份的月成交额并加总。然后把所有月份按日期加总,就可以得出每日的成交额。最后,把每天的成交额加总,就得到了整个样本期的日成交额。再把日成交额开方,就得到了日均成交额。再对所有的样本进行计算,就可以得到最后的估值结果 除了计算日均成交额外,还可以进一步计算出其他特征值。如最热门的交易时段(time-series),以及每月的交易量(请参考下图) 图中显示了2015年8月到2016年7月的每月的成交额(单位:百万美元) 最后,附上代码和运行结果,感兴趣的朋友也可以自己算算看。 code is below: ##Load packages ###
from pandas import read_csv ####
import numpy as np ###
import matplotlib.pyplot as plt #####
%matplotlib inline from __future__ import division
plt.style.use('fivethirtyeight') def cal_volume(data): daterange=list(zip(*data['Date'].strptime(data['Date'],'%Y%m%d')))[0] for i in range(len(daterange)): if data['Open']>0 and (i+1)%7==0: a,b=divmod(i,30) c=int(a/14) if b!=0: c+=1 volume=np.sqrt((data['High']-data['Low'])*c) else: ##No open price for that day,so we take the previous open value 当当天没有开盘成交价时,我们取上一日的开盘价 volume=np.sqrt(data['High']*c) return volume data=read_csv("C:\\Users\\Sugardaddy\\Desktop\\oil.csv") oil_price=cal_volume(data) print(oil_price)