The error "Invalid stop distance: 0.0" was occurring because the entry signals were being generated with invalid (zero) stop distances. This happened when the market volatility (ATR) value was 0 or not properly calculated.
Key Changes Made (Version 6.5.1):
Added GetValidATR() Helper Method in EntrySystem.mqh:
This method ensures we always have a valid ATR value
Includes multiple fallback mechanisms:
Direct ATR calculation if market data is invalid
0.1% of current price as a fallback
Minimum 20 pips for forex pairs
Updated All Entry Strategy Methods to use GetValidATR():
CheckMACrossover()
CheckMAPullback()
CheckMomentum()
CheckContrarian()
CheckBreakout()
CheckMeanReversion()
CheckMultiStrategy()
Enhanced Signal Validation in CheckSignal():
Added explicit check for stop_loss_distance > 0
Signal is rejected if stop distance is invalid
Better error logging to identify which strategy produced invalid signals
Improv
2- Compile and debug - Critical error on exit - OnDeinit
3- Fix for Entry System - Add to OnTick():
4 - ENUM_TECHNICAL_LEVEL enum in DataTypes.mqh -> other Enums and structures DataTypes.mqh v3
The Complete DataTypes Module provides the robust foundation needed for your institutional-grade risk management system, offering better trade tracking, risk analysis, and technical integration capabilities essential for professional algorithmic trading.
Moved modules to inside Advisors post-compile 1 debug; became unversioned
2 -