Skip to main content

Strategic High-Throughput Predictive Trading Engine with iterative R2 fitting and SaganLLM discovery.

Project description

Sagan Trade

High-fidelity symbolic mathematical engine and quantitative architecture for institutional alpha generation.

Python License: MIT PyPI GitHub repo

Sagan Trade replaces black-box neural networks with transparent, human-readable mathematical equations discovered via FunctionGemma. It combines the precision of Symbolic Regression with the robustness of Asymmetric Convexity risk management and cutting-edge limit order book simulations.

As of v0.8.4+, the library natively incorporates mathematical discoveries autonomously generated by the Autonomous Intelligence Network (AIN), including Hawkes Trade Arrivals and Bates Jump-Diffusion dynamics.


🏛️ Institutional Benchmarking

Sagan Trade has been rigorously tested across 5 years of historical market regimes, accounting for institutional trading fees and liquidity constraints.

Long-Term Resilience (5-Year Rolling Audit)

Benchmark: 20-Ticker Diversified Portfolio (Tech, Finance, Energy, Consumer).

Metric Gross of Fees Net of Fees (5bps) S&P 500 (B&H)
Annualized Return 33.27% 12.98% 14.50%
Sharpe Ratio 2.11 1.06 0.85
Max Drawdown -6.91% -7.30% -23.90%
Total Cumulative 426.11% 102.46% 96.80%

[!IMPORTANT] Statistical Significance: The symbolic engine achieves a p-value of 0.0182, indicating that its outperformance against legacy TFT-PINN and LSTM models is statistically significant at the 98% confidence level.


🚀 Installation

pip install sagan-trade

For the latest source code, you can clone the repository from GitHub:

git clone https://github.com/That-Tech-Geek/sagan-trade.git
cd sagan-trade
pip install -e .

📚 Comprehensive Documentation

1. Hawkes Limit Order Book (LOB) Simulator (simulator.py)

Accurate quantitative modeling requires realistic microstructure data. The HawkesLOBSimulator generates tick-by-tick order book updates using a continuous-time Bates Jump-Diffusion process paired with self-exciting Hawkes trade intensity.

  • NIFTY50 & Multi-Asset Support: Comes pre-configured with exact market-maker profiles for major indices like NIFTY50, handling specific tick sizes, base depths, and tick volatility.
  • Microstructural Realism: Simulates realistic bid, ask, bid_size, ask_size, and dynamic structural features such as Order Flow Imbalance (OFI) and depth_imbalance.
from simulator import HawkesLOBSimulator

sim = HawkesLOBSimulator()
# Simulate 5000 high-frequency ticks for NIFTY50
df = sim.simulate_ticks("NIFTY50", num_ticks=5000)

2. Sagan Mixture-of-Experts (MoE) Architecture (moe_model.py)

To predict ultra-short latency order book dynamics, Sagan Trade uses a Temporal Convolutional Network (TCN) embedded inside a PyTorch Mixture of Experts network.

  • Zero Future Leakage: Uses causal dilated convolutions to ensure predictions strictly use historical data.
  • State-Dependent Routing: An internal gating network routes market regimes (e.g., flash crashes vs. quiet sessions) to 3 different mathematical "Expert" modules.
import torch
from moe_model import SaganMoEModel

device = 'cuda' if torch.cuda.is_available() else 'cpu'
sagan_model = SaganMoEModel(num_features=5, state_dim=5, num_experts=3).to(device)

3. High-Frequency Backtester & Inventory Control (backtester.py)

Legacy backtesters assume you get filled at the mid-price. The Sagan HighFrequencyBacktester enforces rigid queue priority, latency delays, and exact exchange fee structures (STT, Exchange Transaction Charges, SEBI fees).

  • Passive vs. Aggressive: Determines if a trade should cross the spread aggressively (paying taker fees) or wait passively in the queue (earning maker rebates).
  • Statutory Friction: Automatically calculates round-trip trading frictions to prevent "suicidal" arbitrage algorithms that lose money on taxes.
from backtester import HighFrequencyBacktester

bt = HighFrequencyBacktester(latency_ticks=2)
results = bt.run_backtest(df_test, sagan_preds, "NIFTY50")

print(f"Net Realized Fees: {results['metrics']['fees_paid']}")

4. Symbolic Regressor & AIN Volatility Filters

Instead of weight matrices, Sagan discovers market invariants in the form of mathematical expressions using FunctionGemma.

  • Explainability: Every trade is backed by a human-readable formula, e.g., (Close * 0.5) + log(Volume).
  • Hawkes-Bates VRP Proxy: Autonomously discovered through the AIN, this macroeconomic sidecar shifts portfolios to cash during contagion regimes.

🛠️ Complete Workflow Example

This comprehensive quickstart demonstrates the full lifecycle: Symbolic Discovery, Volatility Filtering, Risk Management, and Backtest Execution.

import pandas as pd
import torch
from sagan_trade import (
    SymbolicRegressor, 
    AsymmetricRiskEngine, 
    VolatilityRegimeFilter,
    BacktestEngine
)

# 1. Fetch Market Data
data = pd.DataFrame({
    'Close': [...],
    'Volume': [...],
    'RSI': [...]
})

# 2. Symbolic Discovery
regressor = SymbolicRegressor(basis_functions=['poly', 'fourier'])
model_id = regressor.train(target="AAPL", signals=["Close", "RSI", "Volume"])
predicted_signal, formula = regressor.predict()
print(f"Discovered Alpha: {formula}")

# 3. Macro Regime Filtering
vol_filter = VolatilityRegimeFilter(vol_window=20, ma_window=120)
regime_signals = vol_filter.generate_signals(data['Close'])
print(f"Current Market Regime (1=Risk-On, 0=Cash): {regime_signals.iloc[-1]}")

# 4. Initialize Asymmetric Convexity Risk Engine
risk_engine = AsymmetricRiskEngine(target_vol=0.15, max_drawdown_limit=0.075)

# 5. Execute End-to-End Backtest
backtester = BacktestEngine(
    initial_capital=1000000,
    maker_fee=0.0001,
    taker_fee=-0.0003
)

results = backtester.run(
    prices=data['Close'],
    alpha_signals=predicted_signal,
    regime_filter=regime_signals,
    risk_model=risk_engine
)

print(f"Backtest Sharpe: {results.sharpe_ratio}")
print(f"Backtest Max Drawdown: {results.max_drawdown}")

Contribution & Links

License

MIT © 2024 Sagan Labs / Sambit Mishra

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

sagan_trade-0.9.3.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

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

sagan_trade-0.9.3-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file sagan_trade-0.9.3.tar.gz.

File metadata

  • Download URL: sagan_trade-0.9.3.tar.gz
  • Upload date:
  • Size: 23.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for sagan_trade-0.9.3.tar.gz
Algorithm Hash digest
SHA256 79ebfb988cae0d677593bc49479a7405beb492511ccfa2d7b54981acc9304807
MD5 b11806562ac423b420438f04b49523b6
BLAKE2b-256 7f647d5563e4530101e85fd36ab645ea37e6ff7c3c3bec4b52c9e28d47bbbff1

See more details on using hashes here.

File details

Details for the file sagan_trade-0.9.3-py3-none-any.whl.

File metadata

  • Download URL: sagan_trade-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 20.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for sagan_trade-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 40539199e09868329251493eff6d2fd56a32b0eb2c694588bc738d57699b8753
MD5 b3fa1cb0116871fc81aa86fb26353595
BLAKE2b-256 0392c1781c3030ce6e33c595422a2264b4f646d94f7ccf7fdd3be16645f153b4

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