GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - bennycode/trading-signals: Technical indicators to run technical analysis with JavaScript & TypeScript. 📈

BranchesTags
Open more actions menu

Latest commit

 

History

1,574 Commits
1,574 Commits

Folders and files

NameName
Last commit message
Last commit date
.claude
.claude
 
 
.github
.github
 
 
.vscode
.vscode
 
 
packages
packages
 
 
.env.flags
.env.flags
 
 
.env.op
.env.op
 
 
.gitignore
.gitignore
 
 
.npmrc
.npmrc
 
 
.nvmrc
.nvmrc
 
 
CLAUDE.md
CLAUDE.md
 
 
Procfile
Procfile
 
 
README.md
README.md
 
 
fta.json
fta.json
 
 
knip.json
knip.json
 
 
lefthook.yml
lefthook.yml
 
 
lerna.json
lerna.json
 
 
loadEnv.ts
loadEnv.ts
 
 
oxfmt.config.ts
oxfmt.config.ts
 
 
oxlint.config.ts
oxlint.config.ts
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
tsconfig.base.json
tsconfig.base.json
 
 
tsconfig.build.json
tsconfig.build.json
 
 
tsconfig.json
tsconfig.json
 
 
tsconfig.lib.json
tsconfig.lib.json
 
 
vitest.shared.ts
vitest.shared.ts
 
 

Repository files navigation

Trading Signals Monorepo

A fully-typed, modular toolkit for building algorithmic trading bots in TypeScript — from technical indicators up to a Telegram-controlled live bot.

This monorepo is home to the popular trading-signals library (tested in production and trusted by hundreds of projects worldwide) along with everything you need to turn those signals into a running trading bot: strategies, an exchange abstraction, and a chatbot front-end.

Every piece is independently usable. Pick a package, drop it into your app, or run the whole stack and command your bot from your phone.

Highlights

  • Streaming-first indicators — SMA, EMA, RSI, MACD, Bollinger Bands, and many more, with replace-mode and lazy evaluation for backtests and live use.
  • Composable strategies — a tiny Strategy interface (return an OrderAdvice per candle) lets you focus on signal logic while the framework owns session state, order placement, fills, and broker quirks. Ships with ready-to-use building blocks and a ProtectedStrategy base that adds self-cleaning stop-loss / take-profit kill switches.
  • Visual backtesting in your browser — try any strategy against historical candles with interactive charts, trade markers, and P&L stats at typedtrader.com/backtest. Tune parameters, see the results instantly, no setup required.
  • Broker-agnostic execution — a unified exchange interface with type-safe schemas (Zod), WebSocket streaming, and paper-trading support. Ships with Alpaca Trading out of the box but is designed for any additional broker or exchange to plug in.
  • Control your bot from Telegram — add accounts, spin up strategies via conversational wizards, watch prices, schedule recurring reports, and inspect live strategy state and config, all from a chat.
  • Modern TypeScript stack — Latest TypeScript version, ESM-native, Node LTS, Lerna-managed workspaces, Vitest-covered, drizzle-backed persistence.

Quickstart

npm install

# Run the full test matrix across all packages
npm test

# Launch the documentation site (Vocs)
npm run start:docs

# Start the Telegram bot (requires TELEGRAM_BOT_TOKEN in your env)
npm run start:bot

Packages

This project uses Lerna to manage a monorepo with independent versioning.

Package Description
trading-signals Technical indicators (SMA, EMA, RSI, MACD, Bollinger Bands, ...) for algorithmic trading with streaming updates, replace mode, lazy evaluation, and memory efficiency. Battle-tested in production.
trading-signals-cli Terminal access to every indicator of the library. Pipe candles or prices in, get the indicator's reading as JSON, without writing a script for a quick check.
trading-strategies Trading strategies that combine indicators into actionable advice. Ships with a library of ready-to-use strategies and a ProtectedStrategy base that wires stop-loss and take-profit kill switches into any subclass.
@typedtrader/exchange Unified exchange interface for different brokers (currently Alpaca). Type-safe data transformation, WebSocket candles and order updates, paper- and live-trading environments behind a single API.
@typedtrader/exchange-cli Terminal access to the same broker clients. Check balances, search instruments, place and cancel orders, and stream candles or fills as NDJSON, with JSON on stdout for piping into jq or scripts.
@typedtrader/messaging Remote-control layer for your personal trading bot via Telegram. Add accounts, run strategies, watch prices, schedule reports, and inspect live strategy state — all from chat. Persistence via SQLite + Drizzle ORM.
trading-signals-docs Documentation site and visual backtester built with Vocs. Explore every indicator in action, then backtest strategies against real historical candles with charts, trade markers, and P&L stats.

How it fits together

At the foundation, trading-signals provides technical indicators like SMA, EMA, RSI, and Bollinger Bands. trading-strategies builds on top of them to produce actionable trading advice and ships kill-switch protection out of the box. @typedtrader/exchange abstracts away broker differences so strategies can run against any supported exchange. Finally, @typedtrader/messaging ties it all together into a chatbot that lets you operate your bot remotely.

graph TD
    messaging["@typedtrader/messaging (Chatbot)"]

    messaging --> session["TradingSession (online: pairs a strategy with a broker)"]
    website["typedtrader.com (Visual Backtester)"] --> backtest["BacktestExecutor (offline: replays historical candles)"]

    session --> strategies["trading-strategies"]
    session --> exchange["@typedtrader/exchange"]
    backtest --> strategies
    backtest --> exchange

    strategies --> signals["trading-signals"]

    signals --> SMA
    signals --> EMA
    signals --> BBANDS["Bollinger Bands"]
    signals --> more["..."]

    exchange --> Alpaca
    exchange --> T212["Trading 212"]
    exchange --> more-exchanges["..."]
Loading

About

Technical indicators to run technical analysis with JavaScript & TypeScript. 📈

typedtrader.com/

Topics

analysiscryptotradingdemadmaemafinancialfinancial-analysishacktoberfestindicatormacdrocrsisignalssmasmmatechnical-analysistechnical-indicatorstradingtrading-signalstypescript

Resources

Readme
Activity

Stars

1.0k stars

Watchers

13 watching

Forks

147 forks
Report repository

Releases

Sponsor this project

Used by

Contributors

Languages

Generated from bennycode/ts-node-starter
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.