My approach. The core is the engine. - page 42

 
Maxim Kuznetsov:

The import of GUI from the EA to the indicator is a questionable thing (just the architecture of MT - indicators work in the interface thread and may slow down EVERYTHING. To avoid braking of indicators in MT, even part of functions is prohibited to them)

not about that.

If a miserable user took a couple of (third-party) indicators and an EA and they are all GUI with the kernel-engine out of the way. What will happen?

PS/ Peter, you have already found at least free hosting and put there your product. If code-base is not good. Publishing alpha/beta/preview versions is a couple of hours. Can't you find the time?

Well, first of all, I'm going to do it. And I will.

I have been accused here in product promotion, so in fact, this is the most inept promotion that you can think of. Because if I'm going to start making money, I'm going to be the last one. When everyone will be using the free version.


As for the indicators, you're right. The graphics on them are slow. Especially the scrolling. I have already made some experiments. The same code in Expert Advisor (image scrolling), does not cause slowdowns, and in the indicator - slows down.

Therefore, the engine can be made as Expert Advisor that will work on any free chart, and the window can be moved between charts using special buttons.

 
Реter Konow:

Tabs switch the entire kanvas. The second and third option are designed to control the element phenomenon without switching kanvases. That is, the same kanvas is redrawn and each time with a different set of elements.

About the connection, I don't understand your idea. Why should it not be connected to the EA? How can you synchronize parameters?

The GUI is either completely in the Expert Advisor or it is connected from outside. In the case of connecting externally, you need to set the connection properties and synchronize the values of the parameters on both sides.

What is called synchronization of parameters here? What properties can the connection have here?

 
Реter Konow:

When everyone will use the free version.

alas, they will not, your way only conveyor belt, the output of which is a lot of products with graphics, at the head and in the process, only you)))

It seems to have already been discussed that your approach is not understood by those who know how to program and those who can't program without your help, you have 2 options:

1. Marketplace

2. Freelance

SZZ: I repeat my opinion

a) for trading, the basic elements of graphics from MT delivery or you can use examples from KB - all this is written in classic programming languages and does not require additional time for experimentation and debugging, you just take it and use it. All of this can be posted in the Marketplace

b) to write an analytical platform for personal use, it is better to find ready-made solutions and connect them to MT (.dll, Pythons, R, Matlab....) , in this case, it is better to use third-party graphics, so MT will only work with the server

 
Dmitry Fedoseev:

What is called parameter synchronisation here? What properties can the connection have here?

Controls have parameters.

For example Checkbox. Has a parameter that has two possible values: 1 and 0.

If a user clicks on a checkbox and puts a tick, on the engine side, in the array of parameters of the controls, 1 is put.

Next, a message is sent to the user application with the checkbox parameter number and value. After that, the new value is written to the analog of the array of parameters in the application and the On_Gui_Event() function is called.

This is how the values are synchronized between the engine and the user application.


Connection properties:

Keywords, wrapper functions that set values to elements from the EA, wrapper functions that open/close usable windows...

Initialization of a copy of the array of parameters in the Expert Advisor.

That's about it.

 
Igor Makanu:

alas, they will not, your way only a conveyor belt with a lot of products with graphics, at the head and in the process, only you)))

I think we've already discussed (1)your approach is incomprehensible to those who can program and those who can't program without your help, you have two choices:

1. The Marketplace

2. Freelance

SZZ: I repeat my opinion

a) for trading, the basic elements of graphics from MT delivery or you can use examples from KB - all this is written in classic programming languages and does not require additional time for experimentation and debugging, you just take it and use it. All of this can be posted in the Marketplace

b) to write an analytical platform for personal use, it is better to find ready-made solutions and connect them to MT (.dll, Pythons, R, Matlab....) , (2) in this case, it is better to use third-party graphics, so that MT deals only with the server

1) Those who know how to program will not need to learn my approach. Only use the constructor and connect the created GUI to their application.

2. this is for professionals only. I have already shown that using third party graphics is much more difficult. It is a crutch requiring a high level of training. Against the lightness of my builder, it becomes meaningless.

All in all, your solution is not for the masses. Mine is for the masses.

 
Igor Makanu:

It seems to have already been discussed that your approach is incomprehensible to those who know how to program, and those who can't program without your help, you have 2 ways:

Graphics constructor at output creates an engine carrying user GUI + connection files.

Next, the user connects the engine to his application (as described above), and fills the connection file.

At this point, that's it.

No one has to learn my approach. Only master the easy language of the builder.

 
Реter Konow:

Controls have parameters.

For example Checkbox. Has a parameter that has two possible values: 1 and 0.

If the user clicks on the checkbox and ticks it, the engine side puts 1 in the array of control parameters.

Next, a message is sent to the user application with the checkbox parameter number and value. After that, the new value is written to the analog of the array parameters in the application and the On_Gui_Event() function is called.

This is how the values are synchronized between the engine and the user application.


Connection properties:

Keywords, wrapper functions that set values to elements from the EA, wrapper functions that open/close usable windows...

Initialization of a copy of the array of parameters in the Expert Advisor.

That's about it.

In what arrays is it written? Into regular arrays? Restarted the terminal and everything was reset...

The user pressed a button or a checkbox - an event occurred and the Expert Advisor reacted to this event. What else is there to synchronize and why? In case of a separate restart of the Expert Advisor or indicator with a gui?

I am very curious how it will react on a restart of the terminal. Will the parameters set by the user be saved?

 
Dmitry Fedoseev:

In which arrays is it written? The normal arrays? I restarted the terminal and everything is reset...

The user pressed a button or a checkbox - an event occurred, the Expert Advisor reacted to this event. What else is there to synchronize and why? In case of a separate restart of the Expert Advisor or indicator with a gui?

I am very curious how it will react on a restart of the terminal. Will it save the parameters set by the user?

Terminal restarting leads to the restart of the Expert Advisor. Doesn't it?

Two arrays of type string (a universal type, suitable for storing any parameter values) are synchronized.

Elements in the engine represent values of their parameters.


For example, a table cell. Stores the last value passed to it in an array of parameter values.

This array stores the properties of the parameters.

Or slider parameter properties: Min value, max value, value step, current value.

When the user toggles an input box value with buttons (+/-), the value change is done in the engine and then passed to the EA.

That is, the Expert Advisor does not need to keep track of element value changes. It receives ready values and reacts to them.

 
Dmitry Fedoseev:

...

The user pressed a button or a checkbox - an event occurred, the Expert Advisor reacted to this event. What else is there to synchronize and why? In case of a separate restart of Expert Advisor or indicator with gui?

...

Where do you store the values of the elements?

Initially, the values of the elements can be set in the designer and they can also be set by the Expert Advisor on the Inite.

The engine is obliged to store the values of element parameters. Otherwise, it won't be able to process them when the user interacts with the elements.

That is, when the slider handle is moved, the value will not change on the engine side, and then, the user will have to keep track of the value himself.

There are a huge number of other nuances.

For example - synchronization of parameter values between elements. It is set on the designer level.

(Ask Oleg Papkov. I implemented synchronization of his elements. He changes position of the slider, and in the input fields in different windows the values change. And all this works at engine level).

Otherwise, all this has to be done by the user himself.

And this is not for masses.

 
Реter Konow:

(Ask Oleg Papkov. I have implemented synchronisation of his elements. He changes the slider position, and the input fields in different windows change values. And all this works at engine level).


Oh@@t ! Give me two...

I've never seen this before and here it is again :-)

It's the miracle of miracles - when you change one, you change the other.

At least think of what you're bragging about :-)

Reason: