Support

Stream live data to a file

Overview

In this example we will use the Live client to save live data to a file using an output stream. We will then open this file as a DBNStore. This allows for live data to be archived for replay and testing purposes.

Databento Binary Encoding (DBN)

The binary data will be written to the stream in the DBN format. This is a zero-copy format that is extremely fast and efficient on bandwidth. The easiest way to read data encoded in DBN is through our client libraries or the dbn-cli tool.

Example

import databento as db

# First, create a live client and connect
live_client = db.Live(key="$YOUR_API_KEY")

# Next, we will subscribe to the OHLCV-1s schema for a few symbols
live_client.subscribe(
    dataset="GLBX.MDP3",
    schema="ohlcv-1s",
    stype_in="continuous",
    symbols=["ES.c.0", "ES.c.1", "CL.c.0", "CL.c.1"],
)

# Now, we will open a file for writing and start streaming
live_client.add_stream("example.dbn")
live_client.start()

# We will listen for 10 seconds before closing the connection
# Any ohlcv-1s bars received during this time will be saved
live_client.block_for_close(timeout=10)

# Finally, we will open the DBN file
dbn_store = db.DBNStore.from_file("example.dbn")
print(dbn_store.to_df(schema="ohlcv-1s"))

Result

                           rtype  publisher_id  instrument_id     open     high      low    close  volume symbol
ts_event
2023-12-18 14:40:19+00:00     32             1          17077  4785.75  4785.75  4785.75  4785.75     143   ESH4
2023-12-18 14:40:19+00:00     32             1         686071    74.19    74.19    74.19    74.19       6   CLG4
2023-12-18 14:40:20+00:00     32             1          17077  4785.75  4785.75  4785.50  4785.75       8   ESH4
2023-12-18 14:40:20+00:00     32             1         686071    74.19    74.20    74.19    74.20       6   CLG4
2023-12-18 14:40:21+00:00     32             1          17077  4785.75  4785.75  4785.75  4785.75     105   ESH4
2023-12-18 14:40:21+00:00     32             1         686071    74.20    74.21    74.20    74.21       8   CLG4