e
agle eye
stock screener
eeye
is a stock screener that uses various technical analysis strategies to identify potential trading opportunities in the stock market. It leverages the Groww API to fetch real-time market data and applies a series of screening techniques to filter stocks based on user-defined criteria.
- Fetching all available stocks from NSE
- Integration with Groww API for real-time stock data
- Multiple technical analysis strategies (e.g., Bollinger Bands, EMA, RSI)
- Modular design for easy addition of new strategies
- Fetch Stock Data: The application fetches historical stock data from the Groww API.
- Apply Screening Steps: Each stock is processed through a series of screening steps defined in the strategy executor. These steps include various technical analysis techniques.
- Output Results: Stocks that pass all screening steps are printed to the console as potential trading opportunities.
- Go 1.24.5 or later
- Docker (for running the database)
- Run the setup script:
# On Unix/Linux/MacOS
chmod +x scripts/setup-env.sh
./scripts/setup-env.sh
# On Windows (Git Bash or similar)
sh scripts/setup-env.sh
- Configure your Groww API token:
# Edit .env and set your GROWW_ACCESS_TOKEN
# All other variables are pre-configured with their default values
Run the database setup script to create and configure the TimescaleDB container:
# On Unix/Linux/MacOS
chmod +x scripts/setup-db.sh
./scripts/setup-db.sh
# On Windows (Git Bash or similar)
sh scripts/setup-db.sh
The setup script will:
- Check if the Docker container is running
- Wait for the database to be ready
- Verify TimescaleDB extension is available
- Create the required tables and hypertables
You can run this script multiple times safely - it will not duplicate or overwrite existing data.
Note: If you see an error about the container not running, make sure you've completed step 1 successfully.
This project uses pre-commit hooks to ensure code quality. The hooks will:
- Format Go code using
go fmt
- Run
golangci-lint
for code linting
To install the pre-commit hooks:
- Make sure you're in the root directory of the project
- Run the installation script:
# On Unix/Linux/MacOS
chmod +x scripts/install-hooks.sh
./scripts/install-hooks.sh
# On Windows (Git Bash or similar)
sh scripts/install-hooks.sh
The hooks will now run automatically before each commit. If there are any formatting issues or linting errors, the commit will be blocked until they are fixed.
To start the application, use the provided start script:
# On Unix/Linux/MacOS
chmod +x scripts/start.sh
./scripts/start.sh
# On Windows (Git Bash or similar)
sh scripts/start.sh
The start script will:
- Check if the database container is running and start it if needed
- Determine the correct project paths
- Run the application with
go run
Note: Make sure you've completed the database setup and configuration steps before running the application.