Run battle-tested strategies out of the box, or build your own in Rust. Backtest on real tick data, sweep millions of parameter combos, monitor every fill from a live analytical dashboard.
The CLI runs your strategies. tradectl Lab is the desktop client that connects to them — a GPU-rendered trade-flow chart, every fill, live positions, and settings — for paper and live bots alike.
tradectl run executes your strategy against the exchange around the clock and exposes a secure, authenticated control port. It's the server — run it on your laptop or a VPS.
The native desktop app connects to your running bots for real-time charts, fills, and settings — plus local backtests and sweeps. Nothing to host, no browser.
Accounts, marketplace, and licensing — plus a relay so the Lab reaches your bots anywhere and pushes Telegram alerts.
One curl, no package manager, no setup. This installs the tradectl command-line engine that runs your bots — the desktop Lab is a separate download above. The script detects your OS and arch and pulls the matching signed binary onto your PATH.
From backtesting to live deployment, shadow optimization, and AI-powered monitoring.
Run strategies 24/7 against Binance perpetual futures with the same engine our own production bots use. Survives flaky networks, partial fills, exchange quirks — nothing leaks, nothing leaves stranded positions.
Realistic fill simulation with slippage, maker/taker fees, partial fills, and SL delay. The in-memory exchange replays tick, trade, and kline streams through the exact runner that ships live, so backtest results match production behavior bit-for-bit. Zero-copy binary format loads months of tick data in microseconds.
Vectorized Structure-of-Arrays batch engine tests millions of parameter combinations on a single core — ~1000x throughput over sequential backtesting. Constraint filters prune dominated regions early, results rank by a composite score that blends PnL, trade frequency, and max drawdown, and the top runs export to CSV for promotion straight into live or shadow.
Paper-trade millions of parameter variants alongside your live strategy in real time — zero extra infrastructure, zero extra API calls. The market feed your live bot already consumes drives every shadow at once.
/shadow + dashboard ranking against your live PnL30+ commands cover everything: live positions, daily and monthly PnL breakdowns, per-coin attribution, session status, shadow rankings, pair rotation, and one-tap strategy stop / resume. Fills, TP/SL hits, and error pauses stream to your phone in real time, batched so you never get rate-limited.
Ask your bot questions in plain English via Telegram. Get trade explanations, performance summaries, and risk assessments from an AI agent with live data access.
A second, independent bot that guards your live positions. It watches your running bots and exchange account and steps in when something breaks — closing naked positions, forcing reduce-only, and tripping a dead-man's switch if a bot goes dark.
Real metrics from live bots, streamed in real time straight from production.
Only bots whose operators explicitly opt in appear here — everything else stays on the trader's machine.
Loading…
Build your own strategy or pick one from the marketplace. Test it, optimize it, deploy it.
Write your own strategy in Rust with the SDK, or pick one from the marketplace. Backtest against historical data before risking real capital.
Set your parameters, run sweeps to find optimal settings, and shadow-test variants alongside live trading to validate performance.
Go live on Binance with one command. Track every trade via Telegram bot, real-time dashboard, or AI-powered explainer.
Devs write custom strategies in Rust with the type-safe SDK. Everyone else installs community strategies from the marketplace — the same ones the authors run live on their own capital, with public PnL curves, drawdown stats, and trade history you can audit before subscribing.
1 use tradectl_sdk::*; 2 3 declare_strategy!("dip_buyer", DipBuyer::new); 4 5 pub struct DipBuyer { tp: f64, sl: f64 } 6 7 impl DipBuyer { 8 pub fn new(p: &Params) -> Self { 9 Self { 10 tp: p.get("tp", 0.2), 11 sl: p.get("sl", 0.5), 12 } 13 } 14 } 15 16 impl Strategy for DipBuyer { 17 fn on_ticker( 18 &mut self, 19 t: &TickerEvent, 20 ctx: &StrategyContext, 21 ) -> Action { 22 if !ctx.positions.is_empty() { 23 return Action::Hold; 24 } 25 Action::PlaceEntry { 26 side: Side::Long, 27 price: Some(t.bid_price), 28 size: 100.0, 29 kind: OrderKind::Limit, 30 exits: vec![], 31 entry_id: None, 32 } 33 } 34 35 fn on_fill( 36 &mut self, 37 f: &FillEvent, 38 _: &StrategyContext, 39 ) -> FillResponse { 40 if !f.is_entry { 41 return FillResponse::default(); 42 } 43 let tp = f.price * (1.0 + self.tp / 100.0); 44 let sl = f.price * (1.0 - self.sl / 100.0); 45 FillResponse::with_exits(vec![ 46 ExitOrder::tp(tp), 47 ExitOrder::sl(sl), 48 ]) 49 } 50 51 fn name(&self) -> &str { "dip_buyer" } 52 }|
Backtests, parameter sweeps, paper trading, shadow optimization, the dashboard, and Telegram bot are free for everyone. Live trading on real money is gated behind closed-alpha access while we harden the engine with a small group of traders.
Everything except live trading. No card, no signup gate.
Run real strategies on real money. Your keys, your exchange.
Connect your exchange account. More integrations shipping continuously.
Install the CLI, backtest your idea, paper-trade it on live feeds — all free. Request live access once you've proven your strategy.