MQL5 is an object oriented language like C++, Java, Python and C#.
However unlike C++, Java, Python and C#, MQL5 has very few classes build.
MQL5 has a few in built classes that includes a class on fuzzy logic.
I have written this post in which I have explained how to do object oriented programming in MQL5.
This is a simple class that opens and closes new trade orders.
This is just to give you an idea how to build a class and then use it again and again.
We can also build more complicated classes that can do machine learning and deep learning.
But I think it would be a better idea to use the DLL and connect MQL5 with C++, Java and Python.
This will help us use the large family of classes to use in MQL5.
C++ has very good libraries on algorithmic trading that includes particle filtering.
So it would be a good idea to connect MQL5 with C++.