Cascada Svelte Themes

Cascada

Free, local-first copy-trading desktop app for cTrader, MetaTrader 4 & MetaTrader 5. No cloud, no subscription — Tauri 2 + Rust + Svelte.

Cascada — local copy-trading desktop for cTrader, MT4 & MT5

Cascada

Free, local-first copy trading for cTrader, MT4, MT5 — and now TradingView PaperTrading.
No cloud, no subscription, no API keys handed over. One desktop app. Your accounts, your trades, your data.

Download Build Platforms License

Download · Features · How it works · Quick start · FAQ


⬇️ Download

Pick the installer for your OS. Binaries are built and published automatically for every tagged release.

Platform Installer Notes
🍎 macOS (Apple Silicon + Intel) Cascada.dmg Universal binary. First launch: right-click → Open.
🪟 Windows 10 / 11 (x64) Cascada-setup.exe / .msi SmartScreen may warn on first run — More infoRun anyway.
🐧 Linux .AppImage / .deb AppImage is portable; .deb for Debian/Ubuntu derivatives.

Don't see a platform? Head to Releases — every build artifact is attached there.

🔐 Running an unsigned build

Cascada is built by GitHub Actions without paid code-signing certificates (Apple Developer ID, Windows Authenticode). Your OS will warn you on first launch — here's how to trust the app once:

🍎 macOS — "Cascada.app cannot be opened because Apple cannot check it for malicious software"

Easiest: right-click (or Ctrl + click) on Cascada.app in Finder → Open → confirm Open in the dialog. Done once, macOS remembers.

If Gatekeeper blocks completely ("app is damaged" on macOS 15+, quarantine attribute):

xattr -d com.apple.quarantine /Applications/Cascada.app

To silence the "would like to access data from other apps" prompt: System Settings → Privacy & SecurityFull Disk Access+ → add Cascada.app. Required so Cascada can discover MT4/MT5 terminals installed via Wine, Bottles, or CrossOver.

🪟 Windows — "Windows protected your PC" (SmartScreen)

Click More info on the blue dialog → Run anyway. That's it.

If your antivirus is aggressive and deletes the installer, add the download folder to your AV exclusions temporarily, re-download, install, then you can remove the exclusion.

🐧 Linux — AppImage

chmod +x Cascada_*.AppImage
./Cascada_*.AppImage

.deb / .rpm install through the usual dpkg -i / rpm -i.

Verify integrity — every release assets has a .sig sidecar generated by GitHub Actions you can cross-check against the workflow logs; the source is 100% on GitHub and the build is reproducible.


✨ Features

🔌 Multi-broker, multi-platform

  • cTrader — drop-in cBot (CascadaBridge.algo) installed automatically into your cAlgo folder.
  • MetaTrader 4 — Expert Advisor (CascadaBridge.mq4) with auto-discovery of every MT4 terminal on your machine (Wine, Bottles, CrossOver, PlayOnMac, native installs).
  • MetaTrader 5 — same story with CascadaBridge.mq5.
  • TradingView PaperTradingnew — Cascada launches its own Chrome window with a transparent HTTPS proxy. No extension, no API key, no login handed over. Trades, pendings, SL/TP modifies and live multi-feed quotes are all mirrored to your real broker terminals.
  • Multiple masters and slaves in parallel — mix platforms freely (TradingView → MT5, MT4 → cTrader, etc).

TradingView bridge architecture

🎯 Copy-rule engine

Every master→slave link is a rule with fine-grained control:

  • Lot sizing — Fixed · Multiplier · Equity-ratio · Balance-ratio · Risk % (SL-based).
  • Min / max lot clamp · per-symbol step normalization.
  • Direction filter — all / buy-only / sell-only.
  • Symbol whitelist / blacklist · prefix / suffix mapping (EURUSD → EURUSDm).
  • Per-symbol quote-offset with per-feed granularitynewOANDA:EURUSD and ICMARKETS:EURUSD can carry different drift values in the same rule, so SL/TP land on the right slave price regardless of which TradingView feed the master streamed.
  • SL / TP shaping — copy · ignore · fixed pips.
  • Max open positions · max exposure (lots) · max daily loss caps.
  • Comment filter (copy only trades with matching EA / strategy tag).
  • Skip trades older than N seconds (catch-up protection on reconnect).
  • Schedule window — broker-time session start/end, weekends skip.
  • Per-rule trade delay (jitter dispatch across slaves).
  • Reverse mode (Buy → Sell).

