From idea to live trade — in one file.
qkt is a free, open-source trading engine. Write your strategy in one small file, then test it against years of real market data, run it on fake money to make sure it behaves, and connect it to your broker when you're ready. We work with Bybit, MT5 brokers (Exness, ICMarkets, FTMO, Pepperstone), and TradingView feeds today — more brokers (Alpaca, IBKR) on the way.
How qkt works, in three steps¶
Write your strategy¶
You write a small file that says "when this happens, do that" — for example: when the 9-period moving average crosses above the 21-period one, buy Bitcoin with a stop-loss. The syntax reads like English, so you don't need to be a software engineer to follow it.
Test it on real data¶
Run the same file against years of historical market data — Bitcoin, EURUSD, gold, stocks. qkt reports how the strategy would have performed: how many trades, win rate, profit, the deepest drawdown. You'll know whether the idea is worth more time before you risk anything.
Go live, when you're ready¶
Point the same strategy file at a paper-trading account first to watch it in real-time. When you're satisfied, connect it to your real broker. qkt is designed so the trades you saw in testing match what happens live — the engine doesn't behave differently between modes.
What you can build¶
A few examples of what people use qkt for:
-
Test a trading idea
You've read about a momentum or mean-reversion strategy and want to see whether it actually works on real markets. Write it as a
.qktfile, run it against historical data, look at the numbers. -
Validate before risking money
Paper-trade your strategy for a few weeks. Watch how it reacts to news events, weekends, and unusual price moves — without losing a penny.
-
Run multiple strategies at once
qkt's daemon hosts many strategies side by side, each with its own observability port, log file, and risk budget. Combine them into a portfolio when you're ready.
-
Tune your parameters honestly
Run a parameter sweep across hundreds of combinations to find what worked, then walk-forward test to make sure it's not overfit to one period of data.
-
Connect to your broker
Bybit (spot + linear), MT5 brokers (Exness, ICMarkets, FTMO, Pepperstone), TradingView feeds. Adding a new broker is a small adapter — Alpaca and IBKR are on the roadmap.
-
Read and modify the engine
qkt is small (~30k lines of Kotlin), open-source under Apache 2.0, and designed to be read end-to-end. Forking and changing behavior is encouraged.
Start here¶
-
5-minute quickstart
Clone, build, run your first paper-traded strategy. Real fills land in your terminal.
-
Browse the recipes
Copy-paste guides for the most common tasks — moving-average crossovers, stop-losses, parameter sweeps, debugging.
-
Deploy live on MT5
Docker stack walkthrough for Exness (or ICMarkets, FTMO, Pepperstone). About 10 minutes end-to-end.
-
qkt vs alternatives
Honest comparison with Lean, Backtrader, freqtrade, NautilusTrader, QuantConnect. When to pick qkt — and when not to.
-
Learn the strategy language
Every keyword qkt understands, with examples. Indicators, conditions, orders, brackets, pyramiding.
-
How the engine works inside
Tick → strategy → order → broker → trade. Four diagrams, twenty minutes — if you want to understand the internals.
Before you trade real money¶
qkt is pre-1.0 — please don't connect a funded account yet
qkt is open-source software built by a single developer. The engine works and is well-tested on historical and paper data, but it has not yet been used in production with real funds. A few honest caveats:
- No third-party security review. The code is open and auditable, but no one has paid auditors to look at it.
- No real-money users yet. That means edge cases that only show up under live trading conditions haven't all been found.
- Breaking changes between minor versions. The strategy language is stable; the engine internals still move.
- The MT5 connector is a community wrapper, not officially supported by MetaQuotes.
Use qkt with paper accounts and demo brokers. Wait for the 1.0 release before considering live capital. If you find something broken, open an issue — that's how it gets fixed.