[ {"op": "doc", "text": "NY first-session-bar momentum: SMA(5)-SMA(20) sign, traded only on the first 09:30 America/New_York 15m session bar"}, {"op": "source", "role": "price", "kind": "F64"}, {"op": "add", "type": "SMA", "name": "fast", "bind": {"length": {"I64": 5}}}, {"op": "add", "type": "SMA", "name": "slow", "bind": {"length": {"I64": 20}}}, {"op": "feed", "role": "price", "into": ["fast.series", "slow.series"]}, {"op": "add", "type": "Sub", "name": "sub"}, {"op": "connect", "from": "fast.value", "to": "sub.lhs"}, {"op": "connect", "from": "slow.value", "to": "sub.rhs"}, {"op": "add", "type": "Sign", "name": "sgn"}, {"op": "connect", "from": "sub.value", "to": "sgn.value"}, {"op": "add", "type": "Session", "name": "sess", "args": {"tz": "America/New_York", "open": "09:30"}, "bind": {"period_minutes": {"I64": 15}}}, {"op": "feed", "role": "price", "into": ["sess.trigger"]}, {"op": "add", "type": "EqConst", "name": "isfirst", "bind": {"target": {"I64": 1}}}, {"op": "connect", "from": "sess.bars_since_open", "to": "isfirst.value"}, {"op": "add", "type": "Const", "name": "flat", "bind": {"value": {"F64": 0.0}}}, {"op": "feed", "role": "price", "into": ["flat.clock"]}, {"op": "add", "type": "Select", "name": "gate"}, {"op": "connect", "from": "isfirst.value", "to": "gate.cond"}, {"op": "connect", "from": "sgn.value", "to": "gate.then"}, {"op": "connect", "from": "flat.value", "to": "gate.otherwise"}, {"op": "add", "type": "Bias", "name": "bias", "bind": {"scale": {"F64": 1.0}}}, {"op": "connect", "from": "gate.value", "to": "bias.signal"}, {"op": "tap", "from": "sub.value", "as": "spread"}, {"op": "tap", "from": "isfirst.value", "as": "first_bar"}, {"op": "tap", "from": "gate.value", "as": "gated_signal"}, {"op": "tap", "from": "slow.value", "as": "slow_ma"}, {"op": "expose", "from": "bias.bias", "as": "bias"} ]