You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
If you want to test, and avoid update of other terminal, you have to remove the following folder :
This information (probably taken from the Russian forum) is no longer up to date. From v534 onwards, the update on Win7+ is put into %appdata%\metaquotes\webinstall, not into %programdata%\metaquotes\webinstall.
May change again in subsequent versions.
This information (probably taken from the Russian forum) is no longer up to date. From v534 onwards, the update on Win7+ is put into %appdata%\metaquotes\webinstall, not into %programdata%\metaquotes\webinstall.
May change again in subsequent versions.
I am probably not a good example, as I am a professional programmer. So it's not a huge effort for me, and I like to learn new programming language. I have some experience with oop too.
. . . . .
Imo, OOP involves believing in Encapsulation, Abstraction, Inheritance, and Polymorphism. I don't think you're suppose to able to "follow" someone else's codes because of Abstraction. All you need to know is what it does . On a more serious note, I believe OOP provides a level of organization/cataloging which is enforced && supported by the language && IDE. A programmer cannot have too much organization, this probably ends_up saving time on future projects for most programmers.
Thanks for your reply angelvoyager that was a good insight from someone who si familiar with both sides of the coin, I am in the same boat as Raptor, the concepts of oop have started to interest me and I want to learn more about it, its good to know that is not entirely neccessary for continuing to use mql4 even with the mql5 features, but still, I would like to understand what are the advantages of coding according to oop concepts and principles and how well do they apply to coding a small project like an EA.
When I code an EA it usually ends up being similar to the book one, a central hub function that accumulates the current status of things, and stores that information in global arrays surrounded by peripheral functions that use the information in those same arrays to decide what to do, each of them call other helper functions for calculating things such as lot sizes etc. The start() function just calls the central hub function first followed by the peripheral functions in order of priority. That basic structure works pretty well although I have never really liked the fact that the whole thing is centered on global access to those arrays, but i didnt not like it enough to look for a different way of doing it. In other words it works well enough so I didnt try to fix it lol.
I would like to know how would an oop approach differ from that and what would be the advantages of it.
I would like to know how would an oop approach differ from that and what would be the advantages of it.
I believe you're describing a program flow. I don't think thats the big_idea behind OOP. (imo) OOP tries to address the following problems. I'm a OOP noob, but I'm forming my world_view on it.
1) Are your functions independent of global_variables? In other_words are your functions stand alone objects? Encapsulation
2) Does your function hide the details like local_variable_names? Does it simplify the volume of codes on the screen? Abstraction
3) Does it have the ability to create duplicate copies of itself for modifications? Like ability to create your own data types? Inheritance.
4) Does it have the ability to change on the fly? Example:Can the function handle integer_array as well as double_arrays? Polymorphism.
Ways OOP can help in building_ea is similar to how an ea_builder helps a non_programmer built an expert_advisor. You just grab your favorite Order_Accounting_Function -> Data_Function -> Event Tracking Function -> Volume Defining Function -> Trading Criteria Defining Function -> Trade Functions -> Error Processing Function. And boom, you have an Expert_Advisor. All your Trading Criteria Defining Function you've developed over the years can be easily swapped_in or out.
Me as an example, if you wanted to modify my expert advisor, you'll need to study where my global variables are being applied and what other function depends upon it (as in your state or status arrays). OOP makes it as_simple_as Accounting(Option_3); Display(Option_1); Caption(Option_5); TradingSys(Option_7); VolumeSize(Option2); OrderType(Option_2) and thats the entire expert.
This makes it easier for someone else to use your set of libraries, and usually what works for someone else works for you as-well some time in the future. If nothing else, just think stand_alone objects on an assembly line :)
The latest version of my EA is getting close to that, it is now all include files but they are not robust enough to be used out of the box without at least some modifications. The mistake I often make is I don't catch myself writing criteria specific code into functions that should be ambiguous until after the fact and they do rely too much on glabal arrays, when I get time I am going to use more local arrays and more passing of parameters to compensate for less global access.
***Ps: (I don't wanna forget this). Sure most of us don't like not_knowing whats in the codes we're using. Or we get consumed with trying to understand the codes from someone else otherwise we probably wouldn't use it. However, most of the Native functions ( example OrderSend() ) in mql4 are Objects from our view_point. We do_not see their codes however we accept it. I believe this acceptance of other_peoples libraries is something a professional_oop_programmer working on large projects have to accept and built upon. Otherwise you're stuck re-creating the wheel.