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
- Create Order
- Send
- Monitor Status
- Edit (Optional)
- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| hedgetech-0.3.1b4.tar.gz | 53.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|