Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenTraderWorld

Your trading workspace, on your own machine.

Website License Docs Docker Compose

A free, self-hosted platform that bundles the tools traders and investors actually use: trading journal, market data and backtesting, portfolios, news, planning. Your data stays on your machine. And if you want it, your own AI agent runs the whole thing alongside you.

Website · Documentation · Install in 2 minutes · Module tour · Suggest a feature · Hosting it

No account, no install, already full of realistic data. It is a shared sandbox, wiped every 15 minutes.


Nobody needs a new Bloomberg Terminal

Every few weeks another product promises to be "the Bloomberg Terminal for the rest of us". It is the wrong target, because Bloomberg does not sell software.

  • A Bloomberg Terminal costs roughly $30,000 per user per year, on two-year contracts. LSEG Workspace, ex-Refinitiv Eikon, sits around $22,000 for the full tier.
  • What that money buys is immediacy and access: news in under a second, dealer runs, liquidity, and a closed chat network holding the people on the other side of your trade.
  • The screens, the charts, the functions are the wrapper. Nobody signs a $30k contract for the UI.

OpenTraderWorld is not trying to be the next Bloomberg Terminal. It is the workspace around your own decisions: your journal, your portfolios, your backtests, your research, your automations, enhanced by your favorite AI model. Free, on your machine, with the data providers you already pay for (or the free ones).


Why OpenTraderWorld?

  • 🆓 Free. No subscription, no paywall, no "pro tier". Free for everyone, whether you trade for a living or on the side. The idea behind it: get profitable before spending a dime.
  • 🔒 Private and self-hosted. It runs on your computer or your server with Docker. No account, no cloud, no telemetry. Right after install it only answers on localhost, until you decide otherwise.
  • 🧩 Modular. 25+ modules. Install what you use, detach the rest.
  • 🔁 Updated constantly. New modules and improvements land regularly. The app tells you when a version is out, updating is a couple of commands it shows you, and your data always survives the upgrade.
  • 🗳️ Built with its users. Feature ideas come from the people using it. Suggest yours, vote on other people's, watch the roadmap move. See Contributing ideas.
  • 🌍 7 languages. English, French, German, Spanish, Italian, Portuguese, Chinese.
  • 🤖 AI built in, on your terms. There is a built-in assistant that chats with your own data. You bring the provider (Anthropic, or any OpenAI-compatible endpoint), and it gets memory, skills and tool access scoped by token. There is also a built-in MCP server, so external agents can read or update your modules through that same token-scoped gateway. Both are off until you turn them on. Your keys are encrypted at rest and never reach the browser.
  • ⚙️ Automate as much or as little as you like. The automator turns your routines into scheduled workflows: imports, reports, market scans, alerts, daily reviews. Any of them can hand a step to your own AI model, or be driven by it from end to end. You stay in charge the whole way: nothing runs, sends or writes anything you did not switch on yourself.
  • 🔑 Secrets stay sealed. An encrypted Vault holds the credentials the app needs on your behalf. Encrypted at rest, write-only once saved, and plugged into any module by reference so you never paste them twice.

Quick start

You need Docker (macOS, Linux or Windows).

curl -fsSL https://raw.githubusercontent.com/G-OTW/OpenTraderWorld/master/install.sh | bash

The installer asks a few questions, generates strong secrets, pulls the prebuilt images and starts the stack, creates your admin account and prints its password once. Then open http://localhost:5454 and sign in. If you want the long version (manual setup, headless servers, LAN/HTTPS/public exposure, backups), it is all in the documentation.

Prefer to be walked through it? The guided install on the website takes you through it step by step.

If the page won't load over plain HTTP. Browsers with HTTPS-only mode (Chrome/Edge HTTPS-First, Firefox HTTPS-Only, Safari) rewrite http:// into https:// and then cache that redirect, so a LAN install answers nothing at all. Open the address in a private window to confirm that is what is happening, then allow HTTP for that host. Or switch to the LAN + HTTPS mode in Settings → Network and get a real certificate.

Try it without installing

There is a public sandbox at demo.opentraderworld.com, also linked from the website. No account, no install, and it comes seeded with realistic data so you land in an instance that looks used rather than empty.

One thing to keep in mind: it is shared. Everything you type is visible to other visitors, the whole database is wiped and re-seeded every 15 minutes, and settings, connectors and secrets are read-only. It runs on a small free-tier server with free AI models, so it is slower than a local install. For anything real, install it. Two minutes.

What's inside

Every module ships with the app. Install what you use, detach the rest.

Trading

Module What it does
Trading Journal Trade log with templates, fee schedules, multi-currency FX and performance stats.
Trading Routines Recurring session checklists: pre-market prep, in-session discipline, post-market review.
Mindset Daily mood and discipline check-ins, with trends over time.

Market data and analysis

Module What it does
Historical Data Download OHLCV history from several providers into local datasets, or import your own file.
Historical Data Visualization Candle, OHLC, line and Renko charts with indicators, live or on demand, on any instrument a connector serves.
Backtest Signal, grid and DCA strategies with sizing, costs, an optimizer and paper trading forward.
Quant Tools Risk and return analytics: VaR, correlation, efficient frontier, position sizing, Kelly.

