December 2018
Beginner to intermediate
684 pages
21h 9m
English
Time bars involve trade aggregation by period:
def get_bar_stats(agg_trades): vwap = agg_trades.apply(lambda x: np.average(x.price, weights=x.shares)).to_frame('vwap') ohlc = agg_trades.price.ohlc() vol = agg_trades.shares.sum().to_frame('vol') txn = agg_trades.shares.size().to_frame('txn') return pd.concat([ohlc, vwap, vol, txn], axis=1)resampled = trades.resample('1Min')time_bars = get_bar_stats(resampled)
We can display the result as a price-volume chart:
def price_volume(df, price='vwap', vol='vol', suptitle=title): fig, axes = plt.subplots(nrows=2, sharex=True, figsize=(15, 8)) axes[0].plot(df.index, df[price]) axes[1].bar(df.index, df[vol], width=1 / (len(df.index)), color='r') xfmt = mpl.dates.DateFormatter('%H:%M') axes[ ...