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 · Features · How it works · Quick start · FAQ
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 info → Run 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.
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:
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.appTo silence the "would like to access data from other apps" prompt:
System Settings → Privacy & Security → Full Disk Access → + → add Cascada.app. Required so Cascada can discover MT4/MT5 terminals installed via Wine, Bottles, or CrossOver.
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.
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.
- 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 PaperTrading ✨ new — 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).
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 granularity ✨ new —
OANDA:EURUSDandICMARKETS:EURUSDcan 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).
- 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.
- 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.
- 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.
- 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.
┌─────────────┐ 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
- Master opens a trade → broker EA writes a framed JSON event to a per-login
events.jsonl. - Cascada core watches each file, parses, and runs the matching enabled rules.
- Volume / SL / TP / symbol are shaped per rule, then a command JSON is appended to the slave's
cmd.jsonl. - 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.
Download the installer for your OS from Releases and run it.
Launch Cascada → Accounts tab → + Connect platform → pick cTrader / MT4 / MT5.
- Click Auto-install cBot — Cascada copies
CascadaBridge.algointo your~/cAlgo/Sources/Robots/. - Open cTrader → Automate → add the cBot to a chart → Start.
- Your account appears in Cascada automatically.
- Click Auto-install Expert Advisor — Cascada discovers every MT4/MT5 terminal on your machine (even inside Wine/Bottles/CrossOver/PlayOnMac) and drops
CascadaBridge.mq4/.mq5into eachMQL4/Experts/(orMQL5/Experts/). - In MT4/MT5: refresh Navigator → drag
CascadaBridgeonto any chart → enable AutoTrading. - Account appears in Cascada.
- 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.
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 OSRequirements: Node 20+, Rust stable, platform-specific Tauri prerequisites (docs).
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
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.
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.