Portfolios and money

Module What it does
Watchlists Symbol watchlists with live prices, day changes, sparklines and notes.
Portfolio Tracker Live portfolio value with a buy/sell ledger and holdings priced daily.
MyWealth Net worth across everything you own: accounts, property, crypto, valuables.
Managers' Portfolios Superinvestor 13F holdings, browsable and snapshotable.
Tax Calculator Trading and investing tax estimates from country templates.
Subscriptions Your recurring subscriptions and what they cost you.

News and research

Module What it does
News RSS and JSON-API news aggregator with polling dashboards.
Mailbox Newsletters, market news and broker mail read from your own IMAP mailbox, tracker-free.
Economic Calendar Upcoming macro events.
FinanceDatabase Search 300,000+ instruments locally, and file your favorites in folders.
Resources Bookmark library for books, links and references.
Community Docs Guides written by the community, synced and readable offline.

Notes and organization

Module What it does
Editor Rich document editor with folders and table/kanban/gallery databases.
ToDo Task list with due dates and categories.
Goals Goals with metric tracking and deadlines.
Calendar Personal event calendar, with reminders, todos and goals overlaid on it.
RemindMe Reminders with in-app notifications and email/Telegram/Slack/Discord channels.
Time Tracker Project timers with budgets and hourly-rate value.
Prompt Store Searchable library of reusable AI prompts, tagged, rated and versioned.
Webhooks Private inbound URLs that turn external alerts into notifications.
Automator Scheduled workflows: call your own API or any URL, ask an AI step, transform, notify.

AI

Module What it does
Agent Built-in AI chat assistant. Bring your own provider, switch model or prompt mid-conversation, and let it act on your data through MCP, with memory, skills and external MCP servers. Reachable from a floating chat on every page.

The full tour, with details, is in the module docs.

Backtesting: signals, grid, DCA

One engine, three ways to describe a strategy. No code.

  • Signals. Entry and exit rules from indicators, price and values, long or short, with stops, pyramiding, and sizing by percent of equity, risk per trade, Kelly or equity tiers. Build your own indicators, and the chart draws the same ones.
  • Grid. A ladder of levels between two bounds, long, short or neutral. Each cell buys low and sells one level up.
  • DCA. A weighted basket bought over time, never rebalanced: recurring contributions, buy tranches on a dip, sell rules on a gain objective. Measured like a savings plan, with IRR and a deposit-adjusted drawdown.

Run any of them on one instrument or a whole portfolio, with exposure limits and a per-asset breakdown.

Optimizer

Take a run and vary its parameters: indicator lengths, thresholds, stops, sizing, costs, portfolio limits, grid settings, DCA amounts, excluded weekdays. Each gets a from / to / step.

  • It prices the job first, from what past runs measured on your own machine. Stop at any point and keep what is computed.
  • Rank on Sharpe, Sortino, return, profit factor, win rate, expectancy, drawdown, trades or out-of-sample return. Any column re-sorts after.
  • The spread matters more than the winner: worst, average, best, and how many variants came out positive. One good number surrounded by terrible neighbours is noise.
  • A multiple-testing haircut puts the best Sharpe against the bar the best of N worthless strategies would clear anyway. Below it, the winner is explained by the number of tries.
  • Click any variant to read its full backtest. Nothing is stored until you keep it.

Add an in-sample / out-of-sample split and the two stat blocks sit side by side. A wide gap between them is overfitting.

Paper trading: the backtest, left running forward

Press one button on a run you like and it keeps going on new candles. There is no second engine and no serialized simulator to drift: each tick reloads the window, runs the ordinary backtest, and diffs the trades against what is already stored. A session opened from a result reproduces that result exactly.

  • Its own schedule: every N minutes, daily, weekly, monthly or once, in your timezone.
  • Live alerts on entries and exits, or a period summary instead. Alert on every tick, only when something changed, or never.
  • Digest it: hourly, daily or weekly, so a two-minute rule does not mean a two-minute ping.
  • Your wording, not ours. Entry, exit and summary messages are templates you write, with a preview against a sample trade before you save.
  • Anything the app could not deliver waits in the session inbox. You read it at the next login.

Filter alerts down to the tickers you care about, and pick which channels a session pushes to.

Data connectors

One connector list for the whole app. A connector is a provider account, its credentials (typed in or plugged from the encrypted Vault, write-only once saved), an optional request limit, and the modules allowed to use it. Modules have no provider settings of their own.

