Why should I choose .NET as a development environment?
Here are some reasons why choose to make an expert advisor using Microsoft .NET environment rather than MQL environment:
-
Use of consolidated and best Integrated Development Environment (IDE) “Microsoft Visual Studio”. For more info click here. Besides have the possibility to choose among other IDEs: Visual Studio Express, Xamarin MonoDevelop or SharpDevelop.
-
Programmer is not forced to use a single development environment
-
Debug your Robots, Indicators and scripts in Visual Studio, with all its advantages:
-
Step by step debugging
-
Use of breakpoints. Step in. Step out.
-
Stop/pause execution dynamically at any time
-
Run to cursor feature
-
Watch/evaluate any variable. Execute statements at any time
-
Use of Rewind of “Set Next Statement” features
-
Use all the advantages of programming in managed code
-
Enhanced Safety and Security, code safety verification
-
User-Defined Types and Aggregates, Object Oriented programming
-
Better Performance
-
Language Richness
-
Extensibility
-
Leverage Existing Skills
-
Richer developer experience
-
Stability and reliability
-
Security
-
Interoperability
-
Language independence
-
Use of .NET intrinsic features such as: multi-threading programming, access to the Windows API, access to all .NET Framework Libraries (FCL), use of Windows Communication Foundation, Windows Presentation Foundation
-
Use the advantages of .NET memory management, garbage collector and exception handling. No need to manually free all allocated data
-
Huge amount of finished and reliable third party libraries available to use directly from your expert advisor. No limits here: statistics, mathematics, web scrapping, database access, artificial intelligence, algorithms, cryptography, graphic libraries and a long etc. Either free or commercial libraries which are not available to use under the Meta Trader environment.
-
Avoid limitations of MQL development environment: Meta Trader chose to create his own programming language instead of using a generic one. Why? For the company’s (MetaTrader) benefit instead of the programmer’s benefit. What are the reasons they made a “new” programming language (script) instead of using a generic one?
-
Have full control of what traders are programming. Brokers and Metatrader can see every line of code of the trader robots, see if it’s good or bad and worth using for themselves without any notification or reward to the programmer.
-
The possibility (and in fact they did) to make a store (market) (https://www.mql5.com/en/market) for the robots and scripts made in MQL. Having full control on the store allows Meta Trader to get commission on every program sell.
-
Is there any advantage a programmer would have of using MQL instead of a .NET generic programming language? None we could thing about. MQL never become a Domain Specific Language because there is nothing that would have facilitated the work of the trader-programmer which doesn't exist in other general purpose programming language. The syntax and semantics of the language is very much based on C, and all features are implemented in the form of global functions.