Metadata-Version: 2.4
Name: algogtt
Version: 1.1.5
Summary: Official Python SDK and CLI for AlgoGTT Algorithmic Trading Platform
Home-page: https://algogtt.in
Author: AlgoGTT in
Author-email: algogtt@gmail.com
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Office/Business :: Financial :: Investment
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.25.0
Requires-Dist: pandas>=1.0.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# AlgoGTT SDK

Official Python SDK and CLI for the **AlgoGTT Algorithmic Trading Platform**.

Provides direct programmatic access to:
- **Broker Connection & Management**: Check live connection status, available cash margin, and connect AngelOne (SmartAPI TOTP), Dhan (Personal Access Token), or OpenAlgo bridges headlessly.
- **Trading Engine Lifecycle**: Start / stop live or paper trading sessions, configure session duration (`market_close`, `1_hour`, `1_trade`), and stream live engine logs.
- **Real-Time Chart Overlays**: Access the exact same live signals, markers, SL/TSL, targets, and Smart Money Concept (SMC) Fair Value Gaps displayed on the web terminal.
- **Position & Order Management**: Query open broker positions, live orders, dynamic order shifting, and emergency square-offs.
- **Option Strips & Greeks**: Retrieve option chains, PCR, and implied volatilities.
- **Daily EOD Reports**: Generate and export end-of-day trading summaries in JSON or HTML.

---

## Installation

```bash
pip install --upgrade algogtt
```

---

## Authentication

### 1. Get Your API Key
1. Log in to your AlgoGTT account at [https://www.algogtt.in](https://www.algogtt.in).
2. Go to **Profile / Settings** ([https://www.algogtt.in/profile](https://www.algogtt.in/profile)).
3. Under **AlgoGTT / STS API Key**, click **Copy** (starts with `STS_...`).

### 2. Configure CLI (Run Once)
Use the built-in login command to save your credentials persistently:
```bash
algogtt login --api-key STS_YOUR_API_KEY_HERE
```
*Stores credentials securely in `~/.algogtt/credentials`. Once logged in, you can run any `algogtt` CLI command directly without typing `--api-key`.*

Alternatively, set an environment variable:
```bash
export ALGOGTT_API_KEY="STS_YOUR_API_KEY_HERE"
```

---

## Don't Know Python? Use Excel or AmiBroker (No Code Required)

If you don't use Python and want to integrate with your existing charting and spreadsheet tools:
* **Microsoft Excel**: Download our ready-to-use 1-click template or VBA script from [https://www.algogtt.in/docs/download-excel](https://www.algogtt.in/docs/download-excel) or use native Excel **Power Query** (`Data > From Web`).
* **AmiBroker**: Download our pre-built AFL formula from [https://www.algogtt.in/docs/download-afl](https://www.algogtt.in/docs/download-afl) to plot buy/sell breakout arrows, stop-losses, and route live orders directly to your broker.
* **Full Guide**: Read the [Excel & AmiBroker Integration Guide](https://www.algogtt.in/docs/api-integration).

---

## CLI Usage

The `algogtt` command-line utility provides instant control over the engine directly from your terminal:

```bash
# Unpack complete example scripts into an ./algogtt-examples/ folder:
algogtt init

# 1. Start an automated trading session
algogtt session start --symbol CRUDEOIL --strategy swing_breakout --scope market_close
# Add --live to route real orders to your connected broker:
algogtt session start --symbol CRUDEOIL --strategy swing_breakout --live

# 2. Check engine status & running PID
algogtt session status

# 3. Stream real-time execution logs
algogtt session logs

# 4. Stop the active session
algogtt session stop

# 5. Fetch real-time chart overlays & trade markers
algogtt overlays --symbol CRUDEOIL --strategy swing_breakout --timeframe 1m

# 6. List active broker positions & P&L
algogtt positions

# 7. List live orders
algogtt orders

# 8. Fetch daily EOD summary
algogtt eod --date 2026-09-11
```

---

## Python SDK Reference

```python
from algogtt import AlgoGTTClient

# Automatically reads ALGOGTT_API_KEY from environment, or pass api_key="..."
client = AlgoGTTClient()

# ----------------------------------------------------
# 1. Trading Engine Lifecycle
# ----------------------------------------------------
# Start session (Paper Mode)
client.engine.start(
    symbol="CRUDEOIL",
    strategy="swing_breakout",
    session_duration="market_close",  # 'market_close' | '1_hour' | '1_trade'
    dry_run=True,                     # Set False for real live broker orders
)

# Inspect status & PID
status = client.engine.status(symbol="CRUDEOIL")
print("Engine Status:", status.get("is_running"), "PID:", status.get("pid"))

# Stream latest logs
for line in client.engine.logs():
    print(line)

# Stop session
client.engine.stop()

# ----------------------------------------------------
# 2. Real-Time Chart Overlays & SMC Signals
# ----------------------------------------------------
overlays = client.live.get_overlays(
    symbol="CRUDEOIL",
    strategy="swing_breakout",
    timeframe="1m"
)
print("Total Net P&L:", overlays.get("total_pnl"))

# Parsed trades
trades = client.live.get_trades(symbol="CRUDEOIL")
for t in trades:
    print(t["option_symbol"], "Entry:", t.get("entry_price"), "SL:", t.get("current_sl"))

# ----------------------------------------------------
# 3. Positions & Orders
# ----------------------------------------------------
positions = client.trading.get_positions()
orders = client.trading.get_orders()

# Dynamic Trailing Stop Loss / Order Shift
# client.trading.shift_order(order_id="12345", symbol="CRUDEOIL", stop_loss=315.0)

# Square Off
# client.trading.square_off()

# ----------------------------------------------------
# 4. Broker Connection & Management
# ----------------------------------------------------
# Check broker status & cash balance
broker_st = client.broker.status()
print(f"Connected: {broker_st.get('connected')} | Broker: {broker_st.get('broker')} | Funds: ₹{broker_st.get('funds')}")

# Programmatic connect (AngelOne TOTP / Dhan / OpenAlgo)
# client.broker.connect_angelone(api_key="...", client_id="...", password="...", totp_secret="...")
# client.broker.connect_dhan(client_id="...", access_token="...")
# client.broker.connect_openalgo(host="http://127.0.0.1:5000", api_key="...")
```

---

## Examples & Client Integrations

See the [`examples/`](examples/) directory (or run `algogtt init` to unpack locally):
- **`login_and_auth.py`**: Authentication test, credential verification, and connectivity troubleshooting.
- **`broker_connection.py`**: Check broker status, margin funds, connect AngelOne (TOTP), Dhan (PAT), OpenAlgo, or disconnect sessions.
- **`live_engine_control.py`**: Start, monitor, and stop live engine sessions programmatically.
- **`fetch_live_overlays.py`**: Fetch real-time chart overlays, dynamic SL/TSL, profit targets, and audit logs.
- **`parse_signals.py`**: Load candlestick data with strategy indicators into Pandas DataFrames.
- **`parse_trades.js`**: Native Node.js & React Native / Mobile fetch integration.
- **`algogtt_trades.vba`**: Microsoft Excel 1-click VBA macro for importing trades and logs.
- **`algogtt_signals.afl`**: AmiBroker AFL formula for chart plotting and automated broker order execution.

---

## Mobile & Multi-Platform Support

AlgoGTT uses an **API-First Architecture**. The Web Terminal (`/terminal`), Android App, iOS React Native App, CLI, and external bots all consume the same authenticated REST & SSE endpoints. Any backend enhancements immediately reflect across all interfaces.
