{"signals": [{"name": "adi_bearish", "category": "other", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Money Flowing Out", "display_name": "Accumulation/Distribution Falling", "short_description": "Volume-weighted buying and selling shows more selling over recent bars.", "metadata": {"rule_name": "adi_bearish", "description": "Check if ADI (Accumulation/Distribution) is falling (bearish volume).", "requires": ["high", "low", "close", "volume"], "params": {"window": {"type": "int", "description": "Lookback for trend", "optional": true, "min": 5, "max": 50, "default": 20}}}, "usage_count": null}, {"name": "adi_bullish", "category": "other", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Money Flowing In", "display_name": "Accumulation/Distribution Rising", "short_description": "Volume-weighted buying and selling shows more buying over recent bars.", "metadata": {"rule_name": "adi_bullish", "description": "Check if ADI (Accumulation/Distribution) is rising (bullish volume).", "requires": ["high", "low", "close", "volume"], "params": {"window": {"type": "int", "description": "Lookback for trend", "optional": true, "min": 5, "max": 50, "default": 20}}}, "usage_count": null}, {"name": "adosc_bearish", "category": "momentum", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Selling Pressure Building", "display_name": "Chaikin Oscillator Negative", "short_description": "Recent money flow is weaker than the longer trend, showing selling pressure.", "metadata": {"rule_name": "adosc_bearish", "description": "Check if Chaikin A/D Oscillator is negative (distribution regime).", "requires": ["high", "low", "close", "volume"], "params": {"fast": {"type": "int", "description": "Fast EMA period for AD", "optional": true, "min": 2, "max": 20, "default": 3}, "slow": {"type": "int", "description": "Slow EMA period for AD", "optional": true, "min": 5, "max": 50, "default": 10}}}, "usage_count": null}, {"name": "adosc_bullish", "category": "momentum", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Buying Pressure Building", "display_name": "Chaikin Oscillator Positive", "short_description": "Recent money flow is stronger than the longer trend, showing buying pressure.", "metadata": {"rule_name": "adosc_bullish", "description": "Check if Chaikin A/D Oscillator is positive (accumulation regime). Positive ADOSC = AD line's fast EMA above its slow EMA, indicating short-term buying pressure relative to longer-term trend.", "requires": ["high", "low", "close", "volume"], "params": {"fast": {"type": "int", "description": "Fast EMA period for AD", "optional": true, "min": 2, "max": 20, "default": 3}, "slow": {"type": "int", "description": "Slow EMA period for AD", "optional": true, "min": 5, "max": 50, "default": 10}}}, "usage_count": null}, {"name": "adosc_cross_down", "category": "momentum", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Selling Pressure Starts", "display_name": "Chaikin Oscillator Crosses Below Zero", "short_description": "Money flow just turned from buying to selling.", "metadata": {"rule_name": "adosc_cross_down", "description": "Detect ADOSC crossing below zero (distribution onset).", "requires": ["high", "low", "close", "volume"], "params": {"fast": {"type": "int", "description": "Fast EMA period for AD", "optional": true, "min": 2, "max": 20, "default": 3}, "slow": {"type": "int", "description": "Slow EMA period for AD", "optional": true, "min": 5, "max": 50, "default": 10}}}, "usage_count": null}, {"name": "adosc_cross_up", "category": "momentum", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Buying Pressure Starts", "display_name": "Chaikin Oscillator Crosses Above Zero", "short_description": "Money flow just turned from selling to buying.", "metadata": {"rule_name": "adosc_cross_up", "description": "Detect ADOSC crossing above zero (accumulation onset).", "requires": ["high", "low", "close", "volume"], "params": {"fast": {"type": "int", "description": "Fast EMA period for AD", "optional": true, "min": 2, "max": 20, "default": 3}, "slow": {"type": "int", "description": "Slow EMA period for AD", "optional": true, "min": 5, "max": 50, "default": 10}}}, "usage_count": null}, {"name": "adx_bullish_di", "category": "momentum", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Buyers In Control", "display_name": "ADX Bullish Directional Bias", "short_description": "Upward pressure is currently stronger than downward pressure.", "metadata": {"rule_name": "adx_bullish_di", "description": "Check if +DI is greater than -DI (bullish directional movement). When +DI > -DI, bulls have the upper hand.", "requires": ["high", "low", "close"], "params": {"window": {"type": "int", "description": "ADX period", "optional": true, "min": 5, "max": 50, "default": 14}}}, "usage_count": null}, {"name": "adx_strong_trend", "category": "momentum", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Strong Trend", "display_name": "ADX Strong Trend", "short_description": "The market is trending strongly, either up or down.", "metadata": {"rule_name": "adx_strong_trend", "description": "Check if ADX indicates a strong trend. ADX values above 25 typically indicate a strong trend (either up or down).", "requires": ["high", "low", "close"], "params": {"window": {"type": "int", "description": "ADX period", "optional": true, "min": 5, "max": 50, "default": 14}, "threshold": {"type": "float", "description": "Trend strength threshold", "optional": true, "min": 15.0, "max": 50.0, "default": 25.0}}}, "usage_count": null}, {"name": "alligator_bearish", "category": "other", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Steady Downtrend", "display_name": "Williams Alligator Bearish Alignment", "short_description": "Three trend lines are lined up pointing down, showing a strong downtrend.", "metadata": {"rule_name": "alligator_bearish", "description": "Check if Williams Alligator lines are in bearish alignment (lips < teeth < jaw). Strong downtrend, all lines spreading downward.", "requires": ["high", "low"], "params": {"jaw": {"type": "int", "description": "Jaw SMMA period", "optional": true, "min": 5, "max": 50, "default": 13}, "teeth": {"type": "int", "description": "Teeth SMMA period", "optional": true, "min": 3, "max": 30, "default": 8}, "lips": {"type": "int", "description": "Lips SMMA period", "optional": true, "min": 2, "max": 20, "default": 5}, "jaw_offset": {"type": "int", "description": "Jaw forward shift", "optional": true, "min": 0, "max": 20, "default": 8}, "teeth_offset": {"type": "int", "description": "Teeth forward shift", "optional": true, "min": 0, "max": 15, "default": 5}, "lips_offset": {"type": "int", "description": "Lips forward shift", "optional": true, "min": 0, "max": 10, "default": 3}}}, "usage_count": null}, {"name": "alligator_bullish", "category": "other", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Steady Uptrend", "display_name": "Williams Alligator Bullish Alignment", "short_description": "Three trend lines are lined up pointing up, showing a strong uptrend.", "metadata": {"rule_name": "alligator_bullish", "description": "Check if Williams Alligator lines are in bullish alignment (lips > teeth > jaw). Bill Williams's \"hungry alligator\" state: strong uptrend, all lines spreading upward.", "requires": ["high", "low"], "params": {"jaw": {"type": "int", "description": "Jaw SMMA period", "optional": true, "min": 5, "max": 50, "default": 13}, "teeth": {"type": "int", "description": "Teeth SMMA period", "optional": true, "min": 3, "max": 30, "default": 8}, "lips": {"type": "int", "description": "Lips SMMA period", "optional": true, "min": 2, "max": 20, "default": 5}, "jaw_offset": {"type": "int", "description": "Jaw forward shift", "optional": true, "min": 0, "max": 20, "default": 8}, "teeth_offset": {"type": "int", "description": "Teeth forward shift", "optional": true, "min": 0, "max": 15, "default": 5}, "lips_offset": {"type": "int", "description": "Lips forward shift", "optional": true, "min": 0, "max": 10, "default": 3}}}, "usage_count": null}, {"name": "alligator_sleeping", "category": "other", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "No Clear Trend", "display_name": "Williams Alligator Sleeping", "short_description": "Trend lines are tangled together, so the market has no clear direction.", "metadata": {"rule_name": "alligator_sleeping", "description": "Check if the Williams Alligator is sleeping (lines tangled, no trend). True when lines are neither strictly bullish-aligned nor bearish-aligned. Used as a no-trade filter during consolidation.", "requires": ["high", "low"], "params": {"jaw": {"type": "int", "description": "Jaw SMMA period", "optional": true, "min": 5, "max": 50, "default": 13}, "teeth": {"type": "int", "description": "Teeth SMMA period", "optional": true, "min": 3, "max": 30, "default": 8}, "lips": {"type": "int", "description": "Lips SMMA period", "optional": true, "min": 2, "max": 20, "default": 5}, "jaw_offset": {"type": "int", "description": "Jaw forward shift", "optional": true, "min": 0, "max": 20, "default": 8}, "teeth_offset": {"type": "int", "description": "Teeth forward shift", "optional": true, "min": 0, "max": 15, "default": 5}, "lips_offset": {"type": "int", "description": "Lips forward shift", "optional": true, "min": 0, "max": 10, "default": 3}}}, "usage_count": null}, {"name": "alma_cross_down", "category": "other", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Trend Turns Down", "display_name": "ALMA Bearish Crossover", "short_description": "Two smoothed price averages just crossed downward, pointing to a turn lower.", "metadata": {"rule_name": "alma_cross_down", "description": "Detect a bearish ALMA crossover (fast ALMA crosses below slow ALMA).", "requires": ["close"], "params": {"window_fast": {"type": "int", "description": "Fast ALMA window", "optional": true, "min": 2, "max": 100, "default": 9}, "window_slow": {"type": "int", "description": "Slow ALMA window", "optional": true, "min": 2, "max": 200, "default": 21}, "offset": {"type": "float", "description": "Weight center, 0=oldest, 1=newest", "optional": true, "min": 0.0, "max": 1.0, "default": 0.85}, "sigma": {"type": "float", "description": "Gaussian spread. Higher = smoother", "optional": true, "min": 0.1, "max": 20.0, "default": 6.0}}}, "usage_count": null}, {"name": "alma_cross_up", "category": "other", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Trend Turns Up", "display_name": "ALMA Bullish Crossover", "short_description": "Two smoothed price averages just crossed upward, pointing to a turn higher.", "metadata": {"rule_name": "alma_cross_up", "description": "Detect a bullish ALMA crossover (fast ALMA crosses above slow ALMA). Both ALMAs use the same offset and sigma; only the window differs.", "requires": ["close"], "params": {"window_fast": {"type": "int", "description": "Fast ALMA window", "optional": true, "min": 2, "max": 100, "default": 9}, "window_slow": {"type": "int", "description": "Slow ALMA window", "optional": true, "min": 2, "max": 200, "default": 21}, "offset": {"type": "float", "description": "Weight center, 0=oldest, 1=newest", "optional": true, "min": 0.0, "max": 1.0, "default": 0.85}, "sigma": {"type": "float", "description": "Gaussian spread. Higher = smoother", "optional": true, "min": 0.1, "max": 20.0, "default": 6.0}}}, "usage_count": null}, {"name": "ao_bearish", "category": "momentum", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Downward Momentum", "display_name": "Awesome Oscillator Bearish", "short_description": "Short-term price swings are weaker than longer-term ones, showing downward momentum.", "metadata": {"rule_name": "ao_bearish", "description": "Check if Awesome Oscillator indicates bearish momentum.", "requires": ["high", "low"], "params": {"window_fast": {"type": "int", "description": "Fast SMA window", "optional": true, "min": 2, "max": 15, "default": 5}, "window_slow": {"type": "int", "description": "Slow SMA window", "optional": true, "min": 20, "max": 60, "default": 34}, "threshold": {"type": "float", "description": "Bearish threshold", "optional": true, "min": 0.0, "max": 100.0, "default": 0.0}}}, "usage_count": null}, {"name": "ao_bullish", "category": "momentum", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Upward Momentum", "display_name": "Awesome Oscillator Bullish", "short_description": "Short-term price swings are stronger than longer-term ones, showing upward momentum.", "metadata": {"rule_name": "ao_bullish", "description": "Check if Awesome Oscillator indicates bullish momentum.", "requires": ["high", "low"], "params": {"window_fast": {"type": "int", "description": "Fast SMA window", "optional": true, "min": 2, "max": 15, "default": 5}, "window_slow": {"type": "int", "description": "Slow SMA window", "optional": true, "min": 20, "max": 60, "default": 34}, "threshold": {"type": "float", "description": "Bullish threshold", "optional": true, "min": 0.0, "max": 100.0, "default": 0.0}}}, "usage_count": null}, {"name": "ao_zero_cross", "category": "momentum", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Momentum Flips", "display_name": "Awesome Oscillator Zero Cross", "short_description": "Momentum just flipped direction, up or down as you choose.", "metadata": {"rule_name": "ao_zero_cross", "description": "Check if Awesome Oscillator crosses zero line.", "requires": ["high", "low"], "params": {"window_fast": {"type": "int", "description": "Fast SMA window", "optional": true, "min": 2, "max": 15, "default": 5}, "window_slow": {"type": "int", "description": "Slow SMA window", "optional": true, "min": 20, "max": 60, "default": 34}, "direction": {"type": "str", "description": "Direction: 'bullish' for cross above, 'bearish' for cross below", "optional": true, "default": "bullish", "options": ["bullish", "bearish"]}}}, "usage_count": null}, {"name": "aroon_crossover", "category": "momentum", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "New Trend Emerging", "display_name": "Aroon Crossover", "short_description": "Recent highs just overtook recent lows, or the reverse, hinting at a new trend.", "metadata": {"rule_name": "aroon_crossover", "description": "Check if Aroon lines cross (trend change signal).", "requires": ["high", "low"], "params": {"window": {"type": "int", "description": "Lookback period", "optional": true, "min": 10, "max": 50, "default": 25}, "direction": {"type": "str", "description": "Crossover direction, 'bullish' or 'bearish'", "optional": true, "default": "bullish", "options": ["bullish", "bearish"]}}}, "usage_count": null}, {"name": "aroon_down_trend", "category": "momentum", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Making Fresh Lows", "display_name": "Aroon Down Strong", "short_description": "Price has set a new low very recently, a sign of a strong downtrend.", "metadata": {"rule_name": "aroon_down_trend", "description": "Check if Aroon Down indicates strong downtrend.", "requires": ["high", "low"], "params": {"window": {"type": "int", "description": "Lookback period", "optional": true, "min": 10, "max": 50, "default": 25}, "threshold": {"type": "float", "description": "Strong trend threshold", "optional": true, "min": 50.0, "max": 100.0, "default": 70.0}}}, "usage_count": null}, {"name": "aroon_up_trend", "category": "momentum", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Making Fresh Highs", "display_name": "Aroon Up Strong", "short_description": "Price has set a new high very recently, a sign of a strong uptrend.", "metadata": {"rule_name": "aroon_up_trend", "description": "Check if Aroon Up indicates strong uptrend.", "requires": ["high", "low"], "params": {"window": {"type": "int", "description": "Lookback period", "optional": true, "min": 10, "max": 50, "default": 25}, "threshold": {"type": "float", "description": "Strong trend threshold", "optional": true, "min": 50.0, "max": 100.0, "default": 70.0}}}, "usage_count": null}, {"name": "atr_high_volatility", "category": "volatility", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Big Price Swings", "display_name": "ATR High Volatility", "short_description": "Typical bar-to-bar price swings are large relative to price.", "metadata": {"rule_name": "atr_high_volatility", "description": "Check if ATR indicates high volatility relative to price. High volatility (ATR as % of close > threshold) can indicate potential trading opportunities or increased risk.", "requires": ["high", "low", "close"], "params": {"window": {"type": "int", "description": "ATR period", "optional": true, "min": 5, "max": 50, "default": 14}, "threshold_pct": {"type": "float", "description": "ATR as percentage of close threshold", "optional": true, "min": 0.5, "max": 10.0, "default": 3.0}}}, "usage_count": null}, {"name": "atr_trailing_stop_flip_down", "category": "volatility", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Atr Trailing Stop Flip Down", "display_name": "atr_trailing_stop_flip_down", "short_description": "Detect ATR Trailing Stop flipping from long (+1) to short (-1). Bearish trend-following entry signal.", "metadata": {"rule_name": "atr_trailing_stop_flip_down", "description": "Detect ATR Trailing Stop flipping from long (+1) to short (-1). Bearish trend-following entry signal.", "requires": ["high", "low", "close"], "params": {"window": {"type": "int", "description": "ATR window", "min": 5, "max": 100, "optional": true, "default": 14}, "multiplier": {"type": "float", "description": "ATR multiplier", "min": 0.5, "max": 10.0, "optional": true, "default": 3.0}}}, "usage_count": null}, {"name": "atr_trailing_stop_flip_up", "category": "volatility", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Atr Trailing Stop Flip Up", "display_name": "atr_trailing_stop_flip_up", "short_description": "Detect ATR Trailing Stop flipping from short (-1) to long (+1). Bullish trend-following entry signal.", "metadata": {"rule_name": "atr_trailing_stop_flip_up", "description": "Detect ATR Trailing Stop flipping from short (-1) to long (+1). Bullish trend-following entry signal.", "requires": ["high", "low", "close"], "params": {"window": {"type": "int", "description": "ATR window", "min": 5, "max": 100, "optional": true, "default": 14}, "multiplier": {"type": "float", "description": "ATR multiplier", "min": 0.5, "max": 10.0, "optional": true, "default": 3.0}}}, "usage_count": null}, {"name": "atr_trailing_stop_long", "category": "volatility", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Atr Trailing Stop Long", "display_name": "atr_trailing_stop_long", "short_description": "Check if ATR Trailing Stop is in the long regime (+1 direction).", "metadata": {"rule_name": "atr_trailing_stop_long", "description": "Check if ATR Trailing Stop is in the long regime (+1 direction).", "requires": ["high", "low", "close"], "params": {"window": {"type": "int", "description": "ATR window", "min": 5, "max": 100, "optional": true, "default": 14}, "multiplier": {"type": "float", "description": "ATR multiplier for stop distance", "min": 0.5, "max": 10.0, "optional": true, "default": 3.0}}}, "usage_count": null}, {"name": "atr_trailing_stop_short", "category": "volatility", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Atr Trailing Stop Short", "display_name": "atr_trailing_stop_short", "short_description": "Check if ATR Trailing Stop is in the short regime (-1 direction).", "metadata": {"rule_name": "atr_trailing_stop_short", "description": "Check if ATR Trailing Stop is in the short regime (-1 direction).", "requires": ["high", "low", "close"], "params": {"window": {"type": "int", "description": "ATR window", "min": 5, "max": 100, "optional": true, "default": 14}, "multiplier": {"type": "float", "description": "ATR multiplier for stop distance", "min": 0.5, "max": 10.0, "optional": true, "default": 3.0}}}, "usage_count": null}, {"name": "bb_above_upper", "category": "volatility", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Above Usual Range", "display_name": "Above Bollinger Upper Band", "short_description": "Price is trading above its normal range.", "metadata": {"rule_name": "bb_above_upper", "description": "Check if price is currently above the upper Bollinger Band. A state, not an event: true for every bar close sits above the band, unlike bb_upper_breakout which fires only on the bar that crosses it.", "requires": ["close"], "params": {"window": {"type": "int", "description": "MA period for center band", "optional": true, "min": 5, "max": 100, "default": 20}, "window_dev": {"type": "int", "description": "Standard deviation multiplier", "optional": true, "min": 1, "max": 5, "default": 2}}}, "usage_count": null}, {"name": "bb_below_lower", "category": "volatility", "signal_type": "FILTER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Below Usual Range", "display_name": "Below Bollinger Lower Band", "short_description": "Price is trading below its normal range.", "metadata": {"rule_name": "bb_below_lower", "description": "Check if price is currently below the lower Bollinger Band. A state, not an event: true for every bar close sits below the band, unlike bb_lower_breakout which fires only on the bar that crosses it.", "requires": ["close"], "params": {"window": {"type": "int", "description": "MA period for center band", "optional": true, "min": 5, "max": 100, "default": 20}, "window_dev": {"type": "int", "description": "Standard deviation multiplier", "optional": true, "min": 1, "max": 5, "default": 2}}}, "usage_count": null}, {"name": "bb_lower_breakout", "category": "volatility", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Downside Range Breakout", "display_name": "Bollinger Band Lower Breakout", "short_description": "Price just broke below its normal trading range.", "metadata": {"rule_name": "bb_lower_breakout", "description": "Detect price breaking below the lower Bollinger Band. Fires on the bar where price crosses below the lower band, not while price remains below it. Crypto assets frequently test bands during high volatility; use with volume confirmation.", "requires": ["close"], "params": {"window": {"type": "int", "description": "MA period for center band", "optional": true, "min": 5, "max": 100, "default": 20}, "window_dev": {"type": "int", "description": "Standard deviation multiplier", "optional": true, "min": 1, "max": 5, "default": 2}}}, "usage_count": null}, {"name": "bb_squeeze", "category": "volatility", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Market Goes Quiet", "display_name": "Bollinger Band Squeeze", "short_description": "Price swings just narrowed sharply, which often comes before a big move.", "metadata": {"rule_name": "bb_squeeze", "description": "Detect Bollinger Band squeeze onset (low volatility, potential breakout). Fires on the bar where band width drops below the threshold, not while it remains below.", "requires": ["close"], "params": {"window": {"type": "int", "description": "MA period for center band", "optional": true, "min": 5, "max": 100, "default": 20}, "window_dev": {"type": "int", "description": "Standard deviation multiplier", "optional": true, "min": 1, "max": 5, "default": 2}, "threshold": {"type": "float", "description": "Band width percentage threshold", "optional": true, "min": 1.0, "max": 20.0, "default": 5.0}}}, "usage_count": null}, {"name": "bb_upper_breakout", "category": "volatility", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Upside Range Breakout", "display_name": "Bollinger Band Upper Breakout", "short_description": "Price just broke above its normal trading range.", "metadata": {"rule_name": "bb_upper_breakout", "description": "Detect price breaking above the upper Bollinger Band. Fires on the bar where price crosses above the upper band, not while price remains above it. Crypto assets frequently test bands during high volatility; use with volume confirmation.", "requires": ["close"], "params": {"window": {"type": "int", "description": "MA period for center band", "optional": true, "min": 5, "max": 100, "default": 20}, "window_dev": {"type": "int", "description": "Standard deviation multiplier", "optional": true, "min": 1, "max": 5, "default": 2}}}, "usage_count": null}, {"name": "bearish_engulfing_trigger", "category": "patterns", "signal_type": "TRIGGER", "evaluation_mode": "frame", "data_provider": null, "friendly_name": "Sellers Overwhelm Buyers", "display_name": "Bearish Engulfing", "short_description": "A down candle fully swallowed the prior up candle, a strong sign of a turn lower.", "metadata": {"rule_name": "bearish_engulfing_trigger", "description": "Check if a bearish engulfing pattern completed on the current bar. Current bearish candle's body completely contains the previous bullish candle's body. Strong bearish reversal.", "requires": ["open", "close"], "params": {}}, "usage_count": null}], "total": 264, "limit": 30, "offset": 0, "has_more": true, "next_offset": 30, "filter": null}
