Conditions

Crossover

Detects the bar on which one indicator crosses above or below another. Internal type - `crossover`.

1 min readUpdated Jun 19, 2026

crossover fires on the single bar where the cross happens. The next bar, the condition is false even if the lines are still on opposite sides.

Shape

{ "type": "crossover", "indicator1": "ema_fast", "indicator2": "ema_slow", "direction": "above" }

Params

  • indicator1 - column that crosses.
  • indicator2 - column being crossed.
  • direction - above (indicator1 crosses above indicator2) or below.

When to use vs comparison

  • crossover = "the moment of the cross." Fires once.
  • comparison = "currently on this side." Fires continuously until the side flips.

Crossover is the right primitive for entries; comparison is the right primitive for filters.

Pitfalls

  • Whipsaws in chop: two EMAs near each other can cross many times in a few hours. Pair with a regime filter (ADX) or distance check (price_distance).
  • On-tick crossover is not supported for indicator-vs-indicator in a meaningful way - indicator values don't change inside a bar.
Crossover | Help Center | LucraX · LucraX