Building Intra-Bar Features¶
This tutorial provides a comprehensive guide to building intra-bar features using FinMLKit. Intra-bar features are derived from raw trade data within a bar, such as OHLCV features, directional features, and footprint data.
Restoring Preprocessed Data¶
To begin, load the preprocessed trade data from an HDF5 file:
from finmlkit.bar.data_model import TradesData
trades = TradesData.load_trades_h5("BTCUSDT.h5")
print(trades.data.head())
Building Time Bars¶
Time bars aggregate trade data into fixed time intervals. For example, to create 5-minute time bars:
from finmlkit.bar.kit import TimeBarKit
tb5min_kit = TimeBarKit(trades, period=pd.Timedelta(minutes=5))
tb5min_klines = tb5min_kit.build_ohlcv()
print(tb5min_klines.head())
Directional Features¶
Directional features capture the buy/sell imbalance within a bar:
tb5min_directional = tb5min_kit.build_directional_features()
print(tb5min_directional.head())
Size Distribution Features¶
Estimate the typical trade size and compute size distribution features:
from finmlkit.bar.io import TimeBarReader
tbd = TimeBarReader("BTCUSDT.h5").read(timeframe="1d")
typical_trade_size = tbd.median_trade_size.median()
tb5min_sizedis = tb5min_kit.build_trade_size_features(
theta=np.ones_like(tb5min_klines.close.values) * typical_trade_size
)
print(tb5min_sizedis.head())
Footprint Features¶
Footprint features provide insights into volume distribution and imbalances:
tb5min_fp = tb5min_kit.build_footprints()
print(tb5min_fp.get_df().head())
Next Steps¶
With intra-bar features computed, you can proceed to build inter-bar features. Continue to the next tutorial: Building Inter-Bar Features.