MetaTrader 5 trading strategy tester ideology: agents

 

In MetaTrader 5, we provide the ability to create entire calculation farms to speed up calculations of trading strategies by the tester. They are intended for mass optimization calculations when hundreds of tasks can be run in parallel on remote computers. And you can install several agents on each computer according to the number of cores to maximize the use of resources.

By default, each terminal has local agents for the number of logical processor cores and can distribute tasks to other remote agents. It is very easy to install remote agents - just use the MetaTester.exe utility (one file, it does not need anything else) and install the agents as services according to the number of cores or run them individually. Each agent has a password for access, so that only authorized users can access it.

This is what testing an agent on a local kernel looks like. Not only status is shown, but also real CPU load.


Starting testing on a remote agent:

 
When will users be able to feel it?
 

I'm more used to looking like this:


CalcNet

|--Grom (localhost) - Intel Core i7

|--Core1

|--Core2

|--Core3

|--Core4

|--Slava (168.192.0.101) - Intel Core2

|--Core1

|--Core2

|--Pakemon (168.192.0.121) - Intel Core i7

|--Core1

|--Core2

|--Core3

|--Core4


Of course, the way it looks convenient to me is not necessarily convenient to everyone.


But this remout tree has an advantage - you can quickly disable remouts, and enable them completely, not by cores. Of course, before turning off a remout, the old state is saved, so that only the cores from the last session are used when switching on. Also, individual nodes can be grouped together and the groups can be included in the calculation with a single click.

There is no separate Local category, all nodes, including the local node, are treated as equal network nodes.

 
HideYourRichess:

Well, there is no separate Local category, all computers, including Local, are considered equal corners of the network.

Initially, we wanted to separate agents on the LAN and agents on the WAN, but then we abandoned this division, considering it pointless. We combined them into the Remote category, and renamed the MyComputer category to Local.
 

Remote agents cannot be separated by kernel - each is configured to a separate agent, but can be logically grouped and sorted in a list by matching IP address.

When editing a particular agent, we can suggest disabling/enabling related agents on the same IP address.

The main idea of building farms is that you don't need to configure them. That is, once a network is up and everything else will work automatically. A person doesn't have to run around and turn on/off the agents. Whoever responds, that's who will be used. The whole system works in automatic resource cloud mode. Someone interrupts his work and his task is transferred to the next available agent.


By the way, in Active Directory, if you have administrator rights, you will be able to put agents on remote computers in a few clicks from one place (client terminal). In other words, you can turn the company's local network into a huge computing network and use all computing resources 100%.


As soon as the first version is ready, we will let you test it.

 

Renat:

The whole system works in automatic resource cloud mode.

Ooh! it's a bubli-GUM!

(GUM is a huge department stores' across from the Kremlin.

 
stringo:
Initially, we wanted to separate agents on the LAN and agents on the WAN, but then we abandoned this division as pointless. We merged them into the Remote category, and renamed the MyComputer category to Local.
It makes sense, but the possibility to connect the distribution of calculations to the wide area network should be left somewhere in the depth of the program. In case the topic might "catch on".
 
It is probably a good idea to consider limiting the computational resources of the agents (CPU load, network load, etc.). So that office workers of large (and not so large) companies are not greatly affected by a huge MT5 (based on their local networks) organised (by the admin, for example)...
 
Renat:

Remote agents cannot be separated by kernel - each is configured as a separate agent, but can be logically grouped and sorted in a list by matching IP address.

When editing a particular agent, we can suggest disabling/enabling related agents on the same IP address.

The main idea of building farms is that you don't need to configure them. That is, once a network is up and everything else will work automatically. A person doesn't have to run around and turn on/off the agents. Whoever responds, that's who will be used. The whole system works in automatic resource cloud mode. Someone will interrupt their work and their task will be transferred to the next available agent.

And
By the way, in Active Directory, if you have administrator rights, it will be possible to put agents on remote computers in a couple of clicks from one place (client terminal). In other words, you can turn company's local network into huge computing network in a minute and use all the computing resources 100%.


When the first version is ready, we will give you the opportunity to test it.


I want to thank MetaTrader 5 developers for developing the platform in the right direction (frankly, I did not expect the MetaTrader 5 to have a tester with distributed computing capabilities). Please advise on the timing. When will the tester be available? And, in fact, when should we expect the launch of Metatrader 5 in production?

 
Renat:

Remote agents cannot be separated by kernel - each agent is configured as a separate agent, but can be logically grouped and sorted in a list based on IP address matching.

When editing a particular agent, we can suggest disabling/enabling related agents on the same IP address.

The main idea of building farms is that you don't need to configure them. That is, once a network is up and everything else will work automatically. A person doesn't have to run around and turn on/off the agents. Whoever responds, that's who will be used. The whole system works in automatic resource cloud mode. Someone interrupts his work and his task is transferred to the next available agent.


By the way, in Active Directory, if you have administrator rights, you will be able to put agents on remote computers in a few clicks from one place (client terminal). In other words, you can turn the company's local network into a huge computing network in a minute and use all computing resources 100%.

I agree with that, being able to automatically distribute the load based on whether the client is "live" or not is cool. But what I meant was a configuration that keeps it out of some temporarily disconnected parts of the network altogether. When there are several of them in one network, it is inevitable that there will be a conflict of resources. Sometimes we solve it in this administrative way. Like, today one counts on a cluster, the other one "rapes the accounting department", the third one rapes analysts, etc. Tomorrow everything changes. A serious problem, as it turns out, when one is not alone in the network.
 

One thing that confuses me about the LAN...

It's the use of firewalls and other 'closures'.
How's that going to go...