[
  {"op": "source", "role": "open", "kind": "F64"},
  {"op": "source", "role": "high", "kind": "F64"},
  {"op": "source", "role": "low", "kind": "F64"},
  {"op": "source", "role": "close", "kind": "F64"},
  {"op": "add", "type": "Resample", "name": "c15", "bind": {"period_minutes": {"I64": 15}}},
  {"op": "feed", "role": "open", "into": ["c15.open"]},
  {"op": "feed", "role": "high", "into": ["c15.high"]},
  {"op": "feed", "role": "low", "into": ["c15.low"]},
  {"op": "feed", "role": "close", "into": ["c15.close"]},
  {"op": "add", "type": "Sub", "name": "body"},
  {"op": "connect", "from": "c15.close", "to": "body.lhs"},
  {"op": "connect", "from": "c15.open", "to": "body.rhs"},
  {"op": "add", "type": "Sign", "name": "dir"},
  {"op": "connect", "from": "body.value", "to": "dir.value"},
  {"op": "add", "type": "SessionFrankfurt", "name": "sess", "bind": {"period_minutes": {"I64": 15}}},
  {"op": "connect", "from": "c15.close", "to": "sess.trigger"},
  {"op": "add", "type": "EqConst", "name": "isfirst", "bind": {"target": {"I64": 0}}},
  {"op": "connect", "from": "sess.bars_since_open", "to": "isfirst.value"},
  {"op": "add", "type": "When", "name": "firstmom"},
  {"op": "connect", "from": "dir.value", "to": "firstmom.value"},
  {"op": "connect", "from": "isfirst.value", "to": "firstmom.gate"},
  {"op": "add", "type": "CumSum", "name": "cum"},
  {"op": "connect", "from": "firstmom.value", "to": "cum.series"},
  {"op": "add", "type": "Bias", "name": "bias", "bind": {"scale": {"F64": 1.0}}},
  {"op": "connect", "from": "dir.value", "to": "bias.signal"},
  {"op": "expose", "from": "bias.bias", "as": "bias"}
]
