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.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dmtapi-2025.3.dev5.tar.gz.
File metadata
- Download URL: dmtapi-2025.3.dev5.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
697c63293827ed3db54dac5b3872c7ae1a1d95614ec70bf79f88a181ec0900d4
|
|
| MD5 |
bbe5dff86693e674640c7f5c605a0390
|
|
| BLAKE2b-256 |
ff37b632b05f2b08d5e455443706af2a1b8b3373e8fd91ff382fcaaa54bcd91a
|
File details
Details for the file dmtapi-2025.3.dev5-py3-none-any.whl.
File metadata
- Download URL: dmtapi-2025.3.dev5-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89fd71e94956e9ca80c73e85295ef1d4a4f0964b7b600530eaba3f0b55e2900e
|
|
| MD5 |
c2f0a3e34619aeb562aa7ae57f431811
|
|
| BLAKE2b-256 |
193e73883fdd85841054f865f7f06ff5bd347cd6b7ba3ad35869379cf7180808
|