Skip to main content

SQLite, Risk & Money management, discipline trader with risk rules & reports

Project description

๐Ÿง  Trade Manager

A production-grade Intraday Auto Trading Manager with full trade persistence, rule-based risk management, and daily performance tracking.


๐Ÿ“˜ Overview

TradeManager.py is a Python-based automated trade manager that combines professional risk control, performance logging, and capital discipline.
Designed for intraday traders, investors, and quantitative analysts, it helps manage trades with strict loss/profit limits, ensuring capital protection and consistency.


โš™๏ธ Core Features

๐Ÿ’ผ Portfolio & Risk Management

  • Capital Tracking โ€“ Auto carry-forward of daily closing balance.
  • Position Sizing โ€“ Based on risk % of total capital.
  • Max Daily Drawdown / Profit Cap โ€“ Automatically halts trading when daily limits are reached.
  • Capital Update Menu โ€“ Modify default capital interactively and persist across sessions.

๐Ÿ“Š Trade Rules

  • Limit simultaneous open trades: max_open_trades
  • Restrict total daily loss and profit trades:
    • max_loss_trades
    • max_target_trades
  • Auto-block further entries after hitting limits.
  • Hardcoded Startup Trades โ€“ Useful for testing and demo environments.

๐Ÿงพ Database Persistence (SQLite)

All trade and performance data are stored locally in trade_manager.db:

  • open_trades โ€“ Current running trades
  • trade_log โ€“ Historical closed trade performance
  • daily_stats โ€“ Day-wise P&L and metrics

๐Ÿ“ˆ Reports

Generate and review analytics directly in the terminal:

  • Intraday Stock-wise Report (Today or custom date)
  • Weekly Summary (Last 4 weeks)
  • Monthly Performance Summary

๐Ÿง  Intelligent Auto-Stop Logic

Automatically pauses the system if:

  • Daily drawdown limit exceeded
  • Profit target achieved
  • Too many loss trades occurred

pip install TradeManager

Usage

#!/usr/bin/env python3
"""
Launcher file for AutoTradeManager class.
Edit the variables below to configure your session.
"""

from Trademanager import AutoTradeManager

# CONFIG / HARDCODED TRADES
# =========================================================

DB_FILE                     = "trade_manager.db"

DEFAULT_CAPITAL             = 10000.0
DEFAULT_RISK_PCT            = 1.0             # Percent of capital risked per trade (2%)

# Auto-stop defaults (percent of initial capital)
DEFAULT_MAX_DRAWDOWN_PCT    = 3.0             # -3% daily drawdown
DEFAULT_MAX_PROFIT_PCT      = 5.0             # +5% daily profit cap (optional)

MAX_OPEN_TRADES             = 3
MAX_LOSS_TRADES             = 1
MAX_TARGET_TRADES           = 2

# Hardcoded startup option (you asked for this โ€” not ignored)
HARD_CODED_MODE_ON_START = False              # True  False

HARDCODED_TRADES = [
    {"symbol": "NIFTY", "entry": 25000, "stop_loss": 24800, "target": 25200, "lot_size": 50},
    {"symbol": "BANKNIFTY", "entry": 61000, "stop_loss": 60500, "target": 62000, "lot_size": 25},
]


if __name__ == "__main__":
    atm = AutoTradeManager(
        db_file                 = DB_FILE,
        default_capital         = DEFAULT_CAPITAL,
        default_risk_pct        = DEFAULT_RISK_PCT,
        max_drawdown_pct        = DEFAULT_MAX_DRAWDOWN_PCT,
        max_profit_pct          = DEFAULT_MAX_PROFIT_PCT,
        max_open_trades         = MAX_OPEN_TRADES,
        max_loss_trades         = MAX_LOSS_TRADES,
        max_target_trades       = MAX_TARGET_TRADES,
        hardcoded_mode          = HARD_CODED_MODE_ON_START,
        hardcoded_trades        = HARDCODED_TRADES,
    )
    atm.run()

๐Ÿงฉ Configuration Parameters

Parameter Type Description Default
db_file str SQLite database filename trade_manager.db
default_capital float Starting capital 10000.0
default_risk_pct float Risk % per trade 1.0
max_drawdown_pct float Daily drawdown stop 3.0
max_profit_pct float Daily profit stop 5.0
max_open_trades int Concurrent open positions 3
max_loss_trades int Max allowed loss trades per day 1
max_target_trades int Max allowed target hits per day 2
HARD_CODED_MODE_ON_START bool Enable/disable startup trades False

Example Workflow

  1. Start the manager โ†’ initializes database
  2. Add new trade with stop loss and target
  3. Manager auto-adjusts available capital
  4. Logs results upon close
  5. Displays P&L and risk compliance report

๐Ÿ“‚ Database Schema

open_trades

Field Type Description
id INTEGER Auto ID
symbol TEXT Stock/Instrument
entry_price REAL Entry level
stop_loss REAL SL value
target REAL Target price
qty INTEGER Quantity
status TEXT Active/Closed

trade_log

Field Type Description
id INTEGER Auto ID
symbol TEXT Stock
pnl REAL Profit/Loss
exit_reason TEXT Target/SL/Manual
date TEXT Trade date

daily_stats

Field Type Description
date TEXT Trading date
capital REAL End-of-day capital
daily_gain REAL Day P&L
drawdown REAL Daily drawdown %

๐Ÿงฐ Key Modules Used

  • sqlite3 โ€“ Data persistence
  • pandas โ€“ Data manipulation and reporting
  • rich โ€“ Colored and formatted terminal output
  • datetime โ€“ Trade and report timestamps

๐Ÿง‘โ€๐Ÿ’ผ Example Output (Terminal View)

๐Ÿ“‹ ORDER REVIEW
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
๐Ÿ’ฐ Available Capital: โ‚น10000.00
๐Ÿ’ธ Risk per Trade: โ‚น100.00 (1%)
๐Ÿ“ˆ Symbol: RELIANCE
๐ŸŽฏ Target: โ‚น2800.00
๐Ÿ›‘ Stop Loss: โ‚น2700.00
โœ”๏ธ Quantity: 10
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โœ… Trade Added Successfully!

๐Ÿง  Future Enhancements

  • ๐Ÿ”ฎ ML-based profit probability prediction
  • ๐Ÿ“ก Live market data integration
  • ๐Ÿ’ฌ Telegram / Discord alerts
  • ๐Ÿงพ CSV export of reports
  • ๐Ÿ•น๏ธ GUI dashboard (Tkinter / Streamlit)

โš ๏ธ Disclaimer

This tool is built for educational and analytical use.
It does not execute real trades.
Always verify decisions manually before executing orders in live markets.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trademanager-0.0.5.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trademanager-0.0.5-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file trademanager-0.0.5.tar.gz.

File metadata

  • Download URL: trademanager-0.0.5.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for trademanager-0.0.5.tar.gz
Algorithm Hash digest
SHA256 491cbff5c1b4f4f03b288289b9d77b220d6c645e65a227923e18c697b70bd729
MD5 cafab3a5e67d6d288f6f7d587edcaf1e
BLAKE2b-256 7c54500efed781e73314013588cbfec84d83d2383e42f396322a2a78db8209de

See more details on using hashes here.

File details

Details for the file trademanager-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: trademanager-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for trademanager-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4b0a43bf481f62901adba6e7303f921e9b03e39b876c95e3898e89f7f200ca89
MD5 8803a1e325f45eef6da7b93555cdd892
BLAKE2b-256 9346606e898f9d850fe4570b0efc378f1f2e60466dcb8d921b8c53e13774d96c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page