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