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
๐ 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.
๐ 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
- Python 3.8 or higher
- Zerodha Kite trading account
- API credentials from Zerodha Developer Console
- OpenAI API key (for LLM features)
๐ Quick Start
Clone the Repository
git clone https://github.com/SirCharan/zerodha-market-connect-pro.git cd zerodha-market-connect-proSet 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.txtConfigure 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 # OptionalStart Trading System
python main.py
๐ Trading Strategies
Built-in Strategies
Moving Average Crossover
from zerodha_mcp.trading.strategies import MACrossStrategy strategy = MACrossStrategy( fast_period=10, slow_period=30, timeframe="5min" )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
Build Image
docker build -t zerodha-market-connect-pro .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
Authentication Errors
- Verify API credentials in
.env - Check token expiration
- Ensure API access is enabled
- Verify API credentials in
Order Placement Failures
- Verify account balance
- Check trading hours
- Review order parameters
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
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
๐ฌ Support & Contact
- ๐ง Email: charandeepkapoor3@gmail.com
- ๐ป GitHub: @SirCharan
- ๐ Issues: GitHub Issues
- ๐ Wiki: Project Documentation
๐ Acknowledgments
- Zerodha for their excellent trading platform
- KiteConnect for the robust API
- All contributors who have helped improve this project