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

 
Georgiy Merts:

You have been told many times that your code is not easy to understand. Even for those who have a lot of experience. Making use of all the features is even harder (just because a bunch of stuff is available anywhere through the global scope). People with little knowledge of programming will not be able to do this.

What does this have to do with my code?

The public doesn't seem to "get it" at all. You should give me an example.

Okay. I will make a simple window engine and provide it with connection file and instructions.

Those who are interested will connect the test Expert Advisor to the engine.

After that, let's continue to communicate on another level of understanding.

 
Реter Konow:

There is manual trading. There is algorithmic trading. There is almost no semi-automatic trading.

If we create semi-automatic trading it will belong to us. That is it will belong to the niche of algotrading.

If semi-automatic trading will be created by some company for users trading manually on some platform, then the transition from manual trading to semi-automatic trading will be performed there.

In short, the task is to interest manual traders around the world in semi-automatic trading.

And for all of us to make money from it.

So your GUI is for developers, right?
 
Реter Konow:

Apparently, the public doesn't "get it" at all. You should give us an example.

this is page 30.

maybe by page 100 you'll start to get constructive.)

 

Here is the engine carrying the simplest GUI, the test EA file and the connection files.

1. Place External Connection and Connection properties files in the inclusion folder. PlaceTestApp v1.0.mq4 file in the Experts folder.

2. Place the engine in the indicators folder.

3. open the TestAppv1.0.mq4 file.

Open the External Connection file.

5. Put the plug-in on the chart.

6. Compile and save the test EA. Then also apply it to the chart.

//----------------------------------------------

A window with a large button will appear. If you press it, the alert will appear.

The Alert is located in the External Connection file. You can change the text inside it. User function can be called on push/push events.

//=====================================================================================================================
//WINDOW:   Simple button | element: BUTTON  | name: Hello world!  |  Location: Window's Main Frame
//=====================================================================================================================
case BUTTON3___Hello_world_:
               //------------------------------------------------------------------------------------------------------
               //What to do when button pressed or released?
               //------------------------------------------------------------------------------------------------------
               switch((int)action)
               {
                case pressed:  Alert("Button pressed!");   break;  <------ Здесь можно установить любой польз.код, который сработает на событии нажатия.
  
                case released: Alert("Button released!");  break;  <------ Здесь можно установить любой польз.код, который сработает на событии отжатия.
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  
   }

Connection properties file cannot be modified. It is not necessary to open it.

 

A window like this should appear.

The buttons on the taskbar have no function and are merely decorative.

There is also a context menu window. It opens with a double click. This will open a window with a button.

A test advisor symbolizes a custom application. The engine is a pluggable GUI.

 

This one is called "an easy way to add a ready-made gui to your EA":

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

   //******************************************************************************************************
   //------------------------------------------------------------------------------------
   if(id == CHARTEVENT_CUSTOM + DRIVE_IS_READY)EventChartCustom(0, INIT_GUI,   0,0,NULL);
   //------------------------------------------------------------------------------------
   if(id == CHARTEVENT_CUSTOM + SYNC_P_CORE)
     {
      
      P_CORE[lparam][_NEW_VALUE]      = sparam;
      P_CORE[lparam][_LAST_VALUE]     = P_CORE[lparam][_CURRENT_VALUE];
      P_CORE[lparam][_CURRENT_VALUE]  = sparam;
      //------------------------------------ 
      On_Gui_Event(lparam,sparam);
      //------------------------------------
     } 
   //******************************************************************************************************
}

====

Generally, it is not a problem to separate gui from Expert Advisor. But if you want to do it, you can make it absolutely normal - in OnChartEvent() only custom events are caught and nothing else. In other words, all these one hundred file strings are unnecessary. And by the way, this is very indirectly related to gui, it's more about the capabilities of the terminal. And the gui is not shown in such a way. It is not shown at all how it is created.

 
Dmitry Fedoseev:

This one is called "an easy way to add a ready-made gui to your EA":

====

Generally, it is not a problem to separate gui from Expert Advisor. But if you are going to do it, you might as well make it completely normal - OnChartEvent() should catch only custom events and nothing else.

You know, I'm amazed. It's like a kindergarten. I'm speaking about an opportunity to conquer the field of manual trading and I'm offering to use a tool created for this purpose while the audience wants to prove to me that I'm a bad programmer with bad graphics and poor solutions.

Seems like adults, but the understanding is not adult at all.

Set it up according to the instructions and try it out. Then it can all be extended and GUIs and functionality can be added.

 
Dmitry Fedoseev:

... So you don't need all those hundred rope files.

So, without knowing anything about the technology and without having tried it, you immediately declare what is needed and what is not needed... Clever.

 
Dmitry Fedoseev:

... And by the way, this is very indirectly related to gui, it's more about the terminal's capabilities. And the gui is not really shown that way. It's not shown at all how it's created.

GUI is created in my constructor. I wanted to show how it is connected and interacts with the Expert Advisor.

 
Реter Konow:

You know, I'm amazed. It's like a child's garden. I am talking about the possibility of conquering the field of manual trading and offering to use the tool created for this purpose, while the public pursues the aim of proving to me that I am a bad programmer and have bad graphics and bad solutions.

Seems like adults, but the understanding is not adult at all.

Set it up according to the instructions and try it out. Then it can all be expanded and GUI and functionality can be added.

That's the thing, it's kindergarten. You won't catch a single fish with this bait.

And what about your programming. Conclude yourself - still trying to prove that OOP sucks and my arrays are the avant-garde of the world... who would talk about kindergarten here.

Anyway, no miracle has happened yet.

Reason: