This is a professional algorithmic trading platform built for the CoinDCX exchange. It provides a comprehensive REST API, real-time market data processing, strategy management, risk controls, and automated trading capabilities.
- REST API: Full-featured FastAPI-based REST API
- Real-time Market Data: Live price feeds and market analysis
- Strategy Management: Multiple built-in trading strategies
- Order Management: Advanced order handling and execution
- Risk Management: Comprehensive risk controls and limits
- Portfolio Tracking: Real-time portfolio monitoring
- Telegram Notifications: Instant trade and alert notifications
- Analytics Dashboard: Performance metrics and reporting
- Momentum Strategy: Trades on price breakouts and trends
- Mean Reversion Strategy: Trades on price reversals
- Custom Strategy Support: Easy to add new strategies
- Stop loss and take profit controls
- Daily loss limits
- Maximum drawdown protection
- Position sizing rules
- Real-time risk monitoring
- Telegram integration for instant alerts
- Trade execution notifications
- Strategy status updates
- Risk alerts and warnings
- Daily performance summaries
- Python 3.8+
- CoinDCX API credentials
- Optional: Telegram bot token for notifications
- Clone and Setup
git clone <repository-url>
cd CoinDCX-API-calls
pip install -r requirements.txt- Environment Configuration
Create a
.envfile in the project root:
# CoinDCX API Credentials
COINDCX_API_KEY=your_api_key_here
COINDCX_SECRET_KEY=your_secret_key_here
# Telegram Notifications (Optional)
TELEGRAM_BOT_TOKEN=your_telegram_bot_token
TELEGRAM_CHAT_ID=your_chat_id
# Trading Configuration
DEFAULT_TRADE_AMOUNT=1000.0
MAX_POSITION_SIZE=10000.0
STOP_LOSS_PERCENT=3.0
TAKE_PROFIT_PERCENT=2.0
DAILY_LOSS_LIMIT=5000.0
# Application Settings
HOST=0.0.0.0
PORT=8000
DEBUG=false
SECRET_KEY=your-secret-key-here- Run the Application
python -m app.mainThe API will be available at http://localhost:8000
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
GET /api/v1/market/ticker/{symbol}- Get ticker dataGET /api/v1/market/candles/{symbol}- Get candlestick dataGET /api/v1/market/summary- Get market summaryGET /api/v1/market/gainers- Get top gainersGET /api/v1/market/losers- Get top losers
POST /api/v1/orders/create- Create new orderDELETE /api/v1/orders/{order_id}/cancel- Cancel orderGET /api/v1/orders/history- Get trade historyGET /api/v1/orders/active- Get active orders
POST /api/v1/strategies/create- Create new strategyGET /api/v1/strategies/- List all strategiesPOST /api/v1/strategies/{name}/start- Start strategyPOST /api/v1/strategies/{name}/stop- Stop strategyGET /api/v1/strategies/{name}/performance- Get performance
GET /api/v1/portfolio/balance- Get portfolio balanceGET /api/v1/portfolio/holdings- Get current holdingsGET /api/v1/portfolio/performance- Get performance metrics
GET /api/v1/analytics/pnl- Get P&L summaryGET /api/v1/analytics/risk-metrics- Get risk metricsGET /api/v1/analytics/performance- Get performance analytics
import requests
strategy_data = {
"name": "BTC Momentum",
"strategy_type": "momentum",
"symbols": ["BTCINR", "ETHINR"],
"parameters": {
"momentum_threshold": 3.0,
"stop_loss_percent": 2.0,
"take_profit_percent": 1.5,
"lookback_minutes": 5
},
"risk_settings": {
"max_position_value": 10000,
"daily_loss_limit": 5000,
"max_trades_per_day": 10
}
}
response = requests.post(
"http://localhost:8000/api/v1/strategies/create",
json=strategy_data
)order_data = {
"symbol": "BTCINR",
"side": "buy",
"order_type": "limit_order",
"quantity": 0.001,
"price": 3500000
}
response = requests.post(
"http://localhost:8000/api/v1/orders/create",
json=order_data
)# Get current ticker
response = requests.get("http://localhost:8000/api/v1/market/ticker/BTCINR")
# Get market summary
response = requests.get("http://localhost:8000/api/v1/market/summary")
# Get top gainers
response = requests.get("http://localhost:8000/api/v1/market/gainers")