CLAUDE.md 5.6 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

This is a quantitative trading strategies repository focused on JoinQuant platform implementations. The codebase contains trading strategies across multiple asset classes including options, futures, ETFs, and stocks, primarily for the Chinese A-share market.

Architecture & Structure

High-Level Organization

  • API/: Documentation and resources for JoinQuant API usage
  • Lib/: Core strategy implementations organized by asset class
    • Options/: Options trading strategies (bull spreads, covered calls, straddles, collars)
    • Fund/: ETF/LOF fund premium/discount strategies
    • Future/: Futures trading strategies (trend-following, breakout, mean-reversion)
    • Stock/: Equity strategies and stock selection algorithms
    • Research/: Data analysis and research notebooks
    • Utils/: Utility functions and data processing tools
  • Data/: Sample data files and datasets
  • Log/: Strategy execution logs
  • Resources/: API documentation and external resources

Key Dependencies

  • Python 3.11+
  • pandas (data manipulation)
  • matplotlib (visualization)
  • jqdata (JoinQuant data access)

Common Development Commands

Setup & Installation

# Install dependencies
pip install -r requirements.txt
# or
uv sync

# Run basic strategy test
python quick_test.py

Strategy Development & Testing

# Run a specific strategy
python Lib/Options/deep_itm_bull_spread_strategy.py

# Analyze strategy performance
python Lib/utils/read_log.py

# Generate research reports
jupyter notebook Lib/research/

Common Operations

  • Strategy Testing: Use JoinQuant's backtesting framework
  • Data Analysis: Leverage pandas for financial data processing
  • Visualization: matplotlib for strategy performance charts
  • Logging: Built-in logging to /log/ directory

Strategy Categories

Options Strategies

  • Bull Spreads: Deep ITM call spreads with systematic roll-over
  • Covered Calls: ETF-based covered call strategies with dynamic adjustment
  • Straddles/Strangles: Volatility-based strategies for range-bound markets
  • Collar Strategies: Downside protection with upside cap
  • Calendar Spreads: Time decay arbitrage strategies

Fund Strategies

  • Premium/Discount Arbitrage: ETF/LOF fund discount strategies with dynamic position sizing
  • Momentum Rotation: ETF momentum-based sector rotation
  • Grid Trading: Systematic grid-based trading on fund premiums

Futures Strategies

  • Trend Breakout: Multi-MA crossover and breakout systems
  • Spider Web: Futures positioning-based sentiment analysis
  • K-line Pattern: Candlestick pattern recognition with trend filtering
  • Mean Reversion: Counter-trend strategies with strict risk controls

Risk Management Framework

  • Dynamic Position Sizing: Position sizing based on volatility and market conditions
  • Multi-level Stop Loss: Individual position and portfolio-level stops
  • Holiday Risk Management: Automatic position reduction before holidays
  • Market State Filtering: Adaptive strategies based on market regime detection

Key Code Patterns

Strategy Structure

Most strategies follow this pattern:

  1. Initialize: Set up parameters, universe, and global variables
  2. Signal Generation: Technical analysis or fundamental filtering
  3. Position Management: Dynamic sizing and risk controls
  4. Execution: Order management with slippage and cost considerations
  5. Monitoring: Real-time P&L tracking and risk alerts

Common Parameters

  • g.max_position: Maximum number of positions
  • g.loss_limit: Stop loss threshold (typically 10%)
  • g.proportion_cash: Cash reserve for drawdowns
  • g.holiday: Holiday calendar for risk management

Data Sources

  • JoinQuant API: Real-time and historical market data
  • Fundamental Data: Financial statements and company metrics
  • Options Data: Greeks, implied volatility, and option chains
  • Futures Data: Positioning data, volume, and open interest

File Naming Conventions

  • Strategy files use descriptive names: asset_class_strategy_type.py
  • Research notebooks: analysis_*.ipynb
  • Test files: test_*.py or *_test.py
  • Log files: strategy_name_YYYYMMDD.log

Development Guidelines

Strategy Implementation

  1. Use JoinQuant's API functions (get_price, order_target_value, etc.)
  2. Implement proper error handling for API failures
  3. Include detailed logging for strategy execution
  4. Follow the existing parameter naming conventions

Testing Approach

  • Backtest using JoinQuant's framework
  • Validate with out-of-sample data
  • Check edge cases (holidays, limit moves, etc.)
  • Monitor transaction costs and slippage impact

Code Organization

  • Group related strategies in appropriate directories
  • Use consistent parameter naming across strategies
  • Implement shared utilities in /Lib/utils/
  • Document strategies in corresponding README.md files

Quick Start for New Strategies

  1. Choose Strategy Type: Options/Futures/Fund/Stock
  2. Create File: Follow naming convention in appropriate directory
  3. Implement Framework: Use existing strategy templates
  4. Test Locally: Use quick_test.py for basic validation
  5. Backtest: Upload to JoinQuant for full backtesting
  6. Document: Add description to relevant README.md

Important Notes

  • All strategies assume JoinQuant platform API availability
  • Some strategies may have hardcoded parameters for Chinese markets
  • Transaction costs and slippage assumptions vary by strategy
  • Holiday schedules follow Chinese market calendar