Indicators

Create custom technical analysis indicators with PineTS scripting

Indicators are custom technical analysis scripts that run on market data in TradingGoose. They are powered by PineTS, a JavaScript/TypeScript runtime for Pine Script, extended with TradingGoose-specific features like workflow triggers.

What Can You Build?

  • Technical indicators — RSI, MACD, Bollinger Bands, or your own custom calculations
  • Signal generators — Detect crossovers, breakouts, or custom conditions
  • Workflow triggers — Fire workflow executions when indicator conditions are met using the trigger() API
  • Visual overlays — Plot lines, shapes, and fills directly on the chart

How It Works

Write PineTS code in the Indicator Editor using familiar Pine Script syntax adapted for JavaScript/TypeScript

Define inputs with input.int(), input.float(), etc. — these become configurable parameters in the UI

Calculate using 57+ built-in technical analysis functions (ta.*), math operations, arrays, and more

Visualize with plot(), plotshape(), fill(), bgcolor() and other chart rendering functions

Trigger workflows by calling trigger() when conditions are met — connecting indicators to your automation pipelines

Quick Example

indicator('RSI Signal', { overlay: false });

const length = input.int(14, 'RSI Length');
const overbought = input.int(70, 'Overbought');
const oversold = input.int(30, 'Oversold');

const rsi = ta.rsi(close, length);

plot(rsi, 'RSI', { color: '#2962FF' });
hline(overbought, { color: '#FF0000', linestyle: hline.style_dashed });
hline(oversold, { color: '#00FF00', linestyle: hline.style_dashed });

// Trigger a workflow when RSI crosses below oversold
if (ta.crossunder(rsi, oversold)) {
  trigger('rsi_oversold', {
    condition: ta.crossunder(rsi, oversold),
    input: 'RSI crossed below oversold threshold',
    signal: 'long',
    position: 'belowBar',
    color: '#00FF00'
  });
}

Built-in Indicators

TradingGoose ships with 80+ pre-built indicators covering momentum, trend, volatility, and volume analysis. These serve as both ready-to-use tools and reference examples for writing your own.

PineTS is based on Pine Script v5/v6 syntax. If you're familiar with TradingView's Pine Script, you'll feel right at home — the main difference is using JavaScript variable declarations (const, let, var) instead of Pine Script's implicit declarations.

Manage Indicators

Use the Indicator List widget to browse existing indicators, create new ones, or import TradingGoose export JSON. The Indicator Editor header includes an export button that downloads the current indicator as TradingGoose export JSON. Imported indicators are normalized automatically, and duplicate names are renamed on import.

Guides