Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

HedgeTech Python SDK

HedgeTech Python SDK is a professional, lightweight, and modular Python package designed to provide seamless access to HedgeTech services. The SDK is crafted for developers, data analysts, and algorithmic traders who want to interact with the Tehran Stock Exchange (TSE & IFB) using a clean, reliable, and easy-to-use API.

It supports both synchronous and asynchronous workflows, offering maximum flexibility and performance for different application scenarios.

Note: This SDK requires Python >= 3.10 and is production-ready. Development Status: 5 - Production/Stable. The public APIs are stable and safe for long-term use.


Features

  • Secure authentication with async and sync clients.
  • Real-time and historical market data from TSE & IFB.
  • Full EMS Engine order lifecycle management.
  • Modular architecture (Auth, DataEngine, EMSEngine).
  • Structured request/response types.
  • High-performance asyncio support.
  • Easy integration with trading bots and dashboards.

Installation

Install via PyPI:

pip install HedgeTech

Update

pip install --upgrade HedgeTech

Package Structure

HedgeTech/
 ├── Auth/
 ├── DataEngine/
 ├── EMSEngine/
 └── __init__.py

Authentication

All services require authentication.

Use matching Sync/Async clients.

Async Authentication

from HedgeTech.Auth import AuthAsyncClient

auth_async_client = await AuthAsyncClient.login(
    UserName_or_Email="user@example.com",
    Password="password"
)

print(auth_async_client.token)

Sync Authentication

from HedgeTech.Auth import AuthSyncClient

auth_sync_client = AuthSyncClient.login(
    UserName_or_Email="user@example.com",
    Password="password"
)

print(auth_sync_client.token)

DataEngine (Market Data)

The DataEngine module provides unified access to:

  • Live market data
  • Historical OHLCV
  • Order books
  • Best limits
  • WebSocket streams

All engines follow identical Sync/Async APIs.


Async Data Example

from HedgeTech.DataEngine import DataEngine_TseIfb_AsyncClient

client = DataEngine_TseIfb_AsyncClient(auth_async_client)

data = await client.live_best_limit_by_isin(
    symbol_isins=["IRT1AHRM0001","IRO1IKCO0001"]
)

print(data)

async for update in client.websocket_by_name(
    channels=["best-limit","order-book"],
    symbol_names=["فملی","اطلس"]
):
    print(update["data"])

Sync Data Example

from HedgeTech.DataEngine import DataEngine_TseIfb_SyncClient

client = DataEngine_TseIfb_SyncClient(auth_sync_client)

data = client.historical_ohlcv_by_name(
    symbolName="مهرگان",
    start_timestamp=0,
    end_timestamp="1763411432",
    AdjustedPrice=True,
    Resolution="D"
)

print(data)

for update in client.websocket_by_isin(
    channels=["best-limit","order-book"],
    symbol_isins=["IR1234567890"]
):
    print(update["data"])

EMSEngine (Order Management)

The EMSEngine module handles complete order management.

Supported markets: - TSE - IFB


EMSEngine Features

  • Buy/Sell by Name or ISIN
  • Edit Orders
  • Cancel/Delete Orders
  • Real-time Status
  • Async/Sync Compatibility
  • Order Object Lifecycle

Order Lifecycle

  1. Create Order
  2. Send
  3. Monitor Status
  4. Edit (Optional)
  5. Settle or Delete

Async Trading Example

from HedgeTech.EMSEngine import EmsEngine_TseIfb_AsyncClient

ems = EmsEngine_TseIfb_AsyncClient(auth_async_client)

captcha = await ems.Get_Captcha("Omex | Parsian")
captcha.show()

await ems.oms_login(
    username="user",
    password="pass",
    captcha_value="1234"
)

order = await ems.Buy_by_Name(
    symbolName="اطلس",
    Price=100000,
    Volume=10
)

await order.send()

status = await order.Status()
print(status)

await order.Edit(Price=105000, Volume=12)

await order.Delete()

Sync Trading Example

from HedgeTech.EMSEngine import EmsEngine_TseIfb_SyncClient

ems = EmsEngine_TseIfb_SyncClient(auth_sync_client)

captcha = ems.Get_Captcha("Omex | Parsian")
captcha.show()

ems.oms_login(
    username="user",
    password="pass",
    captcha_value="1234"
)

order = ems.Sell_by_Name(
    symbolName="فملی",
    Price=50000,
    Volume=5
)

order.send()

status = order.Status()
print(status)

order.Edit(Price=52000, Volume=6)

order.Delete()

Unified API Design

All Sync and Async clients share:

  • Same method names
  • Same parameters
  • Same return types

Only execution model differs.

This enables seamless switching between modes.


Error Handling

  • Invalid credentials raise ValueError
  • Network errors should be handled by user
  • Failed requests may return None

Recommended: wrap calls in try/except.


Performance

  • Non-blocking Async I/O
  • Connection pooling
  • Optimized request batching
  • Suitable for HFT and Algo Trading

Security

  • JWT Authentication
  • Encrypted Transport (HTTPS)
  • No password storage
  • Session isolation

Best Practices

  • Refresh tokens regularly
  • Monitor order status
  • Avoid duplicate send()
  • Validate inputs
  • Log critical operations

Modules Overview

HedgeTech.Auth

Provides:

  • AuthAsyncClient
  • AuthSyncClient
  • Token management
  • Session handling

HedgeTech.DataEngine

Provides:

  • Market data APIs
  • Historical data
  • WebSocket feeds
  • Modular engine design

HedgeTech.EMSEngine

Provides:

  • EmsEngine_TseIfb_AsyncClient
  • EmsEngine_TseIfb_SyncClient
  • Order class
  • Lifecycle management

Roadmap

  • Auto session refresh
  • Smart retry system
  • Risk control module
  • Order batching
  • Metrics & Monitoring
  • Strategy framework

Contributing

We welcome contributions.

Guidelines:

  • Follow PEP8
  • Add tests
  • Update documentation
  • Submit Pull Requests

License

Licensed under Apache License 2.0.

See LICENSE file.


Support

GitHub Issues: https://gitea.hedgetech.ir/HedgeTech/HedgeTech/issues

Email: info@hedgetech.ir


© 2026 HedgeTech. All rights reserved.

Release files for HedgeTech 0.3.1b4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for HedgeTech 0.3.1b4
File Size Uploaded
hedgetech-0.3.1b4.tar.gz 53.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for HedgeTech 0.3.1b4
File Interpreter ABI Platform
hedgetech-0.3.1b4-py3-none-any.whl Python 3 none any Details

Total release size:116.5 kB

Release files / hedgetech-0.3.1b4.tar.gz

Download URL hedgetech-0.3.1b4.tar.gz
Size 53.3 kB
Tags Source
SHA-256 checksum
How to use checksums
34537a3f29d80754d7594fc12807bb4789b167961dbdbe32af853aa64da5bd3a
BLAKE2b-256 checksum
How to use checksums
5905478fc1b1d1c7cfd0a664d08a75e61b96508feeb4d3798a694081495e693f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / hedgetech-0.3.1b4-py3-none-any.whl

Download URL hedgetech-0.3.1b4-py3-none-any.whl
Size 63.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4111f5c8a3a47470bd34111157193219dfe80acaedf2e0556ff65339b4000623
BLAKE2b-256 checksum
How to use checksums
9ad9701a388c22d2ce23ccc930243e880016e1ca6bbacf7035f2b5565522acce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page