Skip to content

Virtufin Market Data DevKit

Builds world-scoped market-data workers on Virtufin.Behavior.DevKit and owns the market-data contracts, starting with the OHLCV candle.

flowchart LR
    RAW(["venue frames\n(e.g. Binance klines)"])
    WORKER["venue worker\n: MarketDataWorkerBase"]
    ENV["MarketDataEnvelope\nexchange, worlds, eventtime"]
    OUT(["act.exchange.<venue>.ohlcv.candle.<interval>.<PAIR>"])
    IND["indicator workers\n(indicator-engines)"]
    STRATEGY["strategies\n(strategy-devkit)"]
    RAW --> WORKER --> ENV --> OUT
    OUT --> IND
    OUT --> STRATEGY

Package

Package What it provides
Virtufin.MarketData.DevKit MarketDataWorkerBase, MarketDataEnvelope, MarketDataConfig, and the candle contract (Candle, CandleJson, CandleTopics, CandleInterval)

Market data or indicator?

Market data is a fact about one market stream, raw or derived with no tuning choice: every consumer would derive the identical value. Trades, book updates and candles at a venue's standard intervals are market data, and world-scoped. An analytic that depends on a strategy's choice, such as SMA(n), log return or entropy, is an indicator: scenario-scoped, built on indicator-devkit. The rule is the Glossary requirement of the openspec behaviour spec.

Where to start

Concrete venue workers are consumers of this package, in market-data-engines.