Price Change from Low
The price_change_from_low trigger fires when the current price has risen by a specified percentage from the lowest price within a lookback window. It is a global trigger — no open position is required.
Use it to detect recovery-from-bottom signals: "price has bounced 3% off its low over the last 12 hours."
This trigger measures the rise from a recent low in the market, not from your position's entry price. For position-relative tracking, see Position Price Change instead.
TOML Syntax
[[actions.triggers]]
type = "price_change_from_low"
value = "3%" # Required: rise threshold (always positive)
timeframe = "1h" # Optional: candle size (default: 1m)
lookback = 12 # Optional: number of candles to scan (default: 24)
max_value = "15%" # Optional: maximum allowed rise (range cap)
max_count = 1 # Optional: max fires per position
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | string | Yes | — | Must be "price_change_from_low" |
value | string | Yes | — | Rise threshold in "N%" format (always positive) |
timeframe | string | No | "1m" | Candle size for the lookback window |
lookback | integer | No | 24 | Number of timeframe-sized candles to scan |
max_value | string | No | — | Maximum rise in "N%" format (range cap) |
max_count | integer | No | unlimited | Maximum times this trigger can fire per position |
How It Works
- Compute the lookback window:
total_candles = lookback × timeframe_in_minutes - Find the lowest close in that window
- Calculate the rise:
change_pct = (current_close - lowest_close) / lowest_close × 100 - Fire if
change_pct >= threshold(and withinmax_valuerange if set)
graph TD
A["Scan last N candles<br/>(lookback × timeframe)"] --> B["Find lowest close"]
B --> C["Calculate % rise<br/>from low to current"]
C --> D{"Rise meets<br/>threshold?"}
D -->|Yes| E{"Within max_value<br/>range?"}
D -->|No| F["No action"]
E -->|Yes or no max_value| G["Trigger fires"]
E -->|No — too extreme| F
Example Calculation
With timeframe = "1h", lookback = 12, value = "3%":
- Window: last 12 × 60 = 720 one-minute candles (12 hours)
- Lowest close in window: $45,000
- Current close: $46,800
- Change: ($46,800 - $45,000) / $45,000 × 100 = +4.0%
- +4.0% ≥ +3.0% → trigger fires
The value Format
The value must be positive (you're measuring a rise from a low):
| Value | Meaning |
|---|---|
"3%" | Price rose at least 3% from the window's low |
"5%" | Price rose at least 5% from the window's low |
"1.5%" | Price rose at least 1.5% from the window's low |
Examples
Buy After 3% Bounce from 12h Low
[[actions]]
type = "open_long"
amount = "100 USDC"
[[actions.triggers]]
type = "price_change_from_low"
value = "3%"
timeframe = "1h"
lookback = 12
Confirm Reversal — Not a Dead Cat Bounce
# Enter on a 5% bounce, but skip if it bounced more than 20%
# (might be too late / overbought)
[[actions]]
type = "open_long"
amount = "100 USDC"
[[actions.triggers]]
type = "price_change_from_low"
value = "5%"
max_value = "20%"
timeframe = "1h"
lookback = 24
Combine with Volume Confirmation
[[actions]]
type = "open_long"
amount = "150 USDC"
# Price bounced 3% from 6h low
[[actions.triggers]]
type = "price_change_from_low"
value = "3%"
timeframe = "1h"
lookback = 6
# AND volume is above average (confirmation)
[[actions.triggers]]
indicator = "volume_sma_20"
operator = ">"
target = "volume_sma_50"
timeframe = "1h"
Short-Window Recovery (5m candles)
[[actions]]
type = "open_long"
amount = "50 USDC"
[[actions.triggers]]
type = "price_change_from_low"
value = "1.5%"
timeframe = "5m"
lookback = 24
max_count = 1
Tips
price_change_from_low is a momentum confirmation trigger. A price bouncing off a low with strength suggests buying interest. Combine it with volume or RSI triggers for higher confidence entries.
Use max_value to avoid chasing. If the price already bounced 20% from the low, the easy gains may already be captured.
Like all price triggers, this fires based on candle closes, not intra-candle wicks. The "lowest close" is the lowest closing price in the window.
Related Triggers
| Trigger | What It Measures |
|---|---|
| Price Change from High | % drop from the highest price in a lookback window |
| Price Change | % change over a fixed lookback period |
| Position Price Change | % change from your entry price |
| Trailing Take-Profit | Locks in profit as price moves up |