Emit an intent/exposure stream as the strategy output (signal quality) #4
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The substrate (cycles 0001-0006) computes and records streams but produces no
trading result. Cycle 0007 reframes C10 (docs/design/INDEX.md): a strategy's
primary, backtestable output is an INTENT / EXPOSURE stream, not a position-event
table. The DAG expresses exactly one state at time t (C8: <=1 record per eval),
so the strategy emits one signed, bounded exposure f64 in [-1,+1] per cycle. The
position-event table (buy/sell/close, position_id, partial closes) becomes a
decoupled, derived position-management layer (deferred) — see C10.
Delivered jointly with #5 in cycle 0007 (the signal-quality loop): this half is
the exposure node.
Scope
The decision/sizing node of C10's chain
signals -> decision/sizing node -> exposure stream. Its single output port (C8) is the exposure: it shapes a rawsignal score into a bounded exposure,
clamp(signal / scale, -1.0, +1.0),emitting one f64 per fired cycle. Position sizing / risk live here (the
scalesets which signal magnitude maps to full exposure). It ships in aura-std beside
Sma / Sub; the engine stays domain-free (it sees only f64 records, never
"exposure").
Anchors
table is a derived, deferred layer.
Acceptance
[ ] A node maps a raw signal score to a bounded exposure f64 in [-1,+1].
[ ] One exposure value per fired cycle; None until its input is present.
[ ] A
scaleparameter sets the saturation magnitude (sizing lives here).[ ] Deterministic given fixed input (C1).
Emit a broker-independent position-event table as a strategy outputto Emit an intent/exposure stream as the strategy output (signal quality)