A fork of freqtrade/frequi with a near-complete overhaul of the user interface. The goal of this project is to make the Freqtrade dashboard more dynamic, more detailed, and more opinionated — with custom widgets tailored to the kind of DCA / futures strategies I run daily.
Upstream FreqUI is great as a general-purpose monitoring tool, but it stops short of surfacing the information I actually look at every day when running multiple bots in parallel: per-bot risk exposure, DCA state, liquidation distance, cross-bot benchmarks, market context, alert history, projected monthly/yearly profit, and so on. This fork fills that gap.
I run several Freqtrade instances at once (short DCA on Hyperliquid, long DCA on Binance, experimental strategies, etc.). The stock FreqUI is fine for monitoring one bot but becomes noisy as soon as you want to compare them or understand where your risk actually is across the whole fleet.
This fork is my answer to that. It rebuilds the dashboard around:
- Fleet-level views — see all bots at once with custom columns, groups, tags, sorting, per-bot alerts, and drag-and-drop ordering.
- Rich popovers — click any metric (profit, win/loss, balance, trades, DCA state…) and get a full contextual card instead of a plain number.
- Market context — BTC / ETH / SOL benchmarks, Fear & Greed, calendar heatmap, so profit numbers don't float in a vacuum.
- Opinionated risk view — net/gross exposure, drawdown gauge, liquidation distance, stress test.
- Full i18n — English, French, German, Spanish, Italian, Portuguese (1200+ keys).
All of this is built on top of the original FreqUI codebase (Vue 3 + PrimeVue + ECharts + Tailwind), and stays compatible with any Freqtrade API.
Work in progress. This fork is functional and I use it daily in production, but it was primarily built for my own needs. Some features may have bugs or behave unexpectedly on setups that differ from mine. I'm actively fixing and adding features. Pull requests, bug reports, feedback, and feature suggestions are very welcome — feel free to open an issue or a PR.
Concrete inventory (148 files changed, +38 413 / -1 676 lines vs. freqtrade/frequi). Highlights:
- Custom Dashboard (
DashboardViewCustom.vue) — new layout with drag-and-droppable enhanced widgets. - Custom Settings view (
SettingsViewCustom.vue) — glassmorphism redesign, grouped into cards (connections, notifications, appearance, About). - Bot Comparison — ~4500 lines of new code on top of the upstream list: custom columns, tags, filters, sort, groups, 13 alert types, custom tags, per-column popovers, drag ordering, CSV export, keyboard shortcuts.
- Market Pulse — BTC/ETH tracker, Fear & Greed index, 24h market performance.
- Activity Timeline — rich event timeline (entries, exits, DCA, alerts, errors) with grouping and filters.
- Performance Heatmap — calendar heatmap, daily / weekly / monthly.
- Risk Overview — net & gross exposure, drawdown gauge, open-risk summary.
- Stress Test card — shock scenarios from -50% to +50%, liquidation capping.
- Enhanced Trades Log — compact, filterable journal.
- Enhanced Log Viewer — coloured logs, heartbeat / WebSocket filters, 500-line buffer. Also a full refresh of the Logs page.
Drop-in replacements that keep the same purpose but add drill-downs, tabs, and stats:
ProfitBenchmarkChart.vue— unifies Profit + BTC/ETH/SOL benchmarks (via CoinGecko).
ProfitDistributionEnhanced.vue— 5 tabs, filters, ECharts.
ProfitOverTimeEnhanced.vue— 3 modes (cumulative / per-trade / rolling), timeframes, stats.CumulativeProfitEnhanced.vue— 4 tabs, zoom, running stats.OpenTradesEnhanced.vue/ClosedTradesEnhanced.vue— custom columns, exit-reason badges, pagination, popovers.
Each of these replaces a plain-text metric with a detailed glassmorphism card:
- Profit popovers: Open / Closed / Summary / Period (monthly & yearly with SVG projections) / Goal.
- Trade popovers: Open trades info, Trade detail (DCA ladder, stoploss, liquidation), Duration health (box plot / percentiles).
- Balance popovers: Balance card, Summary Balance, Win/Loss, Summary Win/Loss, Summary Trades.
- Bot / Exchange / Currency info cards: equity curve, fees, KYC flags, token backing & risks.
- Stoploss chart popover: mini SVG price chart with 5 000 candles, SL & liquidation lines.
- Alert detail card grouped by position.
tradeColumns.ts,exchangeRates.ts,benchmarkData.ts,browserNotifications.ts,summaryCurrency.ts,useAlertDetection.ts,useConfigExport.ts,useLogFiltering.ts,usePopoverHover.ts,useTradePopover.ts.- New stores:
botComparison.ts,logConsole.ts, extendedftbotwrapper.ts/ftbot.ts/layout.ts/settings.ts.
Full translations in EN / FR / DE / ES / IT / PT, lazy-loaded, with a language selector. Roughly 1 200 strings per locale.
- CoinGecko (no API key required) — crypto prices, historical data, benchmarks.
- Alternative.me — Fear & Greed index.
Both are called from the UI only and cached client-side (5–10 min).
There are two supported ways.
I maintain a companion fork of Freqtrade itself at:
https://github.com/titouannwtt/freqtrade-fork
In that fork, freqtrade install-ui is already redirected to fetch this UI instead of the upstream one, so you don't have to do anything special:
git clone https://github.com/titouannwtt/freqtrade-fork.git
cd freqtrade-fork
./setup.sh -i # or your usual install path
freqtrade install-ui # pulls from titouannwtt/frequi-fork
freqtrade trade --config user_data/config.jsonThen open the UI on the API port (by default http://127.0.0.1:8080).
If you want to keep upstream Freqtrade and only swap the UI, build this fork locally and copy the dist/ folder into Freqtrade's UI directory:
# 1. Build the UI
git clone https://github.com/titouannwtt/frequi-fork.git
cd frequi-fork
pnpm install
pnpm run build
# 2. Replace the UI served by your Freqtrade install
# (adjust the path to your freqtrade checkout / venv)
rm -rf /path/to/freqtrade/freqtrade/rpc/api_server/ui/installed/*
cp -a dist/. /path/to/freqtrade/freqtrade/rpc/api_server/ui/installed/Restart your bot — the next time you open the web UI, you'll be on this fork.
Tip: use
cp -alinstead ofcp -aif you want hardlinks, so that any rebuild ofdist/propagates instantly without re-copying.
No change vs. upstream: this fork still expects a Freqtrade API on localhost:8080 (or wherever you configured it), and still requires CORS to be correctly configured if you serve the UI from a different origin than the API.
Same as upstream:
docker compose up -d
# UI available on http://localhost:3000You still need a running Freqtrade bot with CORS properly set up.
pnpm install
pnpm run dev # hot-reload dev server
pnpm run build # production build into dist/
pnpm run lint # lint & auto-fixThe dev server expects a Freqtrade API to be reachable — either on localhost:8080 with CORS configured, or via the Vite proxy.
I publish French-language tutorials on algorithmic trading with Freqtrade here:
https://buymeacoffee.com/freqtrade_france/posts
Strategy design, hyperopt methodology, live feedback, fork rationale, etc.
📝 Detailed presentation of this fork (in French): Mes forks Freqtrade et FreqUI sont publics — pourquoi les utiliser et comment s'y mettre
This software is provided for educational and informational purposes only. It does not constitute investment advice, financial advice, trading advice, or any other sort of advice. The author is not a licensed financial advisor (not a CIF — Conseiller en Investissements Financiers — under French law, nor any equivalent certification in any jurisdiction).
- Past performance displayed in the UI is not indicative of future results.
- You are solely responsible for your own trading decisions and their consequences.
- THE AUTHORS ASSUME NO LIABILITY FOR YOUR TRADING RESULTS.
Same license as upstream FreqUI (GPL-3.0). See LICENSE.
Je fais tourner plusieurs instances de Freqtrade en parallèle (DCA short sur Hyperliquid, DCA long sur Binance, stratégies expérimentales, etc.). La FreqUI de base est bien pour monitorer un bot, mais elle devient vite bruyante dès qu'on veut les comparer ou comprendre où se trouve le risque sur l'ensemble de la flotte.
Ce fork est ma réponse à ce problème. Il reconstruit le dashboard autour de :
- Vues orientées flotte — tous les bots en même temps avec colonnes custom, groupes, tags, tri, alertes par bot, et réorganisation par glisser-déposer.
- Popovers riches — chaque chiffre (profit, win/loss, balance, trades, état DCA…) s'ouvre en carte contextuelle détaillée.
- Contexte de marché — benchmarks BTC / ETH / SOL, Fear & Greed, heatmap calendrier, pour que les chiffres de profit ne flottent pas dans le vide.
- Vue risque assumée — exposition nette/brute, jauge de drawdown, distance de liquidation, stress test.
- i18n complète — anglais, français, allemand, espagnol, italien, portugais (plus de 1 200 clés).
Le tout repose sur la base de FreqUI (Vue 3 + PrimeVue + ECharts + Tailwind) et reste compatible avec n'importe quelle API Freqtrade.
Work in progress. Ce fork est fonctionnel et je l'utilise quotidiennement en production, mais il a été conçu avant tout pour mes propres besoins. Certaines features peuvent avoir des bugs ou se comporter de façon inattendue sur des setups différents du mien. J'ajoute et corrige activement des features. Les pull requests, rapports de bugs, retours et suggestions de features sont très bienvenus — n'hésitez pas à ouvrir une issue ou une PR.
Inventaire concret (148 fichiers modifiés, +38 413 / -1 676 lignes vs. freqtrade/frequi). Points forts :
- Dashboard custom (
DashboardViewCustom.vue) — nouveau layout, widgets enhanced réorganisables par drag & drop. - Vue Paramètres custom (
SettingsViewCustom.vue) — refonte glassmorphism, sections en cartes (connexions, notifications, apparence, À propos). - Comparaison de bots — ~4 500 lignes ajoutées : colonnes custom, tags, filtres, tri, groupes, 13 types d'alertes, popovers par colonne, ré-ordonnancement, export CSV, raccourcis clavier.
- Market Pulse — suivi BTC / ETH, Fear & Greed, performance marché 24 h.
- Activity Timeline — timeline événementielle (entrées, sorties, DCA, alertes, erreurs) avec filtres et regroupement.
- Heatmap de performance — heatmap calendrier (jour / semaine / mois).
- Risk Overview — exposition nette & brute, jauge de drawdown, résumé risque ouvert.
- Stress Test — scénarios de choc de -50 % à +50 %, liquidation plafonnée.
- Trades Log enhanced — journal compact filtrable.
- Log Viewer enhanced — logs colorés, filtres heartbeat / WebSocket, buffer de 500 lignes. Également une refonte complète de la page Logs.
Remplacements drop-in, même rôle mais avec drill-down, onglets et statistiques :
ProfitBenchmarkChart.vue— unifie Profit + benchmarks BTC/ETH/SOL (via CoinGecko).
ProfitDistributionEnhanced.vue— 5 onglets, filtres, ECharts.
ProfitOverTimeEnhanced.vue— 3 modes (cumulatif / par trade / glissant), timeframes, stats.CumulativeProfitEnhanced.vue— 4 onglets, zoom, stats live.OpenTradesEnhanced.vue/ClosedTradesEnhanced.vue— colonnes custom, badges exit reason, pagination, popovers.
Chaque métrique devient cliquable et s'ouvre en carte détaillée :
- Profit : ouvert / fermé / Summary / période (mensuel & annuel avec projections SVG) / objectif.
- Trades : infos trades ouverts, détail trade (échelle DCA, stoploss, liquidation), santé durée (box plot / percentiles).
- Balance : carte balance, Summary Balance, Win/Loss, Summary Win/Loss, Summary Trades.
- Fiches Bot / Exchange / Currency : courbe d'equity, frais, KYC, backing et risques des tokens.
- Popover stoploss : mini graphique prix SVG (5 000 bougies, SL et liquidation).
- Carte d'alertes détaillée groupée par position.
tradeColumns.ts,exchangeRates.ts,benchmarkData.ts,browserNotifications.ts,summaryCurrency.ts,useAlertDetection.ts,useConfigExport.ts,useLogFiltering.ts,usePopoverHover.ts,useTradePopover.ts.- Nouveaux stores :
botComparison.ts,logConsole.ts. Stores existants étendus :ftbotwrapper.ts,ftbot.ts,layout.ts,settings.ts.
Traductions complètes en EN / FR / DE / ES / IT / PT, lazy-loadées, avec sélecteur de langue. ~1 200 clés par locale.
- CoinGecko (sans clé API) — prix crypto, historique, benchmarks.
- Alternative.me — Fear & Greed index.
Les deux sont appelées côté UI uniquement et cachées côté client (5 à 10 min).
Deux méthodes.
Je maintiens un fork complémentaire de Freqtrade lui-même :
https://github.com/titouannwtt/freqtrade-fork
Dans ce fork, freqtrade install-ui pointe déjà sur cette UI au lieu de l'upstream. Rien à faire de spécial :
git clone https://github.com/titouannwtt/freqtrade-fork.git
cd freqtrade-fork
./setup.sh -i # ou votre méthode d'install habituelle
freqtrade install-ui # récupère depuis titouannwtt/frequi-fork
freqtrade trade --config user_data/config.jsonPuis ouvrir l'UI sur le port de l'API (par défaut http://127.0.0.1:8080).
Si vous voulez garder le Freqtrade officiel et seulement swapper l'UI, buildez ce fork localement et copiez dist/ dans le dossier UI de Freqtrade :
# 1. Build de l'UI
git clone https://github.com/titouannwtt/frequi-fork.git
cd frequi-fork
pnpm install
pnpm run build
# 2. Remplacer l'UI servie par votre Freqtrade
# (ajustez le chemin vers votre install freqtrade)
rm -rf /chemin/vers/freqtrade/freqtrade/rpc/api_server/ui/installed/*
cp -a dist/. /chemin/vers/freqtrade/freqtrade/rpc/api_server/ui/installed/Redémarrez le bot — la prochaine ouverture de l'UI sera sur ce fork.
Astuce : utilisez
cp -alau lieu decp -apour créer des hardlinks, ce qui fait que tout rebuild dedist/se propage instantanément sans recopier.
Rien de changé vs. upstream : ce fork attend toujours une API Freqtrade sur localhost:8080 (ou là où vous l'avez configurée), et nécessite toujours une config CORS correcte si l'UI est servie depuis une origine différente de l'API.
Identique à l'upstream :
docker compose up -d
# UI dispo sur http://localhost:3000Il faut toujours un bot Freqtrade en face, avec CORS configuré.
pnpm install
pnpm run dev # serveur de dev hot-reload
pnpm run build # build production dans dist/
pnpm run lint # lint & auto-fixLe serveur de dev a besoin d'une API Freqtrade accessible — soit directement sur localhost:8080 avec CORS, soit via le proxy Vite.
Je publie mes tutoriels sur le trading algorithmique avec Freqtrade ici :
https://buymeacoffee.com/freqtrade_france/posts
Design de stratégie, méthodo hyperopt, retours d'expérience live, choix de fork, etc.
📝 Présentation détaillée de ce fork : Mes forks Freqtrade et FreqUI sont publics — pourquoi les utiliser et comment s'y mettre
Ce logiciel est fourni à des fins éducatives et informatives uniquement. Il ne constitue en aucun cas un conseil en investissement, un conseil financier, un conseil de trading, ni aucun autre type de conseil. L'auteur n'est pas Conseiller en Investissements Financiers (CIF) au sens de l'article L. 541-1 du Code monétaire et financier, ni titulaire d'aucune certification équivalente dans quelque juridiction que ce soit.
- Les performances passées affichées dans l'interface ne préjugent pas des performances futures.
- Vous êtes seul responsable de vos décisions de trading et de leurs conséquences.
- LES AUTEURS N'ASSUMENT AUCUNE RESPONSABILITÉ POUR VOS RÉSULTATS DE TRADING.
Même licence que FreqUI upstream (GPL-3.0). Voir LICENSE.