Structure rules. Learning how to structure programmes, exploring possibilities, errors, solutions, etc. - page 5

 
  1. All my projects start with an interface. A well-designed interface => optimum project structure.
  2. I develop the structure of data (variables) - performance depends on it.
  3. I ensure that each block works properly and only then optimize it.
  4. When the project is ready, it must be submitted for testing. Correct any bugs and "not convenient" found.
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных - Документация по MQL5
 
FAQ:
I read the ToR, and if a solution in the form of a structure does not come to mind - I do my work on other projects, usually I never start implementation on the first day. If the program is not an ICL or XML, then I read, calculate implementation variations, structure types, classes. When I have a general picture in mind, I start to cut blocks or write basic modules. If something does not work, I drop to the sofa with some tetris-like toy and play until I completely solve the problem, or until I get bored :)
That caught on : "......... if solution in form of structure does not come to mind by itself.........". Here I also associate formation of harmonious project structure in my head with an opportunity to start further work on the project. Until it is formed, I put off writing anything. It's usually too expensive to make structural changes to what has already been written. It's better to spend time on thinking through the basics at the beginning.
 

By the way about toys - just today somewhere in the news have read that Tetris and the like, improve cognitive ability - so I confirm, going through the options in the playing field brains paralelno as if in the subconscious work on other tasks.

SZS, like optimizing neuronics :)

DC2008:
  1. All my projects start with the interface. Well thought out interface => optimal project structure.
  2. I develop data structure (variables) - performance depends on it.
  3. I ensure that each block works properly and only then optimize it.
  4. When the project is ready, it must be submitted for testing. Fix bugs and "not convenient" found.

1. if there's a need in data transmission, i think about it first, data structure, protocol, format. if not, i think about the same order. if i'm talking about µl, almost all blocks have long been written and optimized, very rarely i have to write something separately, i usually do with add-ons over the existing functionality.

ZZZY. In principle, most of the time is spent on algorithm development.

 
FAQ:

By the way about toys - just today somewhere in the news have read that Tetris and the like, improve cognitive ability - so I confirm, going through the options in the playing field brains paralelno as if in the subconscious work on other tasks.

SZS, like optimizing neuronics :)

I always have Sapper in this capacity.)


 
FAQ:

By the way about toys - just today I read somewhere in the news that Tetris and similar, improve cognitive abilities - so I confirm, going over options in the playing field brains work in parallel as if in the subconscious also on other tasks.

...

This effect works only horizontally or in other positions remains? :)

My abstractions work better horizontally, though it's important not to fall into a slack and sweet sleep :)

 

To exchange ideas / learn from each other, I propose to take a more or less practical problem and restructure it together.

For example, at least outline the basic structure (or more accurately, variants of such structures) for such a problem:

There is an arbitrarily written Expert Advisor (for example, for testing a trading idea). Suppose that the idea in the Strategy Tester (at the client) shows promising results. Now we need to rewrite the Expert Advisor to make it more development-friendly. And in particular, to provide it with a graphical user control panel.

It is desirable either to make the panel switchable (for optimization in the tester), or to move the whole "non-graphical" realization of the EA into a pluggable file (.mqh), which may then be connected to the graphical interface without changes (to exclude) the differences in the operation of "tester" and "graphical" versions.

I would like to hear-read the considerations on the structuring of such a project. In particular, on the implementation of the event-driven control model in such a project. Suppose that the dual implementation (tester + panel) is a strict requirement of the customer (i.e. the project must be done in any way, you can only choose the method of implementation).

Shall we take a look at the task?

 

but for MT4 :)

ZS. In general, it's too small, let's have a more global problem.

 
FAQ:
but for MT4 :)
Well, it's going to be hard with the control panel there, and it's hard to get a handle on classes... )))
 
MetaDriver:
Well, it would be hard to cope with a control panel there. And the classes are not so easy to manage... )))

I, on the other hand, have everything for it :)))

ZS. It's just that I'll pass on the five. So without me. Better just a simple abstract algorithmic task.

 
FAQ:
But I have everything for that :)))

So tell me (in general) how do you plug these holes in 4. Is it all in DLL's? :)