Spectra

Scripts

Un DSL de scripting, pas un sélecteur d'indicateurs.

Cinq types de script, accès aux ticks, aperçu et replay locaux, plus un runtime isolé 24/7 pour les alertes routées, dans un seul langage.

01 · Cinq types, une seule langue.

Cinq types, une seule langue.

Indicator, Alert, Screener, Drawing, Strategy. La syntaxe est partagée ; chaque type cible une surface précise.

  • Indicator — Ajoute une série ou un oscillateur au graphique. Vit en chart-preview, sans overhead.
  • Alert — Expression booléenne évaluée à chaque clôture. Push, e-mail ou webhook — vous choisissez.
  • Screener — Renvoie les symboles qui satisfont une condition. Tourne sur une watchlist selon un planning.
  • Drawing — Formes programmatiques sur le graphique — zones supply/demand, FVGs, OBs, niveaux personnalisés.
  • Strategy — Code émetteur d'ordres. Backteste contre le même moteur de fills qui tourne en live.
golden-cross.spec
// @spectra-script 2
let fast = ta.sma(close, 20)
let slow = ta.sma(close, 50)

plot.line("Fast", fast, color = color.teal)
plot.line("Slow", slow, color = color.orange)
output close > fast and fast > slow

4 lignes. Trace les SMA rapide/lente et émet un signal booléen.

02 · Un DSL, trois runtimes.

Un DSL, trois runtimes.

Écrivez-le une fois. Exécutez-le partout où un prix s'imprime.

  • Aperçu graphique — Vous tapez, la ligne se trace immédiatement. Le bytecode est recompilé à chaque touche en moins de 80 ms.
  • Backtester — Même script, replay barre par barre avec slippage réaliste en points de base, commission par fill, fills partiels et gestion des gaps.
  • Worker VPS — Marquez un script avec runs_on: vps et il tire sur un cloud worker 24/7 — alertes et ordres webhook inclus.
Curseur comparant un graphique en bougies simples avec le même graphique après le tracé d'un indicateur de divergence RSI écrit par l'utilisateurAvantAprès
Slider : graphique simple ← glisser → indicateur RSI-divergence personnalisé
25s · tapez, sauvegardez, voyez le tracé

03 · Tick scripting

React to the market one execution at a time.

Spectra Script v2 exposes the retained trade tape and a true per-print callback. Use it to inspect aggressor flow, dollar size, delta, print counts, and the largest execution without reducing the tape to candle closes.

  • feed.tap(feed.trades) returns a bounded, newest-first execution window.
  • on_trade(price, size, is_buy, ts) runs once for every valid print in timestamp order.
  • Live tape retains 60 seconds and up to 10,000 prints; archive replay covers up to 24 hours and 10,000 prints.
  • Unknown aggressor sides remain visible and are excluded from directional aggregates instead of being guessed.
whale-flow.spec
// @spectra-script 2let minimum_usd = param.float("Minimum USD", 5000000.0, min = 1.0)fn on_trade(price, size, is_buy, ts) {  alert.wire(    "whale_buy",    is_buy and price * size >= minimum_usd,    message = "Large aggressive buy"  )}output false

True trade callbacks · bounded state · deterministic replay

04 · Server runtime

Keep approved alerts running after you close the app.

Save an alert with a target symbol and timeframe, then route it to the server worker. Bar scripts execute on completed intervals; tick handlers receive the real aggressor stream in bounded 50 ms scheduler batches.

  • Independent per-script state with tenant isolation and persisted fire timestamps.
  • Hard CPU, memory, loop, and recursion budgets plus cancellation on overrun.
  • Cooldown enforcement, runtime error capture, metrics, alert events, and outbound delivery.
  • Strategies remain preview/backtest workflows; unattended server execution is deliberately limited to alert scripts.
server-breakout.spec
// Runs on the saved symbol + timeframelet baseline = ta.sma(close, 200)let active = close > baseline and volume > ta.sma(volume, 20) * 1.5alert.wire(  "volume_breakout",  active,  message = "Volume breakout confirmed")output active

Route: VPS or Both · symbol + timeframe required

05 · Garanties du sandbox.

Garanties du sandbox.

Votre alerte ne peut pas faire tomber vos graphiques. Chaque script tourne sous des budgets durs CPU et mémoire, appliqués au niveau VM.

  • VM bytecode, pas un sandbox JS. Aucun accès au runtime hôte.
  • Budget CPU par script (50 ms par défaut) et plafond mémoire (16 Mo par défaut).
  • Tokens d'annulation — un script long peut être tué en cours de barre.
  • Aucun chemin `unsafe`. Aucun accès fichier ou réseau hors built-ins audités.
20s · serrez le filtre, voyez la liste rétrécir

Écrivez une fois. Tradez partout.

Le langage de stratégies complet plus le cloud worker 24/7 — inclus gratuitement pour tous les traders pendant le lancement.