Goldflipper Classic Trading System
Goldflipper Classic is proprietary, source-available software. Please note that technical support, bug fix, and feature requests are managed on a discretionary basis at this time. This program does not capture or transmit any of your data. Goldflipper only makes connections to brokerage(s) and market data provider(s). Newer branches also make calls using ancillary python libraries in order to enhance function by validating inputs (to address user entry errors), and by checking the market calendar. Security wise, note that in this version, access keys are stored in the settings file in plaintext (or, plain-yaml).
Goldflipper Classic is a rules-based semi-autonomous trading system developed in Python. It utilizes a modular, event-driven architecture to automate trading strategy execution, with a current focus on level 2 options trading. The system is designed for customizability, modularity, and offers a feature-rich parameter selection that enables functionality not seen in any other program of its kind. Goldflipper integrates with the Alpaca Markets API for live trading, and has API integrations with market data providers as well in order to provide a modular and robust trading experience with fallbacks for reliability.
Before you start, ensure you have the following:
- Alpaca Markets account for brokerage access; multi-broker support is planned with v2
- Windows OS (required for service functionality and batch files); multi-OS support is planned with v2
- Git (required for cloning the repository and keeping it up to date)
- Python 3.10 or higher (Python 3.12 recommended)
- Python libraries (see Installation section); strongly recommended to use a virtual environment to avoid dependency conflicts. Consider using venv, Poetry, or uv as well (directions to be added in time)
- Market Data Provider account(s) (required if not using market data from brokerage):
- Yahoo Finance (free, built-in support via yfinance)
The easiest way to install Goldflipper is to run the following command in PowerShell:
iwr -useb https://raw.githubusercontent.com/Zaroganos/goldflipper/main/bootstrap.ps1 | iexThe bootstrap script will:
- Check for and install Git and Python if needed
- Clone/update the repository to
%USERPROFILE%\goldflipper - Create a virtual environment
- Install all dependencies in development mode
- Launch Goldflipper automatically
- Clone the repository:
git clone https://github.com/Zaroganos/goldflipper.git
cd goldflipper- Install Python dependencies:
pip install -r requirements.txtNote: You can also install in development mode using setup.py via:
pip install -e . --pre- Initial Setup and Configuration:
- Run the system once by executing
launch_goldflipper.bat - This creates
goldflipper/config/settings.yamlfrom the template, or you may upload your existing configuration file of choice. - A desktop shortcut is created if desired.
- Edit
settings.yamlwith your API keys and preferences:- Alpaca API Keys: Get from Alpaca Markets
- Market Data Provider API Keys: Get from your choice of supported providers. (Currently limited to MarketDataApp)
- Trading parameters: Set your desired values for risk management, trading behavior, etc.
- System preferences: Logging levels, watchdog settings, etc.
- Run the system once by executing
Goldflipper offers multiple interfaces and execution modes:
The Text User Interface provides an intuitive way to interact with all system features:
- (Recommended) Double-click the Goldflipper desktop shortcut, or:
python goldflipper\goldflipper_tui.py- Runs on startup as daemon
- Semi-autonomous options trading with rules-based execution
- Advanced play management with state-based workflow
- Multiple order types: Market, limit at bid/ask/mid/last, contingency orders
- Risk management: Take profit, stop loss, and contingency stop loss orders
- Real-time monitoring with continuous play evaluation
- Multiple data providers behind unified manager with automatic failover
- Options Greeks calculations: Delta, Gamma, Theta, Vega, Rho, and 15+ advanced Greeks
- Technical indicators: basic views of EMA, MACD, TTM Squeeze, and custom indicators
- Interactive charting basic candlestick charts and overlay indicators
- Text User Interface built with Textual framework
- Console mode for direct system interaction
- Trade logger for analytics
- Windows service integration for background operation
- Play creation tool with guided setup and validation
- Play editing system with safety protections for active trades
- Auto play creator for automated bulk play generation
- System status monitoring with health checks
- Configuration management with YAML-based settings
- Data export capabilities (CSV, Excel) for records and analysis
- Watchdog system for automated health monitoring
- Comprehensive logging with structured trade tracking
- State persistence with automatic backup and recovery
- Error handling with graceful degradation and retry logic
- Market hours validation and holiday awareness
Goldflipper supports multiple market data providers for robust and reliable data access:
The system uses a YAML configuration file (goldflipper/config/settings.yaml) with the following key sections:
# Alpaca API Configuration
alpaca:
accounts:
paper_1:
enabled: true
api_key: 'YOUR_PAPER_API_KEY'
secret_key: 'YOUR_PAPER_SECRET_KEY'
base_url: 'https://paper-api.alpaca.markets/v2'
default_account: 'paper_1'
# Market Data Providers
market_data_providers:
providers:
marketdataapp:
enabled: true
api_key: 'YOUR_MARKETDATAAPP_KEY'- Trading parameters: Risk management, position sizing
- Market hours: Custom trading session definitions
- Logging levels: Debug, info, warning, error
- Display options: Chart settings, option chain columns
- File paths: Custom directory structures
Goldflipper Classic is roughly organized into the following directory structure: (Simplified for brevity, access the codebase to discover the full content.)
goldflipper/
βββ config/ # Configuration files and settings
β βββ config.py # Configuration management
β βββ settings_template.yaml # Configuration template
βββ data/ # Data handling modules
β βββ greeks/ # Options Greeks calculations
β βββ indicators/ # Technical indicators
β βββ market/ # Market data handling and management
β β βββ manager.py # Market data coordination
β β βββ operations.py # Business logic operations
β β βββ cache.py # Data caching system
β β βββ providers/ # Market data provider integrations
β βββ ta/ # Technical analysis tools
βββ chart/ # Charting and visualization
βββ trade_logging/ # Comprehensive logging system
β βββ trade_logger.py # Core trade logging functionality
β βββ trade_logger_ui.py # Trade logger user interface
β βββ logs/ # Application logs storage
βββ plays/ # Trading plays management (state-based), pre-DB
β βββ closed/ # Completed trading positions
β βββ expired/ # Expired options
β βββ new/ # New trading opportunities
β βββ open/ # Currently active positions
β βββ pending-closing/ # Positions pending closure
β βββ pending-opening/ # Positions pending opening
β βββ old/ # Archived plays
β βββ temp/ # Temporary/OSO plays
βββ tools/ # User-accessible toolkit
β βββ auto_play_creator.py # Automated play generation (for testing purposes)
β βββ play_creation_tool.py # Interactive play creation
β βββ play-edit-tool.py # Advanced play editing with safety features
β βββ view_plays.py # Play viewing and management
β βββ option_data_fetcher.py # Options data retrieval
β βββ get_alpaca_info.py # Alpaca account information
β βββ system_status.py # System health monitoring
β βββ configuration.py # Configuration management
β βββ [multiple other tools] # JSON processing, CSV ingestion, etc.
βββ utils/ # General utility functions
βββ watchdog/ # System monitoring and health checks
βββ state/ # System state management and persistence
βββ strategy/ # Trading strategy definitions
βββ reference/ # Reference materials and templates
βββ src/ # Windows Service code
β βββ service/ # Windows service integration
β βββ state/ # State management components
βββ tests/ # Test suites and validations
Copyright (c) 2024-2025 Iliya Yaroshevskiy. All Rights Reserved.