What would it take to get everyone to finally switch to MT5? (collecting opinions) - page 35

 
Artyom Trishkin:

In what area is MT4 superior to MT5?

In all of them.)) I already gave you an example: my old car is superior to all the new ones, it has all the same stuff and costs like a bicycle.) And you don't need an automatic box for nothing.

 
Makar Anoshin:

At least it doesn't glitch on older PCs and laptops at startup. MT5 is extremely uncomfortable in this respect... I'm not talking about optimization and working with Expert Advisors and indicators. Everything is more complicated there... So, in these conditions you involuntarily choose what is easier... (MT4)

What do you think about it?

Forum on trading, automated trading systems and strategy testing

Does it make sense to switch from MT4 to MT5? Why should you switch to MT5?

Renat Fatkhullin, 2019.02.08 23:07

I want to bring you closer to reality given the discussions of the thread What should be done to make everyone finally switch to MT5? (collecting opinions):

  1. MetaTrader 5 is faster in trading

    The architecture of 5 is an order of magnitude more efficient than 4. All processes are re-engineered to allow trading with minimal delays.

    With (or without) asynchronous operations you can achieve a maximum of several thousand trades per second. Everything is built for speed, including the prioritization of trades.

    It's not even close to be done in 4.

  2. In MetaTrader 5 robots run up to 20 times faster

    This is because 5 uses a C++ level compiler that makes the code extremely efficient. F4 uses the old runtime system without code optimisation.

    Faster speed means reduced latency and improved execution quality.

  3. In MetaTrader 5 you can handle huge amounts of data

    Those who are engaged in deep development know the size of the data stored in the directories of the five. There are often tens of gigabytes of historical data, including the full tick data.

    Five's storing and displaying full tick data is a non-excludable feature. Do not make a mistake in thinking that because the tick data is not shown on the chart, it means that it does not exist.

    Here is a simple code run on a real account at Otkritie broker and the RTS Splice symbol, which is a glue of all the RTS index futures contracts over many years:
    void OnStart()
      {
       MqlTick ticks[];
       int     records=CopyTicks(Symbol(),ticks,COPY_TICKS_ALL,0,1000000000);
    //---
       Print(Symbol()," ticks ",records);   
      }
    
    it produces 472 million ticks:
    RTS Splice ticks 472 111 564
    
    Yes, 472 million ticks in one query. Do what you want with them afterwards.

    It gives you absolute control over the data. You can get billions of ticks too. Just manage to kick the broker to take care of the historical data. It is HIS DIRECT WORK AND MANDATE.

    Two lines of code and full data is in your hands. Who's talking about the complexity of MQL5?

    There's no such thing in 4.

  4. MetaTrader 5 has a very precise multisymbol tester with millisecond accuracy

    This allows you to race very complex strategies and have more guarantee that your strategy is not self-defeating.

    You write direct code and the tester takes care of all the complexity of modelling all the variety of the market.

    Periodically traders brag that they can write their simple tester many times faster, but it's all at the level of a cheap run of the cycle for bars. Not to mention the complete exclusion of the entire variety of market conditions, instruments and margin requirements.

    And we have not only the most detailed modelling, including precise conversion of all profits to the balance sheet currency, but also the collection of all statistical information along with the history of floating equity/equity changes.

    This is not even close to what we have in MetaTrader 4.

  5. In the MetaTrader 5 tester there is an amazing function of delayed execution accounting

    The mode of trading with a given lag allows us to fully disqualify most scalper strategies that are fabulous in the tester, but disastrous in the real trading environment.



    Even adding 50-100 ms of delay is enough to dramatically degrade many strategies.

    The power of this function is based on accurate simulation of the market environment, when even Sleep(ms) in the tester works out as in reality. We are able to parallelize the development of the market by creating delays for the Expert Advisor itself, which allows it to perform real execution qualitatively.

    Just play with your network delay and increase it a couple of times to test the robustness of your robot. Check the quality of requotes and bounces at the same time.

    Do you have it in 4? No, of course not.

  6. Five's 64-bit system allows you to operate with a huge amount of charts and deep history.

    This is very important when you're doing complex analysis or scanning multiple symbols and timeframes. You can hold and operate thousands of charts (symbol + period) and be sure they are available instantly.

    Some traders say that they don't need much and that the paltry data of the fours is enough for them. But in reality the stakes in data analysis are increasing all the time.

    My opinion is that the amount of data in a five is still not enough. We are constantly working to improve the efficiency and speed of data delivery. We are constantly tuning performance so that huge data is always at hand and quickly available from MQL5.

  7. Use of multithreaded tester, calculation and cloud servers

    The main cost of strategy development is the optimization of strategies. This is the area where we have invested a lot.

    You can use all your local cores, build a calculation farm in your local area or connect the MQL5 Cloud Network. This allows you to speed up optimization by tens or hundreds of times.


  8. MetaTrader 5 has stacks and execution on a multitude of gateways

    Traders don't know it very well, but MetaTrader 5 has a powerful aggregation system of different liquidity providers and a flexible system of transactions transfer to different providers.

    ECN, liquidity aggregation and matching engine allows efficient execution of best price execution strategies and support multiple markets from a single account.

  9. Five has no data volume limitation

    You can request huge volumes of historical chart data (limit it to 1970) and deal history.

    Have a million trades in your account history? Not a problem. Just add more memory.

  10. A totally different chart architect and object management

    You can manage your chart much more efficiently, and disable the chart altogether for the sake of your builds.

    Use the window the way you want with graphical objects or kanvas.

  11. Huge Standard Library

    Here is the standard library of MQL5. There is maths at the level of R language, data collections, OpenCL, graphics etc.

    Most traders are not aware that we have implemented hundreds of mathematical and statistical functions from the R package in the source code. They allow you to do a lot of complex maths many times faster (5 to 50 times faster) than what is available in R.

    Yes, programs written in MQL5 source code blow the speed of C++ implementation of R by up to 50 times.

  12. Custom symbols, custom stacks, synthetic symbols and simple data import

    In Five, you can easily create your own symbols, including price stacks. Create them from MQL5 code and feed them into rltime from MQL5 code. You can build synthetic symbols using formulas.

    In other words, MetaTrader 5 has long been an independent analytical platform where you can analyse any other data. Any MQL5 program can handle datafeeds.

  13. And a lot of other repeatedly described features.



