{
  "additionalProperties": false,
  "description": "Return percentage over a lookback window.\n\nComputes (close - close[lookback_bars]) / close[lookback_bars] * 100.\nUse for momentum filters or mean-reversion entries.",
  "properties": {
    "lookback_bars": {
      "default": 10,
      "maximum": 5000,
      "minimum": 1,
      "title": "Lookback Bars",
      "type": "integer"
    },
    "mode": {
      "default": "level",
      "description": "Firing mode. 'level' (default) = true every bar the return% comparison holds (CompareCondition). 'cross' = edge, fires once on the bar return% first crosses the threshold in the op direction (CrossCondition).",
      "enum": [
        "level",
        "cross"
      ],
      "title": "Mode",
      "type": "string"
    },
    "op": {
      "enum": [
        ">",
        ">=",
        "<",
        "<=",
        "between",
        "==",
        "!="
      ],
      "title": "Op",
      "type": "string"
    },
    "type": {
      "const": "ret_pct",
      "default": "ret_pct",
      "title": "Type",
      "type": "string"
    },
    "value": {
      "title": "Value",
      "type": "number"
    }
  },
  "required": [
    "op",
    "value"
  ],
  "title": "RetPctCondition",
  "type": "object"
}
