Self-initiated portfolio project. This is a software research codebase, not financial advice or a claim of trading performance. Broker execution and live-trading behavior have not been verified.
Overview
Onyx is a modular Python research codebase for Indian equity markets (NSE and BSE). It brings together market-data handling, technical indicators, machine-learning experiments, execution logic, risk controls, and Telegram notifications.
Research problem
Systematic strategies need a structured environment for separating signal generation, execution, risk management, and monitoring—and for examining them in backtests or paper mode before any real capital is exposed.
Architecture and implementation
The codebase is organized into separate strategy, AI, risk, and execution modules orchestrated by a main loop. A paper-trading mode can be selected through configuration.
Implemented code areas include:
Multi-timeframe technical indicators, market-microstructure logic, and backtesting components.
Reinforcement-learning and genetic-algorithm experiments, plus hidden-Markov-model regime detection.
Execution approaches including VWAP, TWAP, implementation shortfall, iceberg orders, and multi-leg options structures.
Risk components including value-at-risk measures, tiered circuit breakers, and an emergency-liquidation routine.
News-sentiment and social-signal modules, with explainability helpers.
A Zerodha Kite Connect client and Telegram notifications.
Verification status and limitations
No backtest, paper-trading, or live-trading performance results are claimed or published.
The code has not been verified against a broker account; real-money use is not recommended without independent review and testing.
Multiple generations of the main bot file remain in the repository, and there is no automated test suite.
Optional AI and market-data features require third-party API credentials.
A modular Python research codebase for NSE/BSE, covering indicators, regime-detection experiments, execution logic, risk controls and paper-trading mode