Discussion of article "Graphical Interfaces X: Sorting, rebuilding the table and controls in the cells (build 11)" - page 10

 

Hi,

your table project is really interesting and an example of good OOP coding.

May I ask whether you will be willing to think about an - I hope for other too - a very helpful add-on for complicated multi-symbol EAs?

Imagine an EA that trades many symbols with a lot of indicators with - for each symbol - an individual indicator setup of parameters (simple e.g.):

input string Sym1 = "EURUSD";

input int     Sym1MACDema1 = 12;

input int     Sym1MACDema2 = 26;

input int     Sym1MACDsma3 = 9

input ENUM_APPLIED_PRICE Sym1MACDprc =PRICE_CLOSE;

input string Sym2 = "GBPUSD";

input int     Sym2MACDema1 = 11;

input int     Sym2MACDema2 = 25;

input int     Sym2MACDsma3 = 10

input ENUM_APPLIED_PRICE  Sym2MACDprc =PRICE_CLOSE;

...

This would be a lot easier to handle for the user if this setup is presented as a table instead of a long list of parameters.

Especially if you enable your app to manage the StartegyTester by that csv-file. I think one has to manage the EA in the StrategyTester by the csv-file in the OnInit()-function.

For this one could add what the StratTester offers: defining a range. from, to, step.

But there the problem could be that in case of the Genetic Algorithm if OnInit() returns INIT_PARAMETERS_INCORRECT or INIT_FAILED the genetic algorithm counts this as a valid pass which will reduce the amount of really passed test runs and that reduces the validity if the final outcome.

I realized this problem with mt4 and I wrote this to the Service Desk - but I have no idea whether they have solved this or not.


Anyway good work - keep on :)




 
Carl Schreiber:

...

Thanks for the feedback and suggestion! I'll think about how this can be realized.
 

Hello, How can I programmatically move the main form or dialog to a specific location.

For example I would like to move the dialog to the left upper corner when the form title is clicked.

 

Tol, I've noticed strange things when resizing columns - the text is incorrectly cropped. I also accidentally discovered that the column size changes constantly when holding down the Ctrl key.


 
Artyom Trishkin:

1. Tol, I noticed strange things when changing column sizes - the text is incorrectly cropped.

2. And I also accidentally discovered a constant change of column size when holding down the Ctrl key.

1. Tried to test with different modes of text alignment in columns, but failed to reproduce.

2. Played with the Ctrl key, but it is not clear why this behaviour. This key is not defined in the table code.

 

Hi!

This is a great library!

Do you still support MT4?

Having both MT4 and MT5 support would be a great way to be able to have a smooth transition from MT4 to MT5 when it is time for that.

 

Hello,


i downloaded the library in this article, i was modifying thing to learn the library.  I have a simple question.


If i don't create menus, like in the code i modified below, i can't sort the table and single click on checkbox, why is this happening? @Anatoli Kazharski


//+------------------------------------------------------------------+
//| Creates a trading panel                                          |
//+------------------------------------------------------------------+
bool CProgram::CreateExpertPanel(void)
  {
//--- Creating form 1 for controls
   if(!CreateWindow1("EXPERT PANEL"))
      return(false);
/*/--- Creating controls:
//    Main menu
   if(!CreateMenuBar(1,20))
      return(false);
//--- Context menus
   if(!CreateMBContextMenu1())
      return(false);
   if(!CreateMBContextMenu2())
      return(false);
   if(!CreateMBContextMenu3())
      return(false);
   if(!CreateMBContextMenu4())
      return(false);*/
//--- Creating the status bar
   if(!CreateStatusBar(1,25))
      return(false);
//--- Buttons
   if(!CreateSimpleButton1(7,50,"ADD COLUMN"))
      return(false);
   if(!CreateSimpleButton2(7,75,"DELETE COLUMN"))
      return(false);
   if(!CreateSimpleButton3(180,50,"ADD ROW"))
      return(false);
   if(!CreateSimpleButton4(180,75,"DELETE ROW"))
      return(false);
   if(!CreateSimpleButton5(353,50,"REBUILD TABLE"))
      return(false);
   if(!CreateSimpleButton6(353,75,"CLEAR TABLE"))
      return(false);
//--- Edits
   if(!CreateSpinEdit1(114,52,":"))
      return(false);
   if(!CreateSpinEdit2(114,77,":"))
      return(false);
   if(!CreateSpinEdit3(287,52,":"))
      return(false);
   if(!CreateSpinEdit4(287,77,":"))
      return(false);
//--- Create rendered table
   if(!CreateCanvasTable(1,103)) // 103 | 42
      return(false);
//--- Redrawing of the chart
   m_chart.Redraw();
   return(true);
  }
 
Hello, can you tell me how to update a table if it has dynamic data https://www.mql5.com/ru/forum/165152/page10#comment_7488387
 
Juer:
Hello, can you tell me how to update a table if it has dynamic data https://www.mql5.com/ru/forum/165152/page10#comment_7488387

Look here: GUIs X: Updates for a drawn table and code optimisation (build 10)