Zerodha-MCP-Tradin

Zerodha-MCP-Tradin is a library designed for automated trading using Python. It offers an easy-to-use API that helps traders access market data and execute trading strategies. Notably, it enhances integration with the Zerodha platform, enabling real-time data analysis.

GitHub Stars

6

User Rating

Not Rated

Favorites

0

Views

35

Forks

0

Issues

0

README
๐Ÿš€ Zerodha Market Connect Pro

An advanced algorithmic trading system for Zerodha, featuring automated trading strategies, real-time market analysis, and LLM-powered decision making. Built with Python and integrated with Zerodha's Kite API.

๐Ÿ“ Description

Zerodha Market Connect Pro (MCP) is a comprehensive algorithmic trading platform designed specifically for Zerodha traders. This system combines cutting-edge technology with sophisticated trading strategies to provide a powerful automated trading solution. Here's what makes it special:

  • Intelligent Trading: Leverages Large Language Models (LLMs) for market analysis and trading decisions
  • Real-time Processing: Handles live market data with low-latency execution and websocket streaming
  • Risk Management: Implements robust risk controls including position sizing, stop-losses, and exposure limits
  • Strategy Flexibility: Supports multiple trading strategies with customizable parameters
  • Professional Tools: Includes advanced technical analysis, volume profiling, and price action pattern recognition
  • Developer Friendly: Well-documented API, extensive testing suite, and Docker support for easy deployment

Perfect for both professional traders looking to automate their strategies and developers interested in algorithmic trading.

Python Version
License
Platform

๐ŸŒŸ Key Features
  • ๐Ÿค– Automated Trading

    • Real-time order execution
    • Multiple strategy support
    • Customizable entry/exit rules
    • Risk management automation
  • ๐Ÿ“Š Advanced Market Analysis

    • Real-time market data processing
    • Technical indicator calculations
    • Volume profile analysis
    • Price action patterns
  • ๐Ÿง  LLM Integration

    • Natural language trading commands
    • Market sentiment analysis
    • Strategy optimization
    • Trading journal analysis
  • โšก High Performance

    • Asynchronous operations
    • Efficient data handling
    • Real-time websocket streaming
    • Low-latency execution
  • ๐Ÿ›ก๏ธ Risk Management

    • Position sizing rules
    • Stop-loss automation
    • Exposure limits
    • Portfolio diversification
๐Ÿ”ง Technical Architecture
zerodha_mcp/
โ”œโ”€โ”€ auth/           # Authentication and session management
โ”œโ”€โ”€ trading/        # Core trading functionality
โ”œโ”€โ”€ analysis/       # Market analysis and indicators
โ””โ”€โ”€ llm/           # Language model integration
๐Ÿ“‹ Prerequisites
๐Ÿš€ Quick Start
  1. Clone the Repository

    git clone https://github.com/SirCharan/zerodha-market-connect-pro.git
    cd zerodha-market-connect-pro
    
  2. Set Up Environment

    # Create and activate virtual environment
    python -m venv .venv
    source .venv/bin/activate  # Linux/macOS
    .venv\Scripts\activate     # Windows
    
    # Install dependencies
    pip install -r requirements.txt
    
  3. Configure Credentials

    # Create .env file
    cp .env.example .env
    
    # Edit .env with your credentials
    ZERODHA_API_KEY=your_api_key
    ZERODHA_API_SECRET=your_api_secret
    OPENAI_API_KEY=your_openai_api_key  # Optional
    
  4. Start Trading System

    python main.py
    
๐Ÿ“Š Trading Strategies
Built-in Strategies
  1. Moving Average Crossover

    from zerodha_mcp.trading.strategies import MACrossStrategy
    
    strategy = MACrossStrategy(
        fast_period=10,
        slow_period=30,
        timeframe="5min"
    )
    
  2. RSI Mean Reversion

    from zerodha_mcp.trading.strategies import RSIMeanReversionStrategy
    
    strategy = RSIMeanReversionStrategy(
        period=14,
        overbought=70,
        oversold=30
    )
    
Custom Strategy Development

Create your own strategy by inheriting from the base Strategy class:

from zerodha_mcp.trading.base import Strategy

class MyCustomStrategy(Strategy):
    def __init__(self, **params):
        super().__init__()
        self.params = params

    def generate_signals(self, data):
        # Implement your strategy logic here
        pass

    def on_trade(self, trade):
        # Handle trade events
        pass
๐Ÿ”ง Configuration
Trading Parameters

Edit config/default.yaml to customize trading behavior:

trading:
  default_quantity: 1
  max_position_size: 100000
  stop_loss_percent: 2.0
  target_profit_percent: 4.0

risk_management:
  max_daily_loss: 10000
  max_trades_per_day: 10
  max_open_positions: 5

strategies:
  moving_average_crossover:
    enabled: true
    timeframe: "5min"
    fast_period: 10
    slow_period: 30
๐Ÿณ Docker Deployment
  1. Build Image

    docker build -t zerodha-market-connect-pro .
    
  2. Run Container

    docker run -d \
      --name zerodha-market-connect-pro \
      -v $(pwd)/config:/app/config \
      -v $(pwd)/.env:/app/.env \
      zerodha-market-connect-pro
    
๐Ÿ“ˆ Performance Monitoring
Real-time Monitoring
# View trading logs
tail -f mcp.log

# Check system status
python -m zerodha_mcp.status

# Generate performance report
python -m zerodha_mcp.report
Metrics Dashboard

Access the web dashboard at http://localhost:5000/dashboard for:

  • P&L visualization
  • Strategy performance
  • Risk metrics
  • Trade history
๐Ÿงช Development
Running Tests
# Run all tests
pytest

# Run with coverage
pytest --cov=zerodha_mcp tests/

# Run specific test category
pytest tests/test_trading.py
Code Quality
# Format code
black zerodha_mcp tests

# Check typing
mypy zerodha_mcp

# Run linter
flake8 zerodha_mcp tests
๐Ÿ” Troubleshooting
Common Issues
  1. Authentication Errors

    • Verify API credentials in .env
    • Check token expiration
    • Ensure API access is enabled
  2. Order Placement Failures

    • Verify account balance
    • Check trading hours
    • Review order parameters
  3. Strategy Issues

    • Validate configuration
    • Check data availability
    • Review error logs
๐Ÿ“š API Documentation
Trading Operations
from zerodha_mcp import ZerodhaMCP

# Initialize client
client = ZerodhaMCP()

# Place order
order = client.place_order(
    symbol="RELIANCE",
    quantity=1,
    side="BUY",
    order_type="MARKET"
)

# Get positions
positions = client.get_positions()

# Get holdings
holdings = client.get_holdings()
Market Data
# Get historical data
data = client.get_historical_data(
    symbol="RELIANCE",
    interval="5minute",
    from_date="2024-01-01",
    to_date="2024-01-31"
)

# Stream live ticks
client.subscribe(["RELIANCE"], callback=on_tick)
๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿค Contributing
  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request
๐Ÿ“ฌ Support & Contact
๐Ÿ™ Acknowledgments
  • Zerodha for their excellent trading platform
  • KiteConnect for the robust API
  • All contributors who have helped improve this project