Virtufin Indicator Workers
Deployable indicator workers, built on Virtufin.Indicator.DevKit. Each
folds closed candles into one of lib's indicators and publishes the value as
a scenario-scoped event.
flowchart LR
CANDLES(["act.exchange.binance.candle.closed.<PAIR>.<interval>"])
SMA["SimpleMovingAverage"]
AR["AbsoluteReturn"]
RR["RelativeReturn"]
LR["LogReturn"]
SE["ShannonEntropy"]
TF["TradeFlow"]
OUT(["sc.<scenario>.indicator.<name>.changed.<PAIR>"])
STATE[("State\nsc.<scenario>.indicator.<name>.<PAIR>")]
CANDLES --> SMA & AR & RR & LR & SE
TF --> OUT
CANDLES --> TF
SMA & AR & RR & LR & SE --> OUT
SMA & AR & RR & LR & SE --> STATE
TF --> STATE
Workers
| Worker | Value | Parameter |
|---|---|---|
| SimpleMovingAverage | Mean close of the last N candles | N candles, default 20 |
| AbsoluteReturn | close − close N candles ago (quote currency); null until N + 1 candles |
lag N, default 1 |
| RelativeReturn | (close − close N candles ago) / close N candles ago; null until N + 1 candles |
lag N, default 1 |
| LogReturn | ln(close / close N candles ago); null until N + 1 candles |
lag N, default 1 |
| ShannonEntropy | Entropy in bits of candle direction over the last N candles | N candles, default 20 |
| TradeFlow | Units, quote notional and trade count over a time window (trades, not candles) | seconds, default 60 |
Candles come from market-data-workers' BinanceCandles. These values are
indicators rather than market data because they depend on a choice (the
window or lag), which belongs to a scenario.