Provider Credentials Asset types Symbol search Live stream
Binance none crypto yes yes
Kraken none crypto yes yes
Coinbase none crypto yes yes
Binance USDⓈ-M Futures none crypto yes yes
Bitget none crypto yes yes
OKX none crypto yes yes
Yahoo Finance none equity, ETF, index, crypto yes no
Alpha Vantage API key equity, ETF, crypto, FX yes no
EODHD API key equity, ETF, FX, crypto yes no
Alpaca key + secret equity, crypto, options yes yes (based on your broker subscription)
Massive (Polygon.io) API key equity, ETF, options, futures, crypto, FX, index yes yes (based on your broker subscription)
OANDA API token + account id FX, CFDs yes no
TradeStation OAuth: client id, secret, refresh token equity, ETF, options, futures, index by symbol no
FOREX.com (StoneX) login + AppKey FX, CFDs yes no
Capital.com API key + identifier + password FX, indices, shares, crypto (all CFDs) yes yes
Interactive Brokers none (your own gateway) equity, ETF, crypto, FX, index, futures, options yes yes (based on your broker subscription)

Every provider connects directly, with an API key or none at all. Interactive Brokers is the exception: you run IB Gateway or TWS yourself and the connector stores a host and a port. OANDA, TradeStation, FOREX.com and Capital.com are broker feeds: they read the prices of the account you already have there, so they ask for that account's credentials. Details in the connectors guide.

Live feeds

Provider Price updates from Live
Binance trades every timeframe
Kraken trades every timeframe
Coinbase trades every timeframe
Binance USDⓈ-M Futures klines every timeframe
Bitget candles every timeframe
OKX candles every timeframe
Capital.com bid and ask candles, charted at their mid every timeframe
Alpaca trades every timeframe
Massive trades (quotes on FX, index values on indices) every timeframe, futures excluded
Interactive Brokers trades (midpoint on cash FX and crypto, which have no tape at IB) every timeframe

Missing a provider? Ask for it and it gets added.

Notifications

These are the notification methods available today. More are planned: if your preferred one is missing, ask for it.

Channel What you provide
Email your own SMTP server
Telegram a bot token and a chat id
Slack an incoming webhook URL
Discord an incoming webhook URL

Secrets are sealed on save and never shown again. What can notify you: paper trading sessions, watchlist alerts, reminders, finished or parked data downloads, new mail, journal jobs, inbound webhooks, and any automator workflow. Everything is off until you switch it on, and in-app notifications work without configuring a single channel.

⭐ Enjoying it? Help it grow

OpenTraderWorld is free and built in the open. If it is useful to you, the easiest way to give back costs nothing:

  • Star the repo. It is a quick signal, and it helps other people find the project.
  • Share it. A word to a fellow trader, a link in your community, a mention anywhere. It helps more than you would think.

No pressure. Even just trying it out and telling a friend means a lot. 🙏 Got ideas, or found a bug? See Suggest, vote, contribute below.

💡 Suggest, vote, contribute

This project grows on user feedback:

  • Suggest a feature or a module. Head to opentraderworld.com/suggestions and describe what you are missing and how you would use it.
  • Vote. 👍 the suggestions you want most on the website. Popular requests get prioritized.
  • Report bugs. Open an issue with the symptom and a few log lines.
  • Write for the community. Guides written in the app's Editor can be submitted for publication in the shared Community Docs library, where every install can read them.

Project links

Where What you'll find
opentraderworld.com Project home: module overview, community guides, roadmap voting, demo.
opentraderworld.com/tools The 25+ modules by domain, in plain language.
opentraderworld.com/docs Community Docs: trading guides written by users, synced into every install.
opentraderworld.com/hosting/setup Guided install, step by step.
opentraderworld.com/suggestions Suggestions and polls: propose features, vote on the roadmap.
demo.opentraderworld.com Live shared demo, reseeded every 15 minutes.
Documentation Install, configuration and module reference.
GitHub Source, releases, issues.

Under the hood

Layer Tech
Backend / core Rust (Axum): API, scheduler, background jobs
Frontend SvelteKit single-page app
Data PostgreSQL, the only place your data lives
Reverse proxy / TLS Caddy, automatic HTTPS certificates
Deployment Docker Compose, non-intrusive and quickly rebuilt
OpenTraderWorld/
├── install.sh     # one-command installer (fetches deploy/, runs setup)
├── deploy/        # docker-compose stack, setup.sh, Caddy config
├── core/          # Rust workspace (API, store, scheduler, feeds…)
├── frontend/      # SvelteKit app (modules UI)
└── docs/          # documentation site (VitePress)

Status

Actively developed. It is usable today and moving fast. Check Settings → Update app in the app to know when a new version is out.

Disclaimer

This software is for educational and informational purposes only. It is not financial, investment, or trading advice. USE IT AT YOUR OWN RISK. The author and any affiliates accept no responsibility for your trading or investment results, or for any loss or damage arising from use of this software. Never risk money you cannot afford to lose. There will be bugs: the software is provided "as is", without warranty of any kind. You alone are responsible for how you use it and for the decisions you make with it.

License

FSL-1.1-MIT (Functional Source License). Free for everyone, including commercial use, self-hosting at work, modification, redistribution and forks. The one thing it does not grant is a Competing Use: selling the software, or offering it to others as a paid product or a hosted service. Each release turns into plain MIT two years after it is published.

About

Free and source-available, self-hostable trading workspace: data, backtest, trading journal, news aggregator, rich-doc editor, portfolio, 20+ modules with a built-in MCP server and AI agent.

Topics

Resources

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages