exp_statusbot
This EA is a monitoring utility that writes account status, order notifications, and trade history reports to text files. It tracks opened and closed orders by comparing ticket arrays across ticks and outputs changes to a notify file. It does not open, modify, or close any trades on its own.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
Not backtested yet — this EA could not be converted automatically.
Strategy analysis
This EA is not a trading strategy but a pure monitoring/reporting utility. It contains no entry or exit conditions and does not place or close any trades automatically. Its core functionality has three parts: first, WriteStatus() writes real-time account balance, current positions with symbol, direction, lot size, and floating profit in pips to status.txt; second, WriteNotify() detects newly opened and closed orders by comparing the current ticket array against the previous tick's ticket array, writing changes to notify.txt; third, WriteReport() reads historical orders when account balance changes, sorts them by close time using an inefficient O(n²) selection sort, and generates a CSV report with open/close times, prices, commission, swap, and profit. There is no position sizing or money management since the EA does not execute any trades. The overall logic is straightforward but the code quality is low, with variable scoping issues and an inefficient sorting algorithm.
Strengths
- Real-time monitoring of account status and position info, easy for external programs to read
- Automatically detects order open and close events and logs notifications, providing timely order change tracking
- Generates sorted historical trade reports with complete trade details and P&L information
- Clean file output format, easy to integrate with other systems or remote monitoring
- Low resource usage, only performs file writes on each tick
Weaknesses
- The sorting algorithm in WriteReport() uses O(n²) selection sort, which has terrible performance with large order history
- Variable scoping is messy — loop variables i and j are declared outside for loops but used inside, potentially causing compilation issues
- Critical bug on line 174 of WriteReport(): closeprice uses OrderOpenPrice() instead of OrderClosePrice()
- File writes execute on every tick, frequent disk I/O may impact terminal performance
- Lacks error handling and file locking, concurrent instances may cause file write conflicts
- The notify file is overwritten rather than appended, previous notification data is lost
Possible improvements
- Fix the critical bug where closeprice uses OrderOpenPrice() instead of OrderClosePrice()
- Replace the O(n²) selection sort with a more efficient sorting algorithm for better performance with large order histories
- The notify file should use append mode instead of overwrite to preserve historical notification records
- Add new bar check mechanism to avoid file writes on every tick, reducing unnecessary disk I/O
- Normalize variable scoping by declaring loop variables inside for statements
Risk assessment
Overall risk: Safe
- This EA does not execute any trading operations, so there is no trading risk
- The closeprice bug may cause inaccurate report data, affecting analysis decisions
- Frequent disk writes may impact terminal responsiveness in extreme cases
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
statusfilename | status.txt | Status output filename |
spamfilename | notify.txt | Order change notification filename |
reportfilename | report.txt | Historical trade report filename |
Similar Utility EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.