📊 Dashboard & observability

  • Live KPIs — total equity, connected accounts, active rules, open positions.
  • Recent activity stream with per-trade P/L, master↔slave mirror attribution.
  • Accounts tree — drag slaves under masters to link them; color-coded groups per master.
  • Compare tab — side-by-side bid/ask and spread for the same symbol across brokers, with pip-distance live. Multi-feed selection ✨ — when the master is TradingView, pick the data feed (OANDA, IC Markets, Pepperstone…) globally or per-row; the symbol autocomplete narrows to tickers that feed actually publishes. One click captures the median pip-delta over 30s and writes it back to a rule as a per-feed offset.

Per-feed quote-offset compensation

- **Trades tab** — virtualised list (handles thousands of trades without lag). - **Logs tab** — full connector trace, filterable.

🔒 Local-first by design

  • No cloud. State lives in a single local state.json. Your EA installs talk to the app via local file bridges — no sockets open to the internet.
  • No account login to Cascada. You install once, the app auto-discovers your terminals.
  • No telemetry. Zero outbound network calls beyond what the broker APIs need.
  • Export / import your settings (accounts + rules) as a signed JSON bundle — perfect for backups or migrating between machines.

🔄 Built-in auto-updater

  • On launch, Cascada checks GitHub Releases for a newer version (silent on network error, non-blocking).
  • When a new version is found → a discreet "Update available" banner appears in the sidebar.
  • One click → signed installer downloaded and applied; app relaunches on its own. Every update is minisign-verified against the public key baked into your installed build, so a compromised GitHub release can't push arbitrary code.

🚀 Built for speed

  • Tauri 2 + Rust core → ~20 MB installer, <50 MB RAM at rest.
  • Quote hot path is zero-alloc; tick streams from all accounts merged into a single reactive store.
  • Adaptive polling on the file bridge (100 ms → 1 s backoff when silent).
  • Persistent readers, Arc-shared trades, zero-clone snapshot saves, rAF-batched UI updates.

🏗 How it works

┌─────────────┐   file bridge (JSONL)      ┌──────────────────┐
│  MT4 / MT5  │──────────────────────────▶ │                  │
│  Expert     │ ◀──────────────────────────│                  │
│  Advisor    │   Common/Files/Cascada/    │                  │
└─────────────┘                            │                  │
┌─────────────┐   file bridge (JSONL)      │   Cascada core   │
│  cTrader    │──────────────────────────▶ │      (Rust)      │──▶ Svelte UI (Tauri 2)
│  cBot       │ ◀──────────────────────────│                  │
└─────────────┘   ~/cAlgo/Cascada/…        │   copy engine    │
┌─────────────┐   HTTPS proxy + WS         │                  │
│ TradingView │──────────────────────────▶ │                  │
│  Chrome     │ ◀──────────────────────────│                  │
└─────────────┘   mitmproxy addon          └────────┬─────────┘
                                                    ▼
                                            local state.json
  1. Master opens a trade → broker EA writes a framed JSON event to a per-login events.jsonl.
  2. Cascada core watches each file, parses, and runs the matching enabled rules.
  3. Volume / SL / TP / symbol are shaped per rule, then a command JSON is appended to the slave's cmd.jsonl.
  4. Slave EA reads, dispatches the order, and writes its own confirmation back.

No TCP sockets, no DLL, no admin privileges — just a shared folder the EAs and Cascada both read/write.


🚴 Quick start

1. Install

Download the installer for your OS from Releases and run it.

2. Connect your first platform

Launch Cascada → Accounts tab → + Connect platform → pick cTrader / MT4 / MT5.

cTrader

  • Click Auto-install cBot — Cascada copies CascadaBridge.algo into your ~/cAlgo/Sources/Robots/.
  • Open cTrader → Automate → add the cBot to a chart → Start.
  • Your account appears in Cascada automatically.