One has to realise that:

  • The technology is constantly evolving, and those who stay with the old mantra of sufficiency are left behind.

  • Yes, it's a technology race. And first of all for traders

  • The MQL4 and MQL5 languages are absolutely the same in complexity

    It's really funny to listen to statements about the simplicity of MQL4, when the complexity of MQL5 is exactly the same. THE COMPLEXITY OF MQL5 IS EXACTLY THE SAME.

    Or we must admit that a couple of additional parameters is a universal problem for a programmer. No, of course not. This is a beautiful legend for those who are stomping on the old ones.

  • I've said it many times and I will say it again - programs are written by professional developers

    Less than 2% of users use the code editor. The majority of traders download off-the-shelf stuff from the Market and kodobase without analyzing the code.

    The stories about simple MQL4 are exceptionally ridiculous. Discussions about OOP are out of bounds at all, especially since it has been in MQL4 for a long time. Any programmer nowadays must know OOP by default.

    Only a sufficiently skilled programmer can create a program of acceptable quality. Don't be fooled by the possibility of "writing acceptable code without programming knowledge".

    I have spent 28 years programming on a daily basis and know that my assertion is reality.

  • Enough of our technology partners and third party developers are directly interested in keeping MetaTrader 4

    Because this platform has so many technology flaws, they have saddled themselves with the add-ons/holes niche and are directly feeding on it.

    Yes, they spend a fair amount of resources convincing brokers and traders that "MetaTrader 4 is better". Because their business will collapse. And here they sit under the names of independent traders, working in opposition.

    We do not have the ability to fight this aggressively, although we turn off especially zealous and know very well what and how they tell brokers and traders.

    For example, remember the outcry that antivirus vendors have been raising for 10 years when Microsoft made their platform more secure and took away their security features. Just righteous anger and a lot of PR.

  • Progress is unstoppable.

 
Artyom Trishkin:

What do you think of this?


It's all good, of course, but in practice, alas... for some reason everything runs slower from startup, quotes loading and thorough testing of MQL programs on historical data.

For some unthinkable reason, in spite of advantages mentioned above, everything runs and tests faster on my computer and VPS server than on Mt4. And buying a modern gaming computer specifically for FOREX trading, well, where is that convenient and practical?

 
Artyom Trishkin:

What do you think about this?


I think it's a pittance if optimization is almost 4 times slower, and if you have only eX5 files then they probably hang, without any possibility to write code to interrupt optimization pass!!!

The same problem with rendering pending orders, and if the strategy is based on them, then kaput...

 
Renat Akhtyamov:

it depends on the strategy

It's not just the speed that matters, but also the price at the time of the order to open the trade

