Builder — Node Reference

Back to Guides

This page documents every node available in the React Flow builder. Screenshots are placeholders — add images in /static/builder-docs/screenshots/ and update the src attributes below when ready.

Trigger Node

Type: triggerNode • Handles: source (bottom)

Defines when the workflow runs. Choose schedule or event triggers. Typical fields:

  • Schedule: cron-like or interval selection
Payload schema (collapsed)
{
  "type": "trigger",
  "config": { "schedule": "0 9 * * 1-5" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/trigger.png`

Scanner Node

Type: scannerNode • Handles: target (top), source (bottom)

Scans the market using Finviz-like filters. Use this node to produce a list of tickers that match criteria.

  • Sector — select sector(s)
  • Market Cap — min/max selection
  • Price — price range
  • Average Volume
  • PE Ratio, EPS Growth, Performance
  • Signal — prebuilt filters (gapper, pullback)
Payload schema (collapsed)
{
  "type": "scanner",
  "config": { "sector": "Technology", "price": {"min": 5, "max": 200}, "signal": "Gappers" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/scanner.png`

Logic / Filter Node

Type: logicNode (Filter) • Handles: target (top), source (bottom)

Applies indicator-based logic to incoming ticker lists. Three filter types available:

Technical Indicator Filter

Traditional technical analysis indicators:

  • Indicator (e.g., SMA, EMA, RSI)
  • Period — lookback period for calculation
  • Condition (greater/less/equals)
  • Value — threshold value

VCP Score Filter

Volatility Contraction Pattern analysis for breakout setups:

  • Minimum VCP Score — 0-7 scale (7 = perfect, 6 = dream, 5 = elite)
  • Publish VCP Score — pass score data to downstream nodes

VCP Score Guide:

  • 7 = Perfect Monster Setup
  • 6 = Minervini Dream Setup
  • 5 = Elite VCP Pattern
  • 4+ = Consider Trading
  • <4 = Not Ready

Inside Day Pattern Filter

Identifies stocks showing inside day patterns (consolidation setups):

  • Ticker Symbol — single ticker to check

What is an Inside Day?

An inside day occurs when today's trading range is completely contained within yesterday's range:

  • Today's High < Yesterday's High
  • Today's Low > Yesterday's Low

This pattern indicates consolidation and often precedes breakout moves. The filter returns detailed pattern data including high/low values for both days.

Payload schema (collapsed)
{
  "type": "filter",
  "filterType": "technical|vcp|insideDay",
  "config": { 
    "indicator": "EMA", 
    "period": 20, 
    "condition": ">", 
    "value": 50 
  }
}
{
  "type": "filter", 
  "filterType": "vcp",
  "config": { "min_score": 6, "publish_score": true }
}
{
  "type": "filter",
  "filterType": "insideDay", 
  "config": { "ticker": "COIN" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/filter.png`

Condition Node

Type: conditionNode • Handles: target (top), source (bottom)

Evaluate arbitrary conditions, including values from upstream Market Sentiment nodes. Common fields:

  • Metric — choose a metric or reference upstream node
  • Evaluator — >, <, =
  • Threshold
  • Action — go/stop routing
Payload schema (collapsed)
{
  "type": "condition",
  "config": { "metric": "advancing_pct", "op": ">", "threshold": 60 }
}
Screenshot placeholder: `/static/builder-docs/screenshots/condition.png`

Market Sentiment Node

Type: marketSentimentNode • Handles: target (top), source (bottom)

Collects breadth and market-level metrics used by Condition nodes or downstream logic.

  • Multi-select breadth metrics: advancing_pct, declining_pct, new_high_pct, etc.
Payload schema (collapsed)
{
  "type": "market_sentiment",
  "config": { "metrics": ["advancing_pct","new_high_pct"] }
}
Screenshot placeholder: `/static/builder-docs/screenshots/sentiment.png`

Market Breadth Node

Type: marketBreadthNode • Handles: target (top), source (bottom)

Collects advanced breadth indicators and market health metrics for trend analysis and timing decisions.

Breadth Indicators Available

  • Nasdaq 5-Day MA Percentage — % of Nasdaq stocks above 5-day moving average
  • Nasdaq 20-Day MA Percentage — % of Nasdaq stocks above 20-day moving average
  • McClellan Oscillator — breadth momentum indicator for NYSE
  • McClellan Summation Index — cumulative breadth trend indicator

Interpretation Guide

5/20 DMA Percentages:

  • >80% = Overbought, potential pullback risk
  • <20% = Oversold, potential bounce opportunity
  • Crossing above/below 50% = Trend change signals

McClellan Oscillator:

  • Positive = Bullish breadth momentum
  • Negative = Bearish breadth momentum
  • Extreme readings (+100/-100) = Overbought/Oversold

McClellan Summation Index:

  • Above zero = Bullish breadth trend
  • Below zero = Bearish breadth trend
  • Direction changes = Major trend shifts

Use these metrics in Condition nodes to filter trades based on market health or to time entries/exits.

Payload schema (collapsed)
{
  "type": "market_breadth",
  "config": { 
    "indicators": ["nasdaq_5dma_pct", "nasdaq_20dma_pct", "mcclellan_oscillator"],
    "update_frequency": "daily"
  }
}
Screenshot placeholder: `/static/builder-docs/screenshots/breadth.png`

Import Prebuilt List Node

Type: importPrebuiltListNode • Handles: target (top), source (bottom)

Loads a curated list of tickers such as prebuilt pullbacks or gapper lists.

Payload schema (collapsed)
{
  "type": "import_list",
  "config": { "list_type": "20_EMA_pullback" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/import_list.png`

Generate Trading Levels Node

Type: generateTradingLevelsNode • Handles: target (top), source (bottom)

Produces support/resistance/ema levels for tickers; useful for charting or alerts.

Payload schema (collapsed)
{
  "type": "generate_levels",
  "config": { "level_type": "support_resistance", "params": {} }
}
Screenshot placeholder: `/static/builder-docs/screenshots/levels.png`

Action Node

Type: actionNode • Handles: target (top), source (bottom)

Performs an action when a ticker passes upstream logic. Actions include alerts, publish to dashboard, or trade orders.

  • Action Type — alert or trade
  • Alert fields: message, email recipients
  • Trade fields: order type (market/limit), size
Payload schema (collapsed)
{
  "type": "action",
  "config": { "action_type": "alert", "message": "Ticker matched" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/action.png`

Publish To Dashboard Node

Type: publishToDashboardNode • Handles: target (top), source (bottom)

Sends results to the dashboard as widgets. Configure title and display type.

Payload schema (collapsed)
{
  "type": "publish_dashboard",
  "config": { "widgetTitle": "New Matches", "displayType": "table" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/publish.png`

Connections and Validation

The builder enforces allowed connections between node types. Typical rules include:

Example Workflows

VCP Breakout Scanner

Scanner → VCP Filter → Action

Market Timing Filter

Market Breadth → Condition → Scanner → Filter

Inside Day Pattern Alert

Trigger → Inside Day Filter → Action

Developer Notes

The UI node types map to execution steps in the backend compiler and engine (see routers/workflow_router.py and lib/workflow_engine.py).

When you're ready to add the real screenshots, add PNG files to /static/builder-docs/screenshots/ named as referenced above (e.g., scanner.png), or update the src attributes in this file to match your filenames.