Commit graph

8 commits

Author SHA1 Message Date
google-labs-jules[bot]
01c0ffbb4d Bolt: Optimize OnTick by Adding Early New-Bar Check
💡 What: This optimization introduces a lightweight new-bar check using `iTime()` at the very beginning of the `OnTick()` function. This prevents the expensive `CopyRates` call and all subsequent trading logic from executing on every single price tick.

🎯 Why: Previously, the EA performed resource-intensive calculations on every tick, even though the logic is only relevant once per bar. This caused significant and unnecessary CPU load, especially in active markets. The new-bar check was happening *after* the expensive `CopyRates` call, defeating its purpose.

📊 Impact: This change dramatically reduces the EA's CPU consumption. By exiting early on most ticks, the EA becomes far more efficient, ensuring it runs smoothly without slowing down the trading terminal or VPS.

🔬 Measurement: The performance improvement can be measured by comparing the execution time of a backtest in the MetaTrader 5 Strategy Tester before and after the change. A noticeable reduction in the total time indicates the optimization's success. Alternatively, one could observe the terminal's CPU usage with the EA running on a live chart, which will be significantly lower with this patch.
2026-01-03 10:34:27 +00:00
google-labs-jules[bot]
fd9514b9bd Bolt: Optimize Donchian Channel price lookup
💡 What: Replaced `iHigh()` and `iLow()` function calls with direct array access within the `OnTick()` function for retrieving Donchian Channel price levels.

🎯 Why: The `OnTick()` function is a performance-critical hot path that executes on every price update. The original code made redundant function calls to `iHigh()` and `iLow()` to retrieve price data that was already loaded into the local `rates` array.

📊 Impact: This change reduces unnecessary function call overhead in a high-frequency loop. While a micro-optimization, it leads to a small but meaningful improvement in execution speed and reduces processing time for each tick.

🔬 Measurement: Performance can be verified by profiling the `OnTick()` function's execution time in the MetaTrader 5 Strategy Tester before and after the change. A decrease in the average execution time per tick would confirm the improvement.
2025-12-30 10:33:03 +00:00
google-labs-jules[bot]
31eaf10a0c feat(mql5): Bolt: Use global Ask/Bid in OnTick
Replaces `SymbolInfoDouble` calls with direct `Ask` and `Bid` global variables in the `OnTick` function to improve performance.

**💡 What:** The optimization replaces function calls (`SymbolInfoDouble`) with direct access to pre-defined global variables (`Ask` and `Bid`) for fetching the latest market prices inside the performance-critical `OnTick` function.

**🎯 Why:** The `OnTick` function is executed on every price tick, making it a "hot path." Calling `SymbolInfoDouble` involves function call overhead (stack management, etc.). Using the globally available `Ask` and `Bid` variables is a standard MQL5 optimization that provides a direct, faster way to access the same information.

**📊 Impact:** This change reduces the execution time of each `OnTick` cycle by a small but meaningful amount. In a high-frequency environment, this micro-optimization can lead to a noticeable reduction in CPU usage and faster response times.

**🔬 Measurement:** The performance improvement can be verified by using the MetaTrader 5 Strategy Tester's profiling tools. A backtest run with profiling enabled would show a reduced execution time for the `OnTick` function compared to the previous version.
2025-12-28 19:02:42 +00:00
Cursor Agent
7d3a565d6f Add cached point size for performance
Co-authored-by: genxdbxfx3 <genxdbxfx3@gmail.com>
2025-12-27 20:33:29 +00:00
google-labs-jules[bot]
0bbcba4c14 feat(ea): cache static symbol properties on init
What:
Caches the results of `SymbolInfo...` calls (e.g., tick size, volume step, point value) into global variables once during the Expert Advisor's `OnInit` function. Helper functions and `OnTick` logic are refactored to use these cached values instead of making repeated calls.

Why:
The `OnTick` function is executed frequently, and the `SymbolInfo...` functions involve lookups that are unnecessary to repeat for static data. This repeated lookup adds processing overhead to every tick, which can be significant in volatile markets. Caching these values reduces the per-tick workload, making the EA more efficient.

Impact:
This change is expected to reduce the execution time of the `OnTick` function, leading to faster response times and lower CPU usage. While the exact impact depends on market conditions and broker execution, this is a standard and effective optimization practice in MQL5.

Measurement:
The performance improvement can be verified by profiling the EA's `OnTick` execution time in the MetaTrader 5 Strategy Tester before and after the change. A noticeable reduction in the average execution time per tick is expected.
2025-12-27 19:05:05 +00:00
google-labs-jules[bot]
cd70803a4e feat: Optimize Donchian channel calculation
Replaced the manual `HighestHighMql` and `LowestLowMql` loops with the built-in, native MQL5 functions `iHighest` and `iLowest`.

This change improves performance within the `OnTick` handler by leveraging optimized, pre-compiled platform functions instead of slower, scripted iterations. This leads to a more efficient and responsive Expert Advisor.
2025-12-26 10:32:51 +00:00
Cursor Agent
11782a3d7f feat: Add SL/TP modes and risk management to EA
Co-authored-by: genxdbxfx3 <genxdbxfx3@gmail.com>
2025-12-26 08:17:39 +00:00
Cursor Agent
cd29b25967 feat: Add SMC Trend Breakout MTF indicator and EA
Co-authored-by: genxdbxfx3 <genxdbxfx3@gmail.com>
2025-12-26 07:26:47 +00:00