Install
$ agentstack add skill-acaprino-claude-code-daodan-mt5-trading ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ● Shell / process execution Used
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
MetaTrader 5 Python Algotrading
Knowledge base for building production-grade algorithmic trading systems with MetaTrader 5 Python API.
When to Use
- Connecting to MT5 terminal via the official Python API
- Building polling-based event systems (ontick, onnewcandle, onposition)
- Executing orders with correct fill modes (FOK, IOC, Return)
- Downloading historical data (copyrates, copyticks)
- Handling MT5 disconnections and terminal restarts
- Deploying MT5 bots on Windows with process monitoring
- Choosing between official API, aiomql, and ZeroMQ bridge
Quick Start
For 80% of use cases, start with:
- Library:
pip install MetaTrader5(official) orpip install aiomql(async wrapper) - Connection:
mt5.initialize(path=..., login=..., server=..., password=...) - Event system: polling loop with candle/tick/position change detection
- Orders:
order_check()beforeorder_send(), always detect fill mode dynamically - Risk: server-side SL/TP on every position (non-negotiable)
- Resilience: health check every 30-60s, psutil process monitoring, exponential backoff
Then harden incrementally:
- Silent errors -- wrap every API call with None check + last_error()
- Fill mode rejections (10030) -- dynamic filling_mode detection per symbol
- Terminal crashes -- psutil watchdog + subprocess restart
- Weekend handling -- datetime.weekday() sleep mode
Reference Materials
api-architecture.md-- MT5 Python API architecture, 32 functions, named pipes IPC, MQL5 EA vs Python, library comparisonevent-system-polling.md-- polling patterns, new candle detection, tick monitoring, position tracking, concurrency rulesorder-execution.md-- order_send, fill modes (FOK/IOC/Return), hedging vs netting, retcodes, risk checks, magic numbersdata-feed-historical.md-- copyrates, copyticks, depth, timezone caveats, caching, data quality, broker differencesproduction-resilience.md-- disconnection handling, reconnection, weekend management, Windows deployment, community resources
Key Decision Points
| Decision | Default | Upgrade When | |----------|---------|-------------| | Library | Official MetaTrader5 | Need async: aiomql. Need true streaming: ZeroMQ bridge | | Event model | Polling (1-5s interval) | Tick-sensitive: poll 100-250ms. True events: ZeroMQ EA bridge | | Fill mode | Detect dynamically per symbol | Never hardcode -- changes between brokers/symbols | | Account mode | Hedging (most forex brokers) | Check accountinfo().marginmode at startup | | Data caching | Parquet + Zstandard | Tick data -- partition by day/month | | Concurrency | asyncio (single thread) | Multi-account -- separate processes per terminal | | Backtesting | Python framework (Backtrader, Backtesting.py) | Need MT5 tester -- MQL5 EA wrapper | | SL/TP | Server-side always | Python trailing only as supplement, never as sole protection |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: acaprino
- Source: acaprino/claude-code-daodan
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.