Pulse¶
Flow · Edge Detection
Emit true only on bars where the input transitions from false to true — fires once per crossing instead of every bar the condition stays true. Essential for entry signals (otherwise 'RSI > 70' fires N times in a row and the engine tries to open N positions).
Pulse converts a continuous condition into a single firing. It emits true only on the bar where the input goes from false to true — the rising edge — and stays quiet for every bar the condition then remains true. It's essential for entries: a raw condition like "RSI > 70" is true for many bars in a row, and if you wired that straight into an entry the engine would try to open a new position every one of those bars. Pulse fires once.
How it works¶
The block watches the input and outputs true on each false→true transition; the rest of the true run (and all false bars) is false. So a condition that's true for 8 bars produces exactly one Pulse, on bar 1. It's a pure edge detector with no parameters.
When to use it¶
Use Pulse to turn any state condition into a one-shot entry. Comparison blocks (Greater Than, Less Than, Between) and And gates all produce continuous states — wrap the final condition in a Pulse so you enter once when it first becomes true, not repeatedly while it holds. Crossover blocks like Crosses Above are already edge events and don't need it.
This block is functionally identical to Edge Trigger — both detect the rising edge. They live in different categories (Pulse in Flow, Edge Trigger in Signals) so you'll find one near whatever you're building; use whichever is closer to hand.
Example¶
One entry per setup: build "ADX > 25 AND price > 200-EMA" with comparisons and an And gate (a continuous state), then wrap it in Pulse so you enter only on the first bar the setup appears. Route to a Buy Signal and backtest in the Tester, confirming it opens one position rather than stacking.
Tips & gotchas¶
- The fix for repeat entries — a state wired straight to an entry opens a position every bar; Pulse makes it one.
- Crossovers don't need it — Crosses Above/Crosses Below are already edges.
- Put it last, after your And/Or logic.
- Same as Edge Trigger — identical rising-edge behaviour, just a different category.
Related blocks¶
Inputs¶
| Socket | Type | What to wire in |
|---|---|---|
| In | signal |
Boolean signal to edge-detect. |
Outputs¶
| Output | Type | Plots as | Description |
|---|---|---|---|
| Pulse | signal |
Signal arrows | True only on rising-edge bars. |
Reference auto-generated from the block catalog · category Flow.