Discussing the article: "Neural Networks in Trading: An End-to-End Multivariate Time Series Forecasting Model (Conclusion)"
They’ve messed something up again with the function calls… please help me sort this out…
It doesn’t recognise
double Math::MathPow(double a), for example, but only offers implementations for arrays:
bool Math::MathPow(const double&[], const double, double&[])Math.mqh
which I have absolutely no idea what they’re for?!(((
It’s not working
double Math::MathPow(double a) – let’s say it only offers implementations for arrays:
bool Math::MathPow(const double&[], const double, double&[])Math.mqh
It’s not at all clear what these are actually for?!(((
Wherever the error occurs, replace MathPow with::MathPow; this will allow you to call the compiler’s functions rather than those declared in the class.
call resolves to 'bool CNeuronPSBlock::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint)' instead of 'bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 3513 25 see declaration of function 'CNeuronPSBlock::Init' NeuroNet.mqh 48451 22 see declaration of function 'CNeuronConvSAMOCL::Init' NeuroNet.mqh 11308 22 no one of the overloads can be applied to the function call NeuroNet.mqh 21835 18 could be one of 2 function(s) NeuroNet.mqh 21835 18 bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11308 22 bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11309 22 call resolves to '<NA>' instead of 'bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 21835 18 see declaration of function 'CNeuronConvOCL::Init' NeuroNet.mqh 10973 22 no one of the overloads can be applied to the function call NeuroNet.mqh 21840 18 could be one of 2 function(s) NeuroNet.mqh 21840 18 bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11308 22 bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11309 22 call resolves to '<NA>' instead of 'bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 21840 18 see declaration of function 'CNeuronConvOCL::Init' NeuroNet.mqh 10973 22 no one of the overloads can be applied to the function call NeuroNet.mqh 21846 18 could be one of 2 function(s) NeuroNet.mqh 21846 18 bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11308 22 bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11309 22 call resolves to '<NA>' instead of 'bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 21846 18 see declaration of function 'CNeuronConvOCL::Init' NeuroNet.mqh 10973 22 no one of the overloads can be applied to the function call NeuroNet.mqh 30722 16 could be one of 2 function(s) NeuroNet.mqh 30722 16 bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10973 22 bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10974 22 call resolves to '<NA>' instead of 'bool CNeuronProofOCL::Init(uint,uint,COpenCLMy*,int,int,int,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 30722 16 see declaration of function 'CNeuronProofOCL::Init' NeuroNet.mqh 10856 22 no one of the overloads can be applied to the function call NeuroNet.mqh 30730 16 could be one of 2 function(s) NeuroNet.mqh 30730 16 bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10973 22 bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10974 22 call resolves to '<NA>' instead of 'bool CNeuronProofOCL::Init(uint,uint,COpenCLMy*,int,int,int,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 30730 16 see declaration of function 'CNeuronProofOCL::Init' NeuroNet.mqh 10856 22 no one of the overloads can be applied to the function call NeuroNet.mqh 30755 16 could be one of 2 function(s) NeuroNet.mqh 30755 16 bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10973 22 bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10974 22 call resolves to '<NA>' instead of 'bool CNeuronProofOCL::Init(uint,uint,COpenCLMy*,int,int,int,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 30755 16 see declaration of function 'CNeuronProofOCL::Init' NeuroNet.mqh 10856 22 wrong parameters count, 12 passed, but 15 requires NeuroNet.mqh 64222 22 bool CNeuronTimeMoEAttention::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 63529 22 call resolves to 'bool CNeuronTimeMoEAttention::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' instead of 'bool CNeuronCrossDMHAttention::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 64222 22 see declaration of function 'CNeuronTimeMoEAttention::Init' NeuroNet.mqh 63529 22 see declaration of function 'CNeuronCrossDMHAttention::Init' NeuroNet.mqh 50759 22 7 errors, 8 warnings 7 8
Furthermore, the same issues occur in the NeuroNet.mqh module
The corrected library can be found in the article ‘Neural Networks in Trading: Decomposition Instead of Scaling — Building Modules’ – Articles on MQL5
- 2025.08.08
- www.mql5.com
Revised library in the article ‘Neural Networks in Trading: Decomposition Instead of Scaling — Building Modules’ – Articles on MQL5
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Check out the new article: Neural Networks in Trading: An End-to-End Multivariate Time Series Forecasting Model (Conclusion).
We have now reached the most crucial — and perhaps the most interesting — part: evaluating the GinAR framework in real-world conditions. We have now completed the stages of architectural design, implementation of key components, and development of forward- and backward-pass algorithms. All components of the system have been thoroughly developed, tested, and adapted to the specific characteristics of financial time series. Now it is time to bring them all together and, as they say, put them through their paces — to see how effectively GinAR handles practical analysis and forecasting tasks.
After completing the offline training, we moved on to the second phase — online fine-tuning conducted under conditions close to the live market. Training was carried out in the MetaTrader 5 Strategy Tester, where the model analyzed the market in streaming mode, step by step and candle by candle. Not only did this allow us to test the model’s resilience to noise, market distortions, and random fluctuations, but it also became an important tool for adaptation: the model did not simply memorize — it actually learned to operate under real, unpredictable conditions. This approach significantly increased its robustness, reduced overfitting, and improved its generalization ability.
The final step was to test the model on entirely new data — market quotes for the period from January through March 2025. All parameters and internal settings used during training were retained unchanged. Thus, the results obtained allow for an objective assessment not only of the accuracy but also of the practical reliability of the proposed approach.

The model testing results provide an objective picture of its actual effectiveness and robustness outside the training sample. The initial deposit of $100 grew to $1,087.74, which is equivalent to a more than 10-fold increase in capital — a result that seems impressive at first glance. However, upon closer examination, a distinctive pattern becomes apparent: the model performs very well at the beginning of the test period, but as it moves further away from the training sample, its performance begins to decline.Author: Dmitriy Gizlyk