I am brand new to MT4, and am required to use MT4 instead of MT5 because OANDA my broker only supports MT4.
I am a C/C++/C# expert.
Using the MetaEditor I do not see a way to organize a set of files into a project. It looks like EA's must be 1 file and only 1 file? Is there a way to create a project where I would have multiple mq4 files in a single EA program?
Questions: Using the MetaEditor I do not see a way to organize a set of files into a project. It looks like EA's must be 1 file and only 1 file? Is there a way to create a project where I would have multiple mq4 files in a single EA program?
It is not very common to have EA's that span more than a single source file, but it is possible to have "Projects" (see image), but you will have to active MQL5 Storage (in your Profile) for using these Subversion-based "Projects" ...
EDIT: PS! Please note that you do not have to "activate" this to develop multi-file EA projects. You can create your own Projects File structure and develop them as you wish without "activating" it. The MQL5 Storage, just simplifies things by adding versioning and cloud-storage in order to facilitate the development of projects, especially when working in teams.
Also, please note that the MetaEditor is v5.0, as it is used for both the MetaTrader 4 and MetaTrader 5 environments.
You will want to use mqh files and include them into you main mq4. For example, let's say I wanted to start an open-source project and have all the related files in one folder/repo. First I would create a subfolder in the Experts folder. Next I would run git init and create a repo. After that I copy all the mqh dependencies into that folder. Here is an example: https://bitbucket.org/nicholishen/mql4-ffevents/src
You can share source code with indicators by using a relative path with the includes
This doesn't really answer your question of "Using the MetaEditor . . . " but it may be a useful work-around.
metaeditor.exe will take command-line options, which means you could, with a little work, get an IDE of your choice (e.g. Eclipse) to compile your MQL4 code.
When I did MQL4 code, I used SciTE editor for MQL4:
SciTE for MQL4 doesn't really do "projects," per se, but you can save sessions, which allow you to group related files. It's better than nothing.
It wasn't too hard to outfit SciTE for MQL5, either.
What would be the advantage of compiling MQL from Eclipse when you do not have any integration in Eclipse?
1. To organize a set of files into a project. This becomes especially useful when a programmer puts each class in a separate file. It becomes even more useful when unit tests are also added.
2. Eclipse is extensible through plugins. For example, EGit gives you git access from within the IDE.
It should be fairly straightforward to convert a C++ code template to MQL, so you wouldn't miss out on syntax coloring.
All that said, I use SciTE for all my MQL programming, not Eclipse; but it could be used if a programmer wanted additional features.
It is hard to discuss the topic with you, as you do not have any experience with any IDE like Eclipse (sorry, but Scite is a simple text editor with syntax highlighting, but no way it is IDE). Adding support for a language like MQL into IDE would be quite expensive project, consuming multiple man-years.
You should try SciTE. It's pretty good for a text editor.
I also use VIM sometimes. It was pretty easy to create a .vim file for syntax highlighting. VIM is way more powerful as an editor, but I've gotten used to SciTE.
Do you still use SciTe? I doubt, as it has not much sense. I had been using SciTe extensively until 2014, and the difference between Metaeditor and Scite was rather cosmetic. Both were simple text editors with a few added features. However MQL4 implemented OOP in 2014 and the SciTe project for MQL died with lack of the OOP syntax support. Moreover, every such a project needs sustained maintenance, which was also problem with MQL for SciTe.