Skip to main content

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.

PyPI version Python versions

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 information
  • symbol: Symbol information and pricing
  • trade: Trade execution and management
  • order: 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:

  1. Access Token Authentication:
api = DMTAPI(
    api_key="your_api_key",
    api_base_url="https://api.example.com",
    access_token="your_access_token"
)
  1. 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)

Source distribution for dmtapi 2026.5.0
File Size Uploaded
dmtapi-2026.5.0.tar.gz 16.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dmtapi 2026.5.0
File Interpreter ABI Platform
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
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