DMTAPI
A comprehensive Python package for managing trading accounts and executing trades through a unified API interface. This package provides an asynchronous interface for interacting with trading platforms.
Features
- Asynchronous API implementation
- Comprehensive trading account management
- Real-time symbol price information
- Trade execution with multiple take-profit levels
- Order and position tracking
- Detailed account information retrieval
Installation
pip install dmtapi
Quick Start
from dmtapi import DMTAPI
from dmtapi.models.trade_model import TradeSetup, TakeProfit
async def main():
# Initialize the API with your credentials
api = DMTAPI(
api_key="your_api_key",
api_base_url="https://api.example.com"
)
# Get account information
account_info = await api.account.info(
access_token="your_access_token"
)
# Create and execute a trade
setup = TradeSetup(
symbol="EURUSD",
volume=0.1,
direction="buy", # or "sell"
stop_loss=1.0500,
take_profits=[
TakeProfit(price=1.0600, close_pct=1.0)
]
)
result = await api.trade.open(
setup=setup,
access_token="your_access_token"
)
API Structure
The DMTAPI is organized into several modules for different functionalities:
account: Account management and informationsymbol: Symbol information and pricingtrade: Trade execution and managementorder: Order history and position tracking
Account Management
# Get specific account information
account_info = await api.account.info(
access_token="your_access_token"
)
# Get all accounts
all_accounts = await api.account.all()
Symbol Operations
# Get symbol price
price = await api.symbol.price(
symbol="EURUSD",
access_token="your_access_token"
)
# Get symbol information
symbol_info = await api.symbol.info(
symbol="EURUSD",
access_token="your_access_token"
)
Trade Operations
# Open a trade
result = await api.trade.open(
setup=trade_setup,
access_token="your_access_token"
)
# Close a position
result = await api.trade.close(
ticket=12345,
access_token="your_access_token"
)
Order Management
# Get position history
history = await api.order.history(
access_token="your_access_token"
)
# Get pending orders
pending = await api.order.pending(
access_token="your_access_token"
)
# Get open positions
positions = await api.order.positions(
access_token="your_access_token"
)
Authentication
The API supports two authentication methods:
- Access Token Authentication:
api = DMTAPI(
api_key="your_api_key",
api_base_url="https://api.example.com",
access_token="your_access_token"
)
- Login/Server Authentication:
# Use login and server for specific requests
account_info = await api.account.info(
login=12345,
server="trading_server",
api_key="your_api_key"
)
Models
TradeSetup
from dmtapi.models.trade_model import TradeSetup, TakeProfit
setup = TradeSetup(
symbol="EURUSD", # Trading symbol
volume=0.1, # Trading volume
direction="buy", # Trade direction (buy/sell)
stop_loss=1.0500, # Stop loss price
take_profits=[ # Multiple take profit levels
TakeProfit(price=1.0600, close_pct=0.5),
TakeProfit(price=1.0700, close_pct=0.5)
]
)
TraderInfo
Provides comprehensive account information including:
- Account details (name, server, login)
- Balance and equity
- Margin information
- Account status
Error Handling
The API uses standard Python exceptions for error handling:
try:
result = await api.trade.open(
setup=trade_setup,
access_token="your_access_token"
)
except ValueError as e:
print(f"Invalid parameters: {e}")
except Exception as e:
print(f"An error occurred: {e}")
Examples
For more detailed examples, check the examples directory in the repository.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Release files for dmtapi 2026.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dmtapi-2026.5.0.tar.gz | 16.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dmtapi-2026.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.0 kB
Release files / dmtapi-2026.5.0.tar.gz
| Download URL | dmtapi-2026.5.0.tar.gz |
|---|---|
| Size | 16.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
17c7e73823a1f78963cce4af9330a400d7dc10fd1591ba477883c530f4d3141a
|
|
BLAKE2b-256 checksum How to use checksums |
15951215ed5cca3ce651a5d0e876826aa02bf35f62631a41cc14e64d7a618f8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / dmtapi-2026.5.0-py3-none-any.whl
| Download URL | dmtapi-2026.5.0-py3-none-any.whl |
|---|---|
| Size | 17.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7bd155cb831e080a7dab2fb68b941c677dee38a6620d3eeda91c25382f2db6a4
|
|
BLAKE2b-256 checksum How to use checksums |
01618ef8e01668dd0aed2d3142afcd137f35523599979ae66fc71cf079a125a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|