{
  "additionalProperties": false,
  "description": "Volume percentile rank over a lookback window.\n\nRanks current volume against the last N bars. Values near 100 indicate\nunusually high volume, near 0 unusually low.",
  "properties": {
    "lookback_bars": {
      "default": 50,
      "maximum": 5000,
      "minimum": 1,
      "title": "Lookback Bars",
      "type": "integer"
    },
    "mode": {
      "default": "level",
      "description": "Firing mode. 'level' (default) = true every bar the percentile comparison holds (CompareCondition). 'cross' = edge, fires once on the bar the percentile 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": "volume_pctile",
      "default": "volume_pctile",
      "title": "Type",
      "type": "string"
    },
    "value": {
      "title": "Value",
      "type": "number"
    }
  },
  "required": [
    "op",
    "value"
  ],
  "title": "VolumePctileCondition",
  "type": "object"
}
