This project is a **Stock Chart ** that provides developers and traders with a robust platform to visualize stock market data. It supports multiple chart elements such as candlesticks, trendlines, Fibonacci retracements, and aims to include advanced analysis tools. The tool is designed with performance optimizations to handle large datasets and dynamic interactions like zooming and panning.
- Candlestick Rendering: Visualize OHLC (Open, High, Low, Close) data.
- Dynamic Grid System: Automatically adjusts grid lines based on chart position and zoom level.
- Big Data Performance: Optimized to handle large datasets efficiently.
- Y-Axis Scaling: Automatically adjusts to data (e.g., yMin = 0, yMax = 1000, or based on actual values).
- Zooming and Panning: Provides smooth zooming capabilities without sacrificing performance.
- Modular Chart Design: Allows integration of multiple charting elements (trendlines, Fibonacci tools, etc.).
The project is still under development, and several important features and analysis tools are not fully implemented or remain challenging. Below is a list of unfinished components:
-
Analysis Tools (Not Completed):
- Issue: Key analysis tools (such as moving averages, indicators,or geometric shapes and automated patterns) are not yet implemented.
- Next Steps: Build additional analysis tools and integrate them into the chart in a modular fashion.
-
Precise Zoom Control:
- Issue: Zooming in and out, while synchronizing with the grid, is still difficult to manage for smooth user interaction.
- Next Steps: Refine zooming logic to decouple grid scaling from data rendering.
-
Custom Y-Axis Scaling for Small Values:
- Issue: The chart struggles with very small values (e.g., currency pairs around 1), creating large grid line gaps.
- Next Steps: Create better logic to handle very small ranges without excessive spacing between grid lines.
- Java 8+
- Maven/Gradle
- IntelliJ IDEA (or any other Java IDE)
-
Clone the Repository:
git clone https://github.com/Scarraluba/Stock-Chart.git cd StockChart -
Build the Project:
- If using Maven:
mvn clean install
- If using Gradle:
gradle build
- If using Maven:
-
Run the Project:
- Open the project in IntelliJ IDEA and run the
main()method in the appropriate class (e.g.,StockChartApp.java).
- Open the project in IntelliJ IDEA and run the
- Optimize for Large Datasets: Use batch rendering techniques for large datasets to minimize UI thread load.
- Fork the Repository.
- Clone your Fork.
git clone https://github.com/Scarraluba/Stock-Chart.git
- Create a Feature Branch.
git checkout -b feature-branch
- Commit your Changes.
git commit -m 'Added new feature' - Push to your Fork.
git push origin feature-branch
- Submit a Pull Request.
This project is licensed under the MIT License.

