FinancialGuiApp is a cross-platform, Python-based graphical user interface (GUI) designed for analyzing and visualizing financial time-series data. Developed with PyQt6 and Plotly, it offers an interactive platform for traders, analysts, and researchers to import, process, and explore financial datasets such as stock and forex prices. The app features real-time candlestick charting, technical indicators (RSI, MACD, Stochastic Oscillator), peak/valley detection, and trading simulations.
- Built with PyQt6 for seamless interaction.
- Real-time candlestick charts with Plotly.
- Includes Moving Averages, RSI, MACD, and Stochastic Oscillator.
- Identifies peaks and valleys as buy/sell signals.
- Simulates live data flow with configurable intervals.
- Manual and automatic trade execution (Buy/Sell/Close).
- Persistent file path tracking via
config.json. - Save trade history for further analysis.
- Hosts Plotly JS locally for visualization.
financial_gui_app/
├── README.md
├── main.py
├── requirements.txt
├── setup.py
├── docs/
├── src/
│ ├── main.py
│ ├── assets/
│ │ ├── images/
│ │ └── styles/
│ │ └── app.qss
│ ├── core/
│ │ ├── controllers.py
│ │ ├── models.py
│ │ ├── services.py
│ │ ├── utils.py
│ ├── data/
│ │ ├── GBP_USD_M15.pkl
│ │ ├── config.json
│ │ ├── config_manager.py
│ ├── gui/
│ │ ├── main_window.py
│ │ ├── dialogs/
│ │ │ └── settings_dialog.py
│ │ └── widgets/
│ │ ├── control_panel.py
│ │ ├── message_box.py
│ │ ├── plot_view.py
│ └── utils/
│ ├── http_server_thread.py
│ ├── output_stream.py
│ ├── plotly-3.0.1.min.js
└── tests/
- Python 3.9+
- Recommended: virtual environment
- Install dependencies from
requirements.txt:
pip install -r requirements.txtDependencies include:
- PyQt6
- pandas
- numpy
- plotly
- scipy
- scikit-learn
- openpyxl
python main.pyThe GUI will open with controls for importing data, visualizing charts, and simulating trades.
- Import Data: Load
.pklfiles fromsrc/data/withTimeandClosecolumns. - Set Time Range: Choose start, end, and current dates with an increment value (e.g., 15 minutes).
- Plot and Increment: Click Increment/Plot or enable Auto Increment to stream data.
- Trade Simulation: Use Buy, Sell, or Close Trade, or toggle Auto Trade.
- Export: Save trade data as Excel for offline analysis.
- Visual Feedback: The plot shows technical indicators, peaks, valleys, and trade positions.
main.py: Entry point, initializes the main window and server.control_panel.py: Manages user input and simulation controls.plot_view.py: Embeds Plotly chart with data overlays.controllers.py: Handles trading logic and simulation.config_manager.py: Reads/writes configuration settings.http_server_thread.py: Local server for Plotly JS.
- MA (50-period)
- RSI (14-period)
- MACD (12, 26, 9)
- Stochastic (%K, %D)
- Peak/valley detection via
scipy.signal.find_peaks
No formal test suite yet. Manual testing recommended:
- Load valid
.pkldata - Use time slider and increment controls
- Try manual and auto trading
- Export to Excel
- Check logs for feedback/errors
Main Application View
Data Logging In Action
- Support for JSON/SQL input
- More technical indicators
- Real-time streaming (WebSocket)
- Smarter trading logic
- Optimized rendering for large datasets
- Unit testing framework
git clone https://github.com/a-dorgham/FinancialGuiApp.git
cd FinancialGuiApp
git checkout -b feature-name
# Make changes
git commit -m "Add feature"
git push origin feature-nameThen open a pull request.
MIT License
For bug reports, feature requests, or collaboration:
- GitHub Issues: FinancialApp Issues
- Email: a.k.y.dorgham@gmail.com
- Connect: LinkedIn | GoogleScholar | ResearchGate | ORCiD