MT4 / MT5

  • Click Auto-install Expert Advisor — Cascada discovers every MT4/MT5 terminal on your machine (even inside Wine/Bottles/CrossOver/PlayOnMac) and drops CascadaBridge.mq4 / .mq5 into each MQL4/Experts/ (or MQL5/Experts/).
  • In MT4/MT5: refresh Navigator → drag CascadaBridge onto any chart → enable AutoTrading.
  • Account appears in Cascada.

TradingView PaperTrading

  • Click Open TradingView — Cascada spins up a sandboxed Chrome window proxied through its local addon (first launch downloads mitmproxy + Chromium ~80 MB, cached forever after).
  • Log in to TradingView, switch to a Paper Trading account on any chart, and start trading.
  • Cascada auto-discovers the account on the first order and adds it to the Accounts panel — no manual setup, no API keys, no extension.
  • Treat it like any other master: drop slaves under it, build rules, capture per-feed offsets in Compare.
  • Click Make master on one account.
  • Drag another account onto it, or use the Attach as slave button.
  • Open Copy rules → tune sizing, filters, caps, schedule.
  • Active, done. Any trade the master fires copies to linked slaves per your rule.

🔧 Build from source

git clone https://github.com/flocom/Cascada.git
cd Cascada
npm install
npm run tauri:dev       # hot-reloading dev app
npm run tauri:build     # release bundle for current OS

Requirements: Node 20+, Rust stable, platform-specific Tauri prerequisites (docs).


🗺 Project layout

Cascada/
├── src/                     # Svelte + TypeScript UI
│   ├── App.svelte
│   ├── components/          # Dashboard, Accounts, Rules, Trades, Compare, Logs
│   └── lib/                 # Tauri IPC wrapper, format helpers, VirtualList
├── src-tauri/               # Rust core
│   └── src/
│       ├── core/            # engine, state, model, persistence, ticket map
│       ├── connectors/      # cTrader · MT file bridge · proto · discovery
│       └── commands/        # Tauri IPC handlers
├── ea/                      # Broker-side adapters
│   ├── ctrader/             # cBot source + prebuilt .algo
│   ├── mt4/                 # MQL4 Expert Advisor + compiled fallback
│   └── mt5/                 # MQL5 Expert Advisor + compiled .ex5
└── .github/workflows/       # CI — multi-platform release

❓ FAQ

Is this a copy-trading service? No — it's a desktop app you run yourself. There's no server in the middle, no one else sees your trades, no subscription.

Can I copy from a broker I don't have credentials for? You need a terminal logged into each account (both masters and slaves). Cascada attaches to the terminal you already use.

Does it work with any broker? Any broker supported by cTrader, MT4 or MT5. Symbol suffixes (EURUSD.r, EURUSDm…) are handled via per-rule prefix/suffix mapping.

What about quote drift between brokers? Per-symbol pip-offset on SL/TP per rule, with per-feed granularity when the master is TradingView — keep separate values for OANDA:EURUSD and ICMARKETS:EURUSD in the same rule. The Compare tab measures the live drift over 30s and writes it back with one click.

Does the TradingView bridge need an API key or premium subscription? No. Cascada runs a local mitmproxy addon between its own Chrome window and TradingView, observes the PaperTrading order traffic and replays it as wire events. You log in to TradingView yourself; Cascada never sees your password.

Is it signed? Not yet — first-run warnings are expected, see the unsigned-build section above for the 10-second bypass on each OS. Code signing is on the roadmap (requires a paid Apple Developer ID and Windows Authenticode cert).

Why open-source? Copy-trading infrastructure shouldn't be a black box. If it routes your orders, you should be able to read its code.


📄 License

PolyForm Noncommercial 1.0.0 — free for personal, research, and noncommercial use. Forking, modifying and sharing is allowed for noncommercial purposes. Commercial use (selling the software, using it to run a trading business, embedding it in a paid product, prop-firm deployments…) requires a separate commercial license — open an issue or contact the author.


Built with Tauri 2 · Rust · Svelte · TypeScript. Made for traders who value local, fast, and auditable.

Top categories

Loading Svelte Themes