Skip to main content

Signal Enricher - Enhance Trading Signals with 46+ Technical Indicators

· 7 min read
ApudFlow OS
Platform Updates

Trading signals are only as good as the data they carry. Raw price action signals lack the context needed for confident decision-making. The Signal Enricher worker transforms basic signals into comprehensive trading opportunities by adding 46+ technical indicators calculated at each signal's exact timestamp.

Key Advantages

1. 46+ Professional Indicators in One Worker No need to juggle multiple tools or write custom code. Access institutional-grade indicators:

  • Momentum: RSI, Stochastic, Williams %R, CCI, ROC, MFI, PPO, TSI, UO, STOCHRSI
  • Trend: SMA, EMA, MACD, ADX, OBV, Vortex, Trend Strength, ATR Trend
  • Volatility: Bollinger Bands, ATR, ATR Channel, Keltner Channels, Donchian Channels
  • Volume: OBV, CMF, Force Index, Ease of Movement, Volume Oscillator
  • Statistical: Standard Deviation, Z-Score, Hurst Exponent, R-Squared
  • Advanced: Williams Alligator, Fractal Adaptive MA, Triple EMA, Adaptive MA

2. Strategy Optimization & Parameter Discovery Explore how different indicators transform your data to find optimal strategy conditions. The Signal Enricher helps you:

  • Test multiple indicators on the same dataset
  • Discover which indicators work best for specific market conditions
  • Identify parameter ranges that maximize profitability
  • Compare indicator effectiveness across different timeframes

3. Multi-Asset Portfolio Support Handle signals across multiple symbols simultaneously:

  • Automatic symbol-based matching with OHLC data
  • Process entire portfolios in single workflow
  • No duplicate data processing per symbol

4. Advanced Change Detection Detect indicator crossovers and momentum shifts with bar offset capability:

  • Compare current vs previous bar values
  • Identify when RSI crosses above 30 or below 70
  • Track MACD signal line crossovers
  • Monitor trend strength changes

5. Seamless Workflow Integration Connects perfectly with your trading ecosystem:

  • Feed enriched signals to Signal Generator for rule-based filtering
  • Send to Backtest Strategy for lightning-fast vectorized profitability analysis
  • Combine with Ratio Rates Pattern Analysis for advanced parameter optimization
  • Display on Multi Chart widgets for visual confirmation
  • Store in MongoDB or Redis for persistence
  • Send alerts via Telegram Notify

What is Signal Enricher?

The Signal Enricher calculates technical indicators from OHLC data at each signal's timestamp, adding powerful analytical context to your trading signals. Whether you're enhancing existing signals or exploring how different indicators transform your data to find optimal strategy conditions, this worker provides the flexibility to test and discover profitable approaches.

Core Features

FeatureBenefit
46+ IndicatorsComplete technical analysis toolkit
Multi-Asset ModeProcess portfolio signals efficiently
Bar OffsetDetect changes and crossovers
Time-Based LookupPrecise indicator values at signal times
ResamplingCalculate on any timeframe (1m to 1w)
Custom ColumnsName output fields as needed
Strategy DiscoveryTest indicators to find best-performing combinations

Supported Indicators

Momentum Oscillators

  • RSI (Relative Strength Index) - Overbought/oversold levels
  • Stochastic - Price momentum vs range
  • Williams %R - Momentum oscillator
  • CCI (Commodity Channel Index) - Deviation from mean
  • ROC (Rate of Change) - Percentage price change
  • MFI (Money Flow Index) - Volume-weighted momentum
  • PPO (Percentage Price Oscillator) - MACD percentage version
  • TSI (True Strength Index) - Double-smoothed momentum
  • UO (Ultimate Oscillator) - Multi-timeframe momentum
  • STOCHRSI - Stochastic applied to RSI

Trend Indicators

  • SMA/EMA - Moving averages
  • MACD - Convergence/divergence
  • ADX - Trend strength
  • OBV - Volume-based momentum
  • Vortex - Trend direction strength
  • Trend Strength - EMA difference percentage
  • ATR Trend - Volatility-based trend strength

Volatility & Channels

  • Bollinger Bands - Price channels
  • ATR - True range volatility
  • ATR Channel - Dynamic support/resistance
  • Keltner Channels - ATR-based channels
  • Donchian Channels - Price extremes

Volume & Flow

  • Chaikin Money Flow - Buying/selling pressure
  • Force Index - Price-volume force
  • Ease of Movement - Price movement efficiency
  • Volume Oscillator - Volume momentum

Statistical & Advanced

  • Standard Deviation - Price volatility
  • Z-Score - Standard deviations from mean
  • Hurst Exponent - Long-term memory
  • R-Squared - Trend strength coefficient
  • Williams Alligator - Three EMA system
  • FRAMA - Adaptive moving average
  • TEMA - Triple exponential MA
  • AMA - Adaptive moving average

How Bar Offset Enables Change Detection

The bar offset feature allows you to access indicator values from different bars relative to the signal time, enabling sophisticated signal confirmation.

Bar Offset Examples

{
"indicator": "rsi",
"bar_offset": 0,
"new_column_name": "RSI_current"
}

Gets RSI at signal time.

{
"indicator": "rsi",
"bar_offset": -1,
"new_column_name": "RSI_previous"
}

Gets RSI from previous bar.

Change Detection Workflow

  1. Enrich with current RSI (bar_offset: 0)
  2. Enrich with previous RSI (bar_offset: -1)
  3. Use Signal Generator to create condition:
    • RSI_previous < 30 AND RSI_current > 30 (RSI crosses above 30)
    • RSI_previous > 70 AND RSI_current < 70 (RSI crosses below 70)

This creates signals only when indicators actually change state, filtering out noise.


Multi-Asset Portfolio Enrichment

Process signals across multiple symbols in one operation:

Input Signals (Multi-Asset)

[
{"swing_time_str": "2024-01-15 10:30:00", "action": "buy", "symbol": "AAPL"},
{"swing_time_str": "2024-01-15 10:30:00", "action": "sell", "symbol": "GOOGL"},
{"swing_time_str": "2024-01-15 10:31:00", "action": "buy", "symbol": "MSFT"}
]

OHLC Data (Multi-Asset)

[
{"time": 1705312200, "open": 180.0, "high": 182.0, "low": 179.0, "close": 181.0, "symbol": "AAPL"},
{"time": 1705312200, "open": 3000.0, "high": 3020.0, "low": 2990.0, "close": 3010.0, "symbol": "GOOGL"}
]

Output: Enriched Signals

[
{"swing_time_str": "2024-01-15 10:30:00", "action": "buy", "symbol": "AAPL", "RSI": 65.2, "MACD": 1.23},
{"swing_time_str": "2024-01-15 10:30:00", "action": "sell", "symbol": "GOOGL", "RSI": 72.8, "MACD": -0.45}
]

Complete Trading Workflow Integration

RSI Mean Reversion Strategy

  1. Fetch Price → Get OHLC data for your symbols
  2. Signal Enricher → Add RSI, Stochastic, and Bollinger Bands
  3. Signal Generator → Create buy signals when:
    • RSI crosses above 30 (oversold bounce)
    • Price touches lower Bollinger Band
    • Stochastic is oversold (< 20)
  4. Backtest Strategy → Validate performance with stop losses and take profits
  5. Telegram Notify → Send alerts when signals trigger

Trend Following Strategy

  1. Fetch Yahoo → Get price data from Yahoo Finance
  2. Signal Enricher → Calculate ADX, Trend Strength, and ATR
  3. Signal Generator → Generate signals when:
    • ADX > 25 (strong trend)
    • Trend Strength > 2% (significant momentum)
  4. Support Resistance → Add key levels for entry/exit
  5. Multi Chart → Visualize signals on price chart

Market Regime Detection

  1. Twelve Data → Fetch comprehensive market data
  2. Signal Enricher → Calculate Market Regime and Hurst Exponent
  3. AI Classifier → Route signals based on market conditions:
    • High volatility → Use wider stops
    • Trending market → Follow trend
    • Mean-reverting → Counter-trend signals
  4. MongoDB → Store regime classifications for analysis

Getting Started Examples

Basic RSI Enrichment

Add RSI to your existing signals:

{
"signals": [{"time": "2024-01-15T10:30:00Z", "symbol": "AAPL"}],
"data": [{"time": 1705312200, "open": 180, "close": 181, "symbol": "AAPL"}],
"indicator": "rsi",
"field": "close",
"new_column_name": "RSI"
}

Multi-Indicator Setup

Enrich with multiple indicators in sequence:

  1. First enricher: RSI
  2. Second enricher: MACD
  3. Third enricher: Bollinger Bands
  4. Signal Generator uses all three for complex conditions

Change Detection Setup

Detect RSI crossovers:

  1. Enrich with bar_offset: 0RSI_current
  2. Enrich with bar_offset: -1RSI_previous
  3. Signal Generator: RSI_previous <= 30 AND RSI_current > 30

Strategy Optimization & Analysis

Perfect Partner with Ratio Rates Pattern Analysis

The Signal Enricher works exceptionally well with Ratio Rates Pattern Analysis for advanced strategy optimization:

  1. Signal Enricher → Add multiple indicators (RSI, MACD, ATR, etc.) to your signals
  2. Ratio Rates → Calculate profitability ratios and pattern correlations across different indicator combinations
  3. Discover Optimal Parameters → Identify which indicator thresholds and combinations produce the highest win rates

This combination helps you:

  • Find Profitable Indicator Combinations - Test RSI + MACD vs RSI + Stochastic
  • Optimize Entry/Exit Parameters - Determine best RSI levels, stop distances, etc.
  • Market Condition Filtering - Use ATR or ADX to filter signals by volatility/trend strength
  • Pattern Recognition - Identify recurring profitable setups across multiple indicators

Lightning-Fast Backtesting Integration

Pair Signal Enricher with Backtest Strategy for rapid strategy validation:

  1. Signal Enricher → Enrich signals with chosen indicators
  2. Backtest Strategy → Vectorized calculation of profitability metrics
  3. Instant Results → Get Sharpe ratio, max drawdown, win rate in milliseconds

Why This Combination Excels:

  • Vectorized Performance - Test thousands of parameter combinations instantly
  • Realistic Execution - Model slippage, commissions, and market impact
  • Risk Management - Test various stop loss and take profit levels
  • Statistical Confidence - Validate results across different market conditions

Example: RSI Strategy Optimization

// Workflow: Signal Enricher → Ratio Rates → Backtest Strategy

{
"step1": {
"worker": "signal_enricher",
"params": {
"indicator": "rsi",
"bar_offset": 0,
"new_column_name": "RSI_current"
}
},
"step2": {
"worker": "ratio_rates",
"params": {
"calculate_profitability": true,
"correlate_indicators": ["RSI_current", "volume", "price_change"]
}
},
"step3": {
"worker": "backtest_strategy",
"params": {
"entry_condition": "RSI_current < 30",
"exit_condition": "RSI_current > 70",
"stop_loss": "2%",
"take_profit": "5%"
}
}
}

This workflow automatically finds the most profitable RSI levels and validates them with professional backtesting.