Open-source crypto trading strategy for Freqtrade. Multi-indicator confluence + hyperopt-tuned. Live performance public, every trade verifiable.
TrendRider โ Open-Source Crypto Trading Strategy
A multi-indicator confluence strategy for Freqtrade, running on Bybit USDT-perpetual futures. Code is open. Numbers are public. Failures are documented.
๐ Live dashboard โ trendrider.net/live (updates every 5 minutes from the bot's database)
๐ผ Need a custom trading bot, backtest, or exchange integration? I build these for clients โ Freqtrade setup, strategy backtesting, Telegram bots, exchange APIs. Contact: @GennadyYakubovsky
TL;DR
| | Value | |---|---| | Live since | April 1, 2026 (paper-trading on $500) | | Live stats | Real-time on trendrider.net/live โ trades, P&L, win rate, drawdown | | Backtest stats | Latest hyperopt+walk-forward results published on /live per strategy version | | Pairs | 13 USDT-perp (BTC, ETH, SOL, DOGE, XRP, ADA, AVAX, DOT, POL, NEAR, ATOM, SUI, OP) | | Timeframe | 1h candles | | Risk | Hyperopt-tuned stoploss + ROI ladder + trailing stop, 8 protections (cooldown, stoploss-guard, max-drawdown), max-open-trades cap |
No real money is at risk yet. This is a public dry-run experiment โ paper-trading first, real capital only after a long honest track record.
Why This Repo Is Different
The crypto-bot space is full of black boxes promising 200% APY. This isn't that.
- โ
Open source โ every line of strategy code in
TrendRiderStrategypublic.py. No hidden logic, no API key required to read what it does. - โ Public live performance โ every trade, every loss, on trendrider.net/live. API serves directly from the bot's SQLite DB. No edits possible.
- โ
Honest post-mortems โ 13 days of breakeven trading documented publicly, including the moment one fix turned
-$0.06into+$6.42. - โ Walk-forward validated โ every hyperopt run holds out a final period as out-of-sample. If new params don't beat baseline on the held-out window, they don't ship. Process is committed to git โ every parameter change is traceable.
- โ Conservative claims โ paper-trading first, real money only after a long honest track record. No promises of life-changing returns.
Strategy Logic (1-minute version)
For each candle, every pair is scored across 8+ technical indicators:
| Indicator | What it measures | |---|---| | EMA fast/slow crossover | Trend direction | | RSI | Overbought / oversold | | MACD histogram | Momentum shift | | ADX | Trend strength | | Bollinger Bands | Volatility envelope | | ATR | Volatility magnitude | | Volume ratio | Conviction | | Market regime classifier | Bull / Bear / Ranging / High-Vol |
Each indicator scores 0-2 points (bear/neutral/bull). Total 0-10. Trades fire only at high confidence in the current regime. Exact thresholds are hyperopt-tuned and live in the strategy file.
Exits use a hyperopt-tuned ROI ladder + custom_exit cascade:
earlylosscut_2h / 4h / 8h / 16hโ staged early-exit ladder if a trade isn't workingtimeexit24hโ hard cap on holding periodtrend_brokenโ exit if structural EMA setup reverses- Hyperopt-tuned ROI ladder + trailing stop layered on top
TrendRiderStrategypublic.py and update each time we re-run hyperopt with fresh data.
Quick Start
Prerequisites: Python 3.10+, Docker (recommended), a Bybit account (testnet for dry-run).
# 1. Clone this repo
git clone https://github.com/darkvolg/Trading.git
cd Trading/FreqtradeBot
2. Install Freqtrade (follow https://www.freqtrade.io/en/stable/installation/)
3. Copy config and add your Bybit testnet API keys
cp config.json my-config.json
Edit my-config.json โ set "key" and "secret"
4. Download historical data (one-time)
freqtrade download-data --exchange bybit --timeframe 1h \
--pairs BTC/USDT:USDT ETH/USDT:USDT SOL/USDT:USDT DOGE/USDT:USDT \
--timerange 20260104-20260423
5. Run a backtest to verify the same numbers we publish
freqtrade backtesting --config my-config.json \
--strategy TrendRiderStrategy --strategy-path user_data/strategies \
--timerange 20260104-20260423
6. Go live in dry-run mode (paper trading)
freqtrade trade --config my-config.json --strategy TrendRiderStrategy
Full setup walkthrough: Freqtrade Tutorial 2026: From Zero to Live Trading Bot
How to Verify Our Claims
Don't trust โ verify. Here's how to check every claim on this page yourself:
| Claim | How to verify | |---|---| | Backtest stats | Clone repo, run backtest command above. Reproduce locally on the same data the bot uses. | | Live stats | Visit /live โ JSON API at /api/live-stats.json updated every 5 min directly from the bot's SQLite DB | | Walk-forward validation | Read git history โ every hyperopt commit includes the in-sample + out-of-sample numbers, so curve-fitting is visible if it happened | | No external paid APIs | Search the strategy file โ only TA-Lib indicators, no requests calls to paid services | | Open-source | You're reading the source. |
Repo Structure
Trading/
โโโ FreqtradeBot/ # Bot configuration + strategy
โ โโโ config.json # Pair whitelist, max trades, exchange
โ โโโ user_data/strategies/
โ โโโ TrendRiderStrategy_public.py # The strategy itself
โโโ landing/ # trendrider.net source code (Next.js)
โ โโโ app/blog/ # 50+ articles on bot design, SEO
โ โโโ app/live/ # Public live dashboard
โ โโโ components/ # UI
โโโ README.md # This file
The strategy file is the only file you need to run the bot. The landing/ folder is the marketing site source โ included for transparency, not required for trading.
Live Performance Methodology
The /live dashboard is fed by scripts/exportlivestats.py (on the production server) which:
- Reads
tradesv3.dryrun.sqliteโ the bot's SQLite trade log - Aggregates: total/closed/open trades, P&L, win rate, exit-reason breakdown
- Writes JSON to
/var/www/trendrider/api/live-stats.json - Cron runs this every 5 minutes
Hyperopt + Walk-Forward Methodology
Parameters (entry thresholds, ROI ladder, stoploss, trailing stop) are tuned via Freqtrade hyperopt โ periodically re-run with fresh data.
Process:
- Train (in-sample) โ hyperopt searches parameter space on the bulk of historical data
- Hold-out (out-of-sample) โ a final ~14 days is reserved and never seen during hyperopt
- Validation gate โ new params must beat the previous baseline on the hold-out window. If they don't, they don't ship
- Commit โ every parameter change goes to git with the in-sample + out-of-sample numbers, so curve-fitting is visible after the fact
Roadmap
- [ ] PR #334 merged into
freqtrade/freqtrade-strategies - [ ] First monthly performance report (end of April 2026)
- [ ] 30 days of live data โ switch from $500 paper to $500 real-money
- [ ] Pro Pack: pre-tuned config + monthly hyperopt updates (paid tier)
- [ ] Multi-exchange support (Binance, OKX) โ currently Bybit only
Disclaimer
This is not financial advice. Past performance does not guarantee future results. Cryptocurrency trading involves substantial risk of loss. Backtests model historical conditions and may not reflect future market behavior. Live results so far are paper-trading only โ no real money has been risked.
If you choose to run this strategy with real funds:
- Start with the smallest amount you can afford to lose entirely
- Keep dry-run mode active for at least 30 days first
- Monitor the bot's behavior in your specific market conditions
- Understand that any bot can have a losing streak
Contributing
Issues and PRs welcome. Particularly interested in:
- Bug reports with reproducible scenarios
- Ideas for additional indicators or exit logic (please backtest first)
- Documentation improvements
License
GPL-3.0 โ same license as Freqtrade itself, the framework this strategy runs on. You're free to use, modify, and redistribute, as long as derivative works remain open-source under the same license.
See LICENSE for full text.
Links
- ๐ Website: trendrider.net
- ๐ Live dashboard: trendrider.net/live
- ๐ Blog: trendrider.net/blog
- ๐ฌ Telegram: @TrendRiderSignals
- ๐ค Built on: freqtrade/freqtrade