【数据竞赛】数据竞赛中最贵的四个特征
作者:杰少
四大量化强特
本文介绍四个在量化问题中非常重要的特征,对量化有兴趣的朋友可以参考学习,此处的资料主要来源于Optiver团队在Kaggle赛事中的分享。
bid/ask spread
由于不同的股票在市场上的交易水平不同,我们采用最佳报价(best offer price)和最佳买入价(best bid price)的比值来计算买卖价差。
买卖价差的计算公式可采用以下形式:
注:最佳买入价是有人愿意购买的最高价格,最佳报价(或出价)是有人愿意出售的最低价格。
Weighted averaged price
订单(Order) Book是股票估值的重要来源之一。公允的账面价值评估必须考虑两个因素:订单的水平和规模。我们可以使用加权平均价格(WAP)来计算股票的瞬时估值,并以实际波动率为目标。
WAP的公式如下,它考虑了最高级别的价格和数量信息:
在大多数情况下,在连续交易时间内,订单簿不应出现bid order高于offer或ask order的情况。
Log returns
假设是股票在时刻的价格,我们通过下面的方式计算和时刻的log return,
通常我们会计算在10分钟之内的log return。Log returns有很多优势,例如:
它们可以在时间轴上相加: 一般的returns不可能低于-100%,但是log return是不受限的;
Realized volatility
模型的有价值输入是股票对数收益的标准差。对于在较长或较短时间间隔内计算的对数收益率,标准差会有所不同,因此通常:
将其标准化为1年期,而年化标准差就被称为波动率(volatility)。
我们一般会使用WAP作为股票的价值来计算log returns。
1.bid/ask spread
def ba_spread(best_offer, best_bid):
ba_spread = best_offer / best_bid - 1.0
return ba_spread
2.WAP
def wap(book):
wap = (book['bid_price1'] * book['ask_size1'] +\
book['ask_price1'] * book['bid_size1']) / (book['bid_size1']+ book['ask_size1'])
return wap
3.Log returns
def log_return(list_stock_prices):
return np.log(list_stock_prices).diff()
4.Realized volatility
def realized_volatility(series_log_return):
return np.sqrt(np.sum(series_log_return**2))
股票等问题的建模。
Introduction to financial concepts and data 往期精彩回顾 本站qq群851320808,加入微信群请扫码:
评论