Algorithmic Trading & MT5
24/7 VPS Deployed
Python 3.12 • MetaTrader 5
MetaTrader 5 Autonomous Execution Bot with Hard Risk Controls
A continuous algorithmic daemon executing multi-timeframe confluence strategies on MT5 terminals. Features dynamic equity-percentage lot sizing, trailing ATR stops, and automatic circuit breakers against daily maximum drawdown.
Execution Speed
< 45ms
Order routing
Uptime
99.98%
Cloud VPS daemon
Risk Sentinel
Hard Cap
Auto emergency kill
Alerts
Telegram
Real-time webhooks
The Problem
Manual order execution across global sessions (London open, New York crossover, Asian session) introduces fatigue, delayed entries, hesitation during high volatility, and human deviation from risk management rules.
The Solution
Developed a fully autonomous Python daemon communicating directly with the MetaTrader 5 terminal. The bot continuously calculates lot sizes based on exact dollar risk, executes orders in under 45ms, and logs all events to Telegram.
Dynamic Position Sizing Algorithm
# MetaTrader 5 Dynamic Lot Sizing & Order Placement Engine
import MetaTrader5 as mt5
def execute_risk_managed_trade(symbol: str, action: str, stop_loss_pips: float, risk_usd: float) -> dict:
if not mt5.initialize():
return {"status": "ERROR", "message": "Failed to connect to MT5"}
symbol_info = mt5.symbol_info(symbol)
point = symbol_info.point
pip_value = symbol_info.trade_tick_value
# Calculate exact lot size to risk exactly risk_usd
raw_lot = risk_usd / (stop_loss_pips * (10 if symbol_info.digits in (3, 5) else 1) * pip_value)
lot_step = symbol_info.volume_step
lot_size = max(symbol_info.volume_min, min(round(raw_lot / lot_step) * lot_step, symbol_info.volume_max))
price = mt5.symbol_info_tick(symbol).ask if action == "BUY" else mt5.symbol_info_tick(symbol).bid
sl_price = price - (stop_loss_pips * point * 10) if action == "BUY" else price + (stop_loss_pips * point * 10)
request = {
"action": mt5.TRADE_ACTION_DEAL,
"symbol": symbol,
"volume": lot_size,
"type": mt5.ORDER_TYPE_BUY if action == "BUY" else mt5.ORDER_TYPE_SELL,
"price": price,
"sl": sl_price,
"deviation": 10,
"magic": 202608,
"comment": "Majid_Algo_Bot"
}
result = mt5.order_send(request)
return {"status": "SUCCESS", "order_id": result.order, "lot_size": lot_size}
"Majid developed our MetaTrader 5 automated execution bot and backtesting engine for Gold and Forex. His strict risk management sentinel, emergency disconnect protection, and sub-45ms execution are institutional-grade."
Bilal Tariq
Head Trader • Alpha Edge PSX (Lahore)