The ultimate meme-stock finance tracker that would make r/wallstreetbets proud. Track your stonks, crypto, and tendies with style!
DiamondHandz Finance Tracker is a satirical finance application designed for tracking meme stocks and cryptocurrencies with a humorous twist. It's inspired by the culture and terminology of r/wallstreetbets and the meme stock phenomenon that emerged in 2021.
This project combines serious financial tracking capabilities with meme culture, creating a fun way to monitor your investments while embracing the diamond hands mentality.
- Portfolio Tracking: Monitor your meme stocks (GME, AMC, TSLA) and crypto (DOGE, BTC, ETH) in real-time
- Diamond Hands Index: Measure how long you've held assets through volatility
- Paper Hands Detector: Calculate potential gains had you not sold early
- Expense Categorization: Track spending as "essential lambos" vs "paper hands purchases"
- Price Alerts: Get "to the moon" notifications when stocks hit target prices
- Meme Generator: Create custom memes based on your portfolio performance
- Inverse Cramer Indicator: Track Jim Cramer's recommendations and do the opposite
- WSB Sentiment Analysis: Monitor r/wallstreetbets sentiment for your stocks
- Multi-platform Notifications: Receive alerts via Discord, Telegram, or Email
- Web Dashboard: Access all features through a user-friendly web interface with authentication
- Python 3.8+
- pip
- Git
- Docker (optional, for containerized deployment)
# Clone the repo
git clone https://github.com/yourusername/diamond-handz-tracker.git
cd diamond-handz-tracker
# Build and run with Docker
docker-compose up -d# Clone the repo
git clone https://github.com/yourusername/diamond-handz-tracker.git
cd diamond-handz-tracker
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Edit .env with your API keys and preferences
# Initialize the database
python -c "from diamond_handz.web import create_app; app = create_app(); app.app_context().push(); from diamond_handz.web.models import db; db.create_all()"
# Run the app
python app.py webEdit the .env file to configure:
# API Keys
YAHOO_FINANCE_API_KEY=your_yahoo_finance_api_key
ALPHA_VANTAGE_API_KEY=your_alpha_vantage_api_key
# Notification Settings
DISCORD_WEBHOOK_URL=your_discord_webhook_url
TELEGRAM_BOT_TOKEN=your_telegram_bot_token
TELEGRAM_CHAT_ID=your_telegram_chat_id
SENDGRID_API_KEY=your_sendgrid_api_key
NOTIFICATION_EMAIL=your_email@example.com
# Database Settings
DATABASE_URL=sqlite:///diamond_handz.db
# Reddit API (for WSB sentiment analysis)
REDDIT_CLIENT_ID=your_reddit_client_id
REDDIT_CLIENT_SECRET=your_reddit_client_secret
REDDIT_USER_AGENT=DiamondHandzTracker/1.0
# Application Settings
SECRET_KEY=your_secret_key_for_flask
DEBUG=False
ROCKET_COUNT=5
# Check your portfolio status
python app.py portfolio
# Show detailed portfolio information
python app.py portfolio --detailed
# Set price alerts
python app.py alert --ticker GME --target 420.69 --message "TO THE MOON!"
# Generate meme-worthy charts
python app.py chart --ticker TSLA --timeframe 1m --meme-level 9000
# Add a new position
python app.py add --ticker GME --shares 10 --price 150.50 --date 2023-01-15
# Record a sale (paper hands moment)
python app.py sell --ticker AMC --shares 5 --price 45.25
# Track expenses
python app.py expense --amount 69.42 --category lambo --description "Essential rocket fuel"
# Get a YOLO suggestion
python app.py yolo
# Check the Inverse Cramer indicator
python app.py inverse_cramerAfter starting the app with python app.py web, visit http://localhost:8080 in your browser.
The web interface provides access to all features:
- Dashboard: Overview of your portfolio performance
- Portfolio: Detailed view of your positions
- Expenses: Track your spending habits
- Inverse Cramer: See what Jim Cramer recommends and do the opposite
- Meme Generator: Create custom memes based on your gains/losses
- Settings: Customize your DiamondHandz experience
diamond-handz-tracker/
βββ app.py # Main application entry point
βββ requirements.txt # Python dependencies
βββ README.md # This file
βββ Dockerfile # Docker configuration
βββ docker-compose.yml # Docker Compose configuration
βββ .env.example # Example environment variables
βββ .env # Your environment variables (not committed)
βββ diamond_handz/ # Main package
β βββ __init__.py
β βββ database.py # Database operations
β βββ market_data.py # Stock/crypto data retrieval
β βββ notifications.py # Multi-platform notifications
β βββ portfolio.py # Portfolio management
β βββ visualization.py # Chart generation
β βββ web/ # Web dashboard
β βββ __init__.py # Flask app factory
β βββ models.py # Database models
β βββ views/ # Route handlers
β βββ templates/ # HTML templates
βββ data/ # Data storage
βββ charts/ # Generated charts
βββ meme_templates/ # Templates for meme generation
-
API Rate Limits: If you see "Too Many Requests" errors, you may have hit rate limits for Yahoo Finance or Alpha Vantage. Solutions:
- Upgrade to a paid API plan
- Implement caching to reduce API calls
- Use alternative data sources
-
Database Errors: If you encounter database issues:
- Ensure SQLite is installed
- Check file permissions for the database file
- Try deleting the database file and reinitializing it
-
Authentication Issues: If login/registration doesn't work:
- Make sure the database is properly initialized
- Check that Flask-Login is properly configured
- Verify that the SECRET_KEY is set in your .env file
-
Missing Dependencies: If you get import errors:
- Ensure you've activated your virtual environment
- Run
pip install -r requirements.txtagain - Check for any platform-specific dependencies
If you encounter issues not covered here, please:
- Check the existing GitHub issues
- Create a new issue with detailed information about your problem
- Include error messages and steps to reproduce
This is not financial advice. The creators of DiamondHandz Finance Tracker are not responsible for:
- YOLO trades gone wrong
- Margin calls from your broker
- Relationship problems when your significant other discovers your losses
- Addiction to watching ticker symbols all day
- Excessive use of rocket emojis in normal conversation
Past performance does not guarantee future results, but diamond hands might!
We welcome contributions from fellow apes! Here's how to contribute:
- Fork the repo
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please make sure your code follows our style guidelines and includes appropriate tests.
To set up a development environment:
# Clone the repo
git clone https://github.com/yourusername/diamond-handz-tracker.git
cd diamond-handz-tracker
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies including development tools
pip install -r requirements.txt
# Run tests
pytest
# Format code
black diamond_handz
isort diamond_handz
# Check code quality
flake8 diamond_handzDistributed under the MIT License. See LICENSE for more information.
- r/wallstreetbets for the inspiration and terminology
- DFV for showing us the way of diamond hands
- Yahoo Finance and Alpha Vantage for financial data APIs
- Flask and SQLAlchemy for web framework and ORM
- Matplotlib and Pillow for visualization and meme generation
- Your wife's boyfriend for his patience while you code this project