This is a Python-based web application for Elliott Wave analysis of financial markets. It detects wave structures (impulses and corrections), projects future price zones using Fibonacci retracements/extensions, and provides trade setup recommendations with entry, stop-loss, and take-profit levels.
This tool is designed to help technical traders, analysts, and developers visualize Elliott Wave patterns, validate potential wave sequences, and simulate or plan trades using:
- Elliott Wave Theory (impulse + ABC correction)
- ATR and RSI indicators
- Price projection zones based on Fibonacci levels
- Trade recommendations with position sizing and risk control
- Historical backtests for validation
It's useful for strategy development, market pattern research, and educational purposes.
-
Clone the repository:
git clone https://github.com/ESJavadex/elliot-waves-auto.git cd elliott-wave-analyzer
-
(Optional) Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the Flask application:
python app.py
-
Open your browser and go to:
http://127.0.0.1:5000 -
Enter a stock ticker (e.g.
AAPL
,^SPX
), date range, and interval (1d
,1wk
, etc.). -
Click "Submit" to:
- Visualize detected Elliott Waves
- See projected future price zones
- Optionally simulate trade setups or run backtests
-
You can also toggle:
- Trade signal overlays (entry/SL/TP)
- Backtest mode to compare historical forecasts with real outcomes
- Multi-stock analysis for batch processing
The application now uses curl_cffi
to avoid Yahoo Finance rate limiting issues. This solution:
- Creates a session that impersonates Chrome browser
- Bypasses the "Too Many Requests" errors that occur with frequent API calls
- Is implemented in the
get_stock_data
function
You can also use the standalone utility to test this approach:
python fix_yfinance_ratelimit.py AAPL --start 2023-01-01 --end 2023-12-31 --interval 1wk
This utility demonstrates how to use the solution with any yfinance application.
You can also run the application using Docker, which is especially useful for deployment on a Raspberry Pi:
-
Build and start the Docker container:
docker-compose up -d
-
Access the application in your browser at: http://your-host-ip:5001
-
Stop the Docker container:
docker-compose down
The Docker configuration:
- Uses Python 3.11 as the base image
- Exposes port 5001 for web access
- Mounts the templates directory as a volume
- Includes resource limits for Raspberry Pi compatibility
💡 This app is for educational and strategy development only. Do not use it for live trading.