[
  {"op":"source","role":"price","kind":"F64"},
  {"op":"add","type":"SMA","name":"sma_fast","bind":{"length":{"I64":2}}},
  {"op":"add","type":"SMA","name":"sma_slow","bind":{"length":{"I64":4}}},
  {"op":"add","type":"Sub","name":"diff"},
  {"op":"add","type":"Bias","name":"b","bind":{"scale":{"F64":0.5}}},
  {"op":"add","type":"momentum_lab::Negate","name":"inv"},
  {"op":"feed","role":"price","into":["sma_fast.series","sma_slow.series"]},
  {"op":"connect","from":"sma_fast.value","to":"diff.lhs"},
  {"op":"connect","from":"sma_slow.value","to":"diff.rhs"},
  {"op":"connect","from":"diff.value","to":"b.signal"},
  {"op":"connect","from":"b.bias","to":"inv.value"},
  {"op":"expose","from":"inv.value","as":"bias"}
]
