Overview
This page documents 8 operators (role:BALANCE).
Quick Reference
CashBalance
Query cash balance from STATE. Role:BALANCE | Ephemeral: No
Parameters
Usage
Source Code
Fullcompute() implementation — no hidden logic.
apps/trading/operators/balance/query.py
EquityCalculator
Calculate equity based on market type (auto-detected from Input source). Market type is automatically detected from the cash Input source:- “STATE:gateio:spot:cash” → market_type=“spot”
- “STATE:gateio:futures:cash” → market_type=“futures”
- Cash is reduced when positions are opened
- Position value is added to remaining cash
- Margin doesn’t change when positions are opened
- Unrealized PnL is added to margin
- cash: Cash/margin balance from STATE:venue:cash
- positions: Position quantities from STATE:venue:pos_quantity
- prices: Current prices from FIELD:close
- entry_prices: Entry prices from STATE:venue:pos_entry_price
BALANCE | Ephemeral: No
Parameters
Usage
Source Code
Fullcompute() implementation — no hidden logic.
apps/trading/operators/balance/query.py
TotalEquityCalculator
Calculate total equity across multiple venues. Aggregates equity from multiple EquityCalculator inputs to provide a unified portfolio-level equity value. Useful for:- Multi-venue strategies (spot + futures)
- Cross-exchange arbitrage
- Portfolio-level risk management
Calculate equity for each venue separately
spot_equity = EquityCalculator( cash=Input(“STATE:binance:spot:cash”, …), positions=Input(“STATE:binance:spot:pos_quantity”, …), prices=Input(“FIELD:binance:spot:close”, …), entry_prices=Input(“STATE:binance:spot:pos_entry_price”, …), symbols=spot_symbols, ) futures_equity = EquityCalculator( cash=Input(“STATE:binance:futures:cash”, …), positions=Input(“STATE:binance:futures:pos_quantity”, …), prices=Input(“FIELD:binance:futures:close”, …), entry_prices=Input(“STATE:binance:futures:pos_entry_price”, …), symbols=futures_symbols, )Aggregate into total equity
total_equity = TotalEquityCalculator( equity_inputs=[ Input(“spot_equity”, timeframe=“1m”, lookback=1), Input(“futures_equity”, timeframe=“1m”, lookback=1), ] ) Role:BALANCE | Ephemeral: No
Parameters
Usage
Source Code
Fullcompute() implementation — no hidden logic.
apps/trading/operators/balance/query.py
AvailableMargin
Query available margin from STATE. Role:BALANCE | Ephemeral: No
Parameters
Usage
Source Code
Fullcompute() implementation — no hidden logic.
apps/trading/operators/balance/query.py
PositionQuantity
Query position quantities from STATE. Role:BALANCE | Ephemeral: No
Parameters
Usage
Source Code
Fullcompute() implementation — no hidden logic.
apps/trading/operators/balance/query.py
PositionValue
Query position notional values from STATE. Role:BALANCE | Ephemeral: No
Parameters
Usage
Source Code
Fullcompute() implementation — no hidden logic.
apps/trading/operators/balance/query.py
BookSize
Compute book size from balance inputs. Role:BALANCE | Ephemeral: No
Parameters
Usage
Source Code
Fullcompute() implementation — no hidden logic.
apps/trading/operators/balance/query.py
MarginCalculator
Calculate margin status for futures positions. Uses exchange-specific margin configuration from venues.py for accurate margin ratio calculation and liquidation detection. Supports two MMR modes:- Dynamic (default): Per-symbol MMR from CCXT fetch_leverage_tiers()
- Static (use_dynamic_tiers=False): Flat MMR from venues.py MarginConfig
- Fetches real-time tier data for supported exchanges (Gateio, Bybit, Kraken, Binance, Hyperliquid)
- Falls back to static MarginConfig for unsupported exchanges (Coinbase, Gemini)
- Caches tier data for 1 hour to minimize API calls
- Binance/OKX (inverted): margin_ratio = MMR / equity * 100 (liquidation >= 100%)
- Bybit/Gateio/Kraken (normal): margin_ratio = equity / MMR (liquidation < threshold)
- Exchange-specific default MMR (maintenance margin rate)
- Liquidation fees (deducted from equity before ratio calculation)
- Exchange-specific liquidation thresholds (1.0 or 1.5)
- cash: Cash balance from STATE:venue:cash
- positions: Position quantities from STATE:venue:pos_quantity
- prices: Current prices from FIELD:close
- entry_prices: Entry prices from STATE:venue:pos_entry_price
- For inverted exchanges: 0-100+ (100 = liquidation threshold)
- For normal exchanges: 0-inf (threshold varies by exchange)
BALANCE | Ephemeral: No
Parameters
Usage
Source Code
Fullcompute() implementation — no hidden logic.
apps/trading/operators/futures.py
Related Pages
Operator Protocol
How operators implement the compute() interface
StatefulGraph
How operators compose into a DAG

