OpenTraderWorld

mcp
Security Audit
Warn
Health Warn
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

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.

README.md

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

▶ Try the live demo

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


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.

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.
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
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)
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.
Details in the connectors guide.

Live feeds

Provider Price updates from Live
Binance trades every timeframe
Kraken trades every timeframe
Coinbase trades 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/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.

Reviews (0)

No results found