Desktop multi-timeframe trading dashboard powered by MetaTrader 5, pywebview, React, and Python.
FX Strategies is a Windows-focused desktop application for monitoring multiple trading symbols through a compact multi-timeframe indicator dashboard. It combines a Python backend, a React frontend, and MetaTrader 5 market data inside a native desktop window built with pywebview.
The application stores the selected symbols locally, fetches rates from MetaTrader 5, calculates technical indicators in Python, and renders a modern card-based interface with light and dark themes.
|
|
| Dark Theme | Light Theme |
- Desktop-first experience with
pywebview - Real MetaTrader 5 integration for symbols and candle data
- Multi-timeframe analysis across
M1,M5,M15, andM30 - Local symbol persistence with SQLite in
%APPDATA%/FX Strategies - Indicator cards with mini charts, signal badges, and per-timeframe summaries
- Support for light and dark themes
- Development runner that starts Vite and hot-reloads the Python app
- Windows-friendly packaging with PyInstaller
- ADX
- EMA Cross (
EMA 9,EMA 21,EMA 55,EMA 200) - MACD (
12, 26, 9) - Support / Resistance
- Williams %R
- VWAP Bands
- Bollinger Breakout
- Pivot Point
| Layer | Tools |
|---|---|
| Desktop shell | pywebview |
| Backend | Python 3.12, SQLAlchemy, pandas, MetaTrader5 |
| Frontend | React 19, TypeScript, Vite, Tailwind CSS, TanStack Query |
| Storage | SQLite |
| Packaging | PyInstaller |
flowchart LR
MT5["MetaTrader 5"] --> PY["Python backend"]
DB["SQLite symbol store"] --> PY
PY --> API["pywebview JS API bridge"]
API --> UI["React + Vite frontend"]
UI --> DESKTOP["Desktop app window"]
- Windows environment
- Python
3.12+ - Node.js
pnpmenabled through Corepack or installed globally- MetaTrader 5 installed and available on the same machine
uv sync
cd frontend
pnpm install
cd ..uv run python -m src.scripts.devThis starts:
- the Vite development server
- the Python desktop app in development mode
- automatic Python restart when files inside
src/change
uv run python -m src.scripts.buildTo generate an onedir build instead of the default onefile build:
uv run python -m src.scripts.build --onedir| Variable | Purpose |
|---|---|
FX_STRATEGIES_MODE |
dev or prod |
FX_STRATEGIES_DEV_URL |
Vite URL in development |
FX_STRATEGIES_VITE_PORT |
Vite port override |
FX_STRATEGIES_DIST_INDEX |
Custom built frontend entry file |
FX_STRATEGIES_WINDOW_TITLE |
Desktop window title |
FX_STRATEGIES_WINDOW_WIDTH |
Window width |
FX_STRATEGIES_WINDOW_HEIGHT |
Window height |
FX_STRATEGIES_WINDOW_MIN_WIDTH |
Minimum width |
FX_STRATEGIES_WINDOW_MIN_HEIGHT |
Minimum height |
| Variable | Purpose |
|---|---|
FX_STRATEGIES_MT5_PATH |
MetaTrader 5 terminal path |
FX_STRATEGIES_MT5_LOGIN |
Account login |
FX_STRATEGIES_MT5_PASSWORD |
Account password |
FX_STRATEGIES_MT5_SERVER |
Broker server name |
fx_strategies/
├─ src/
│ ├─ MQL/ # MetaTrader 5 integration and connection management
│ ├─ controllers/ # Application-level orchestration
│ ├─ database/ # SQLite session and initialization
│ ├─ models/ # SQLAlchemy models
│ ├─ services/ # pywebview API bridge
│ ├─ scripts/ # Development and build runners
│ └─ use_cases/ # Indicator calculations and dashboard payload assembly
├─ frontend/
│ ├─ src/components/
│ ├─ src/hooks/
│ ├─ src/layout/
│ └─ src/types/
└─ screenshot/
├─ dark.png
└─ light.png
This repository follows a Conventional Commits style for commit messages.
Examples:
feat(api): add structured MT5 error responsesfix(ui): prevent pywebview callback crashdocs(readme): add multilingual project overviewci(release): build Windows binary on version tags
See CONTRIBUTING.md for the full convention and local template setup.
FX Strategies is a desktop dashboard for traders who want to inspect several symbols through a single, dense, multi-timeframe workspace. The app loads saved symbols, fetches price data from MetaTrader 5, calculates indicators in Python, and renders the results in an interface optimized for fast scanning.
- Track multiple instruments from one desktop app
- Review indicator snapshots across four short-term timeframes
- Switch between light and dark UI themes
- Save symbol metadata locally for quick reuse
- Package the app as a standalone Windows executable
This project fits traders and developers who want a local desktop tool instead of a browser-only dashboard, especially when the workflow depends on MetaTrader 5 data and custom Python indicator logic.
FX Strategies é um dashboard desktop para traders que querem analisar vários símbolos em um único espaço de trabalho multi-timeframe. O app carrega os símbolos salvos, busca os dados no MetaTrader 5, calcula os indicadores em Python e mostra tudo em uma interface pensada para leitura rápida.
- Acompanhar vários ativos dentro de um único aplicativo desktop
- Ver snapshots de indicadores em quatro timeframes curtos
- Alternar entre tema claro e escuro
- Salvar símbolos localmente para reutilização rápida
- Empacotar a aplicação como executável Windows
Este projeto é uma boa base para traders e desenvolvedores que preferem uma ferramenta local, em vez de um dashboard apenas no navegador, principalmente quando o fluxo depende de dados do MetaTrader 5 e de lógica de indicadores em Python.
FX Strategies は、複数の銘柄を 1 つのデスクトップ画面で素早く確認するためのマルチタイムフレーム分析アプリです。保存済みシンボルを読み込み、MetaTrader 5 から価格データを取得し、Python でインジケーターを計算して、見やすいカード UI に表示します。
- 複数銘柄を 1 つのデスクトップアプリで監視
M1、M5、M15、M30の 4 つの時間足を同時に確認- ライトテーマとダークテーマの切り替え
- シンボル情報をローカルに保存
- Windows 向けに単体実行形式へパッケージ可能
ブラウザ中心ではなく、MetaTrader 5 と Python ベースの分析ロジックを組み合わせたローカル環境のトレーディングツールを作りたい場合に適しています。

