Zerodha-MCP-Tradin

Zerodha-MCP-Tradinは、Pythonを使用して自動取引を実現するためのライブラリです。使いやすいAPIを提供し、トレーダーが市場データを取得し、取引戦略を実行するのを助けます。特に、Zerodhaのプラットフォームとの統合が強化されており、リアルタイムのデータ分析が可能です。

GitHubスター

6

ユーザー評価

未評価

お気に入り

0

閲覧数

26

フォーク

0

イシュー

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