Skip to main content

Dynamo MetaTrader API

Project description

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.

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

dmtapi-2025.3.dev7.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

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

dmtapi-2025.3.dev7-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file dmtapi-2025.3.dev7.tar.gz.

File metadata

  • Download URL: dmtapi-2025.3.dev7.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dmtapi-2025.3.dev7.tar.gz
Algorithm Hash digest
SHA256 201e4705318009eeaaef1894941c2792bfe595cb63ee075de2ae3a71520445a5
MD5 c29d70ba383240ec2203cf90b0843223
BLAKE2b-256 85ef694d38eec050c5199bc633af24cd1cc1806b495e9a381efc5370b4a2a3e1

See more details on using hashes here.

File details

Details for the file dmtapi-2025.3.dev7-py3-none-any.whl.

File metadata

  • Download URL: dmtapi-2025.3.dev7-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dmtapi-2025.3.dev7-py3-none-any.whl
Algorithm Hash digest
SHA256 9557de66e6f7368448b06d6aa60faa89ea2ff7cd7a77f7a90e8ae974169910c6
MD5 868f5ca29d0791d11c733d870870c0dc
BLAKE2b-256 0ac4adf90ee08120d4a3fa77e6a30e5db5ee8ec46658248e2ed721cb62c5d166

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