Discussion of article "Graphical Interfaces X: Sorting, rebuilding the table and controls in the cells (build 11)"
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 :)
...
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.
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); }
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
New article Graphical Interfaces X: Sorting, rebuilding the table and controls in the cells (build 11) has been published:
We continue to add new features to the rendered table: data sorting, managing the number of columns and rows, setting the table cell types to place controls into them.
In the end, everything works like this:
Fig. 3. Demonstration of interaction with controls in the table cells.
Author: Anatoli Kazharski