Skip to main content

Python SDK for the SAGAX Quantitative Trading Platform API (A-shares + Futures)

Project description

SAGAX Python SDK

SAGAX 量化交易平台 Python SDK,通过 HMAC-SHA256 签名认证调用全部 API。支持 A股 + 期货 双市场。

SAGAX Python SDK — access the SAGAX Quantitative Trading Platform API with HMAC-SHA256 authentication. Supports A-shares + Futures markets.

Installation

pip install sagax-sdk

Quick Start

from sagax import SagaxClient

client = SagaxClient(
    api_key="sagax_ak_...",
    secret_key="sagax_sk_...",
    # base_url="https://api.sagax.cn",      # A-shares backend (default)
    # futures_url="https://api.sagax.cn:5001",  # Futures backend
)

A-shares API (A股)

Market Data (Basic Tier)

overview = client.market.overview()          # 市场概览
indices  = client.market.indices()           # 主要指数
sectors  = client.market.sectors()           # 板块表现
gainers  = client.market.gainers(limit=10)   # 涨幅榜
losers   = client.market.losers(limit=10)    # 跌幅榜

Stock Data (Basic / Standard Tier)

# Basic tier
stocks = client.stock.list(page=1, per_page=50)
results = client.stock.search(q="平安银行")
info   = client.stock.basic("000001.SZ")
daily  = client.stock.daily("000001.SZ", start_date="20260101", adj="qfq")
price  = client.stock.price("000001.SZ")

# Structured financial data (Basic tier)
trades     = client.stock.block_trades("000001.SZ")       # 大宗交易
express    = client.stock.express("000001.SZ")             # 业绩快报
floats     = client.stock.share_float("000001.SZ")         # 限售解禁
holders    = client.stock.holdertrade("000001.SZ")         # 股东增减持

# Standard tier
indicators = client.stock.indicators("000001.SZ", days=60)
factors    = client.stock.factors("000001.SZ")

Factor System (Standard Tier)

all_factors = client.factors.list()                       # 因子列表
categories  = client.factors.categories()                 # 因子分类
ep_data     = client.factors.data("ep", date="2026-03-11")# 因子截面数据
detail      = client.factors.detail("ep")                 # 因子详情
bt          = client.factors.backtest("ep")               # 单因子回测
ranking     = client.factors.top_bottom("ep", top_n=20)   # 因子排行

AI Analysis (Standard Tier)

search = client.ai.search(q="新能源")

# 深度思考模式 (thinking) 可能耗时 1-5 分钟
valuation     = client.ai.valuation("000001.SZ", mode="thinking")
comprehensive = client.ai.comprehensive("000001.SZ")
trend         = client.ai.trend("000001.SZ")
batch         = client.ai.batch(["000001.SZ", "600000.SH"])
report        = client.ai.report("valuation", "000001.SZ")

Backtesting (Advanced Tier)

result = client.backtest.run(
    factors=[{"name": "ep", "weight": 0.5}, {"name": "momentum_20d", "weight": 0.5}],
    start_date="2025-01-01",
    end_date="2026-01-01",
    top_n=30,
)
saved = client.backtest.result(result["run_id"])

Multi-Agent Strategy (Advanced Tier)

spec   = client.agent.strategy_spec()         # 默认策略配置
result = client.agent.run()                    # 运行策略
llm    = client.agent.llm_decision()           # LLM 多智能体决策
regime = client.agent.regime()                 # 市场状态检测

Factor Lab (Advanced Tier)

factor  = client.factorlab.generate(prompt="高ROE低波动因子")
reviews = client.factorlab.reviews()
client.factorlab.approve("factor_xxx.py")

AI Chat (Advanced Tier)

# Streaming
for event in client.chat.stream("分析平安银行走势"):
    if event["type"] == "token":
        print(event["content"], end="", flush=True)

# Convenience (returns full text)
text = client.chat.send("分析平安银行走势")

# Session management
sessions = client.chat.sessions()
client.chat.delete_session("sess_xxx")

News Intelligence (Advanced Tier)

news      = client.news.articles(category="macro", limit=50)
signals   = client.news.signals(ts_code="000001.SZ")
dashboard = client.news.dashboard()

Futures API (期货)

Futures data routes to a separate backend. Configure futures_url or it defaults to base_url (same host, different port).

client = SagaxClient(
    api_key="...",
    secret_key="...",
    futures_url="http://localhost:5001",  # Futures backend
)

Market Data

overview = client.futures.overview()          # 市场概览
indices  = client.futures.indices()           # 主力合约行情
sectors  = client.futures.sectors()           # 按交易所分组
gainers  = client.futures.gainers(limit=10)   # 涨幅榜
losers   = client.futures.losers(limit=10)    # 跌幅榜
scan     = client.futures.market_scan()       # 异动扫描 (量能突增/持仓变动)

Contract Data

# Contract list & search
contracts = client.futures.contracts(exchange="SHFE", main_only=True)
results   = client.futures.search("螺纹钢")

# Single contract
info      = client.futures.basic("rb2510")
price     = client.futures.price("rb2510")
daily     = client.futures.daily("rb2510", days=60)
inds      = client.futures.indicators("rb2510")       # MA5/10/20/60
latest    = client.futures.indicators_latest("rb2510") # Latest bar

# Minute K-lines (5min / 15min)
kline     = client.futures.kline("rb2510", period="5min", limit=500)

Permission Tiers

Tier Rate Limit Modules
basic 60/min market, stock (basic), futures
standard 120/min + factors, ai, stock (indicators/factors)
advanced 300/min + backtest, agent, factorlab, chat, news

API Key permission tier is assigned by SAGAX admin.

Error Handling

from sagax import SagaxClient, AuthError, RateLimitError, NotFoundError

client = SagaxClient(api_key="...", secret_key="...")

try:
    data = client.stock.daily("000001.SZ")
except AuthError as e:
    print(f"Auth failed: {e}")
except RateLimitError as e:
    print(f"Rate limited. Retry after {e.retry_after}s")
except NotFoundError:
    print("Stock not found")

Configuration

client = SagaxClient(
    api_key="...",
    secret_key="...",
    base_url="https://api.sagax.cn",       # A-shares API endpoint
    futures_url="https://api.sagax.cn:5001",  # Futures API endpoint
    timeout=30,                             # Default timeout (seconds)
    max_retries=3,                          # Retries on 429
)

License

MIT

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

sagax_sdk-0.3.3.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

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

sagax_sdk-0.3.3-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file sagax_sdk-0.3.3.tar.gz.

File metadata

  • Download URL: sagax_sdk-0.3.3.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for sagax_sdk-0.3.3.tar.gz
Algorithm Hash digest
SHA256 1f11982ba64668b79822803758a5f3f7d79d41ae8f0481671aa530e0fabbd9b3
MD5 dafc41a348e149bcfe2794f564a8de80
BLAKE2b-256 abe14a1b684109dfe83d9b1a7323a915f83c77514062fa6a51b53aa9f1d9d246

See more details on using hashes here.

File details

Details for the file sagax_sdk-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: sagax_sdk-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for sagax_sdk-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 50448355b804967f51a1313b364f52ed63b70099be52ed0bc867be631c218495
MD5 b17137b928d51914d41b47a297cde889
BLAKE2b-256 d8a4b5d7c5e2d68e4c831205c14ede103bfe8e581c8f8b614f8589a7fa385aa6

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