Skip to content

Low-Level API

Direct access to each STRATA layer for custom integration.

Full pipeline

from strata import initial_state, update_state, decide, StrataGUARD, StrataMEMORY, sense

# Initialize
state  = initial_state()
memory = StrataMEMORY()
guard  = StrataGUARD(asset="AAPL")

# Per-bar loop
for i in range(window_size, len(candles)):
    window = candles[i - window_size : i]
    inp    = sense(window)               # OHLCV → semantic signals
    ms     = memory.snapshot()           # pattern memory
    state  = update_state(state, inp, ms)
    dec    = decide(state)               # action proposal
    ok, reason = guard.evaluate(state, dec, dec["confidence"])

    final = dec["action"] if ok else "HOLD"
    print(f"{final}  conf={dec['confidence']:.2f}  reason={reason}")

With tick data (bid/ask)

from strata import sense, sense_tick

# sense() auto-detects bid/ask — backward compatible
candle["bid"] = 150.18
candle["ask"] = 150.22
signals = sense(window)
# signals["source"] == "spread"   ← anticipatory (before price moves)

# Extended: + order book imbalance
candle["bid_size"] = 2500
candle["ask_size"] = 800
signals = sense_tick(window)
# signals["spread_pressure"] = 0.12
# signals["side_imbalance"]  = -0.51   (bid-heavy = buy pressure)

State dimensions

Key Range Meaning
bias [-1, 1] Directional conviction
momentum [0, 1] Breakout structural energy
trap_risk [0, 1] Adverse selection pressure
uncertainty [0, 1] Volatility ambiguity

StrataMEMORY pattern bank

memory = StrataMEMORY()
memory.update(inp, state)     # feed each bar
snapshot = memory.snapshot()  # returns pattern weights

StrataGUARD hard rules

guard = StrataGUARD(asset="TSLA")   # HIGH vol profile
guard = StrataGUARD(asset="SPY")    # LOW vol ETF profile
guard = StrataGUARD()               # regime defaults only

approved, reason = guard.evaluate(state, decision, confidence)
# (True,  "OK")
# (False, "TRAP_RISK_HIGH (0.67 > 0.60 [RANGING])")