A "smart" brokerage house will never let you get ahead of the game...

 
Makar Anoshin:

It's all good, of course, but in practice, alas... for some reason everything runs slower from launching, loading quotes and thorough testing of MQL programs on historical data.

For some unthinkable reason and contrary to the above benefits, everything runs and tests faster in MT4 (personally on my computer and VPS). And to buy specially for trading on FOREX a modern gaming computer, well, where is it convenient and practical?

I work on a simple laptop. It can not play any games in normal quality. And I only have 5GB of memory. And I have enough for daily work on my projects in five. And somehow it doesn't slow down like you claim. Even making an indicator which takes data on all symbols of market review and on all timeframes of each symbol, I wait only on first run. Seconds for five seconds to swap out the missing history by symbol and timeframe. After that, everything works quickly and without delay.

And let me tell you a secret, if you start writing programs in mql4 correctly, you'll have almost as much code as in mql5. The guys just got used to the idea that once you get the data, you can immediately shovel it into calculations, forgetting to completely check: what have I got there? And if you got something wrong, you need to process such a result, not put it into calculations. It is from this careless approach to programming that people start asking on all forums how to update the indicator permanently, because it always shows some strange things, and only manually renewing the chart or recompiling the indicator code return its readings to an acceptable form. Have you seen such a request for such a crutch? No? Well, I have many times. But as soon as you look at the code, add all the necessary checks, the mql4-code miraculously becomes as big as mql5-code, and it starts working without crashing and crutches with forced update.

So mostly all these moans about "horrible mql5" are just moans of non-programmers who in their spare time created their own little tool from scattered pieces collected over the network. And as soon as these people were prevented from quietly circulating their work to the masses, they cried - oh, howoo complicated everything is. It's not complicated. Those who originally wrote correctly on the four, they did not notice the difference. Just the extra features.

So I'm all for it. Nothing to fill the space with non-working code.

 
xxz:

The problem is that if optimization is almost 4 times slower, and if you have only eX5 files then they probably hang, without any possibility to write code to interrupt optimization pass!!!

The same problem with rendering pending orders, and if the strategy is based on them, then kaput...

Proofs. Comparative proof please provide here. The same cross-platform code and its optimization results. The same parameters with the same settings - the optimization results on four, and the optimization results on five - the time spent on all optimization passes. Without all this, your words are just an outline.

 
Artyom Trishkin:

I work on a simple laptop. It can't play any games in normal quality. And there's only 5GB of memory. And it's enough for me to work on my projects in 5 every day. And somehow it doesn't slow down like you claim. Even making an indicator which takes data on all symbols of market review and on all timeframes of each symbol, I wait only on first run. Seconds for five seconds to swap out the missing history by symbol and timeframe. After that, everything works quickly and without delay.

And let me tell you a secret, if you start writing programs in mql4 correctly, you'll have almost as much code as in mql5. The guys just got used to the idea that once you get the data, you can immediately shovel it into calculations, forgetting to completely check: what have I got there? And if they get something wrong, they need to process such a result, not put it into calculations. It is from this careless approach to programming that people start asking on all forums how to update the indicator permanently, because it always shows some strange things, and only manually renewing the chart or recompiling the indicator code return its readings to an acceptable form. Have you seen such a request for such a crutch? No? Well, I have many times. But as soon as you look at the code, add all the necessary checks, the mql4-code miraculously becomes as big as mql5-code, and it starts working without crashing and crutches with forced refreshing.

So mostly all these moans about "horrible mql5" are just moans of non-programmers who in their spare time created their own little tool from scattered pieces collected over the network. And as soon as these people were prevented from quietly circulating their work to the masses, they cried - oh, howoo complicated everything is. It's not complicated. Those who originally wrote correctly on the four, they did not notice the difference. Just the extra features.

So I'm all for it. Nothing to fill space with non-working code.

We have understood that the main thing is not to stress the lack of brevity in language as in mql4.

DayOfWeek_p=DayOfWeek();

MqlDateTime str1;
TimeToStruct(TimeCurrent(),str1);
DayOfWeek_p=str1.day_of_week;
 
Artyom Trishkin:

...

So I'm all for it. There's nothing to fill space with non-working code.


Exactly! Remake yourself - become a professional programmer! If you can't become a professional - get out of here!))

ZS. I mean user friendliness. It's off the charts.))

 
Реter Konow:


Exactly! Remake yourself - become a professional programmer! If you can't become a professional - get out of here altogether!)

Are you talking to me? Thanks, that's funny.

Reason: