You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Optimise by bit fields, there will be no unnecessary passes in this variant.
For example:
and optimise in given parameters, for this example bp is optimised from 0 to 3
Only you forgot to write the verdict whether you can or cannot.
How can it be "easier"? :) The conditions for deleting an EA or for REASON_INITFAILED still have to be tracked. This is what looks like a hassle.
It turns out that, in principle, a working set of parameters yields zero results and is not involved in further selection.
In the absence of an elegant solution, you can use the 'easier' one first. If something better is found, it can always be replaced. :)
Not really, if you're talking about my torturous idea. With "working set of parameters" and first trpar2=false the pass will give quite working result. All other passes with the same "working set of parameters" and trpar2=false will immediately return zero, but your "working set of parameters" will take part in selection anyway. This is what you wanted, isn't it?
You can correct it a bit. The optimization parameters should be written in structures, and they (simple structures) should be treated as variables. The code should read
if(!trpar && Par1==Parold1 && Par2==Parold2) { Parold1=Par; Parold2=Par2 ; return(9) } Here Par and Parold are structures into which optimal parameters from other currency pairs are written. As many pairs as there are ifs, it doesn't look so ugly. Thank you.
Once again: hassle is not about which command to terminate the pass early - this is a rather primitive solution, whatever it may be. The bother is in keeping track of the conditions for completing the pass early. The fact that passage will be completed ahead of time with the help of your suggestion, "tracking unit" itself isn't less bothersome, and elegance of this unit is not increased in any way.
So what did you mean by that? That in the absence of an elegant solution, you should not use any at all? Even if there is one, but, as you put it, "painful"?
In short, let's move on. Otherwise it's more bothersome from flooding than from code. :)
You can correct it a bit. Optimisation parameters should be written to structures, and they (simple structures) should be treated as variables. The code should read
if(!trpar && Par1==Parold1 && Par2==Parold2) { Parold1=Par; Parold2=Par2 ; return(9) } Here Par and Parold are structures into which optimal parameters from other currency pairs are written.
You can correct it a bit. Optimisation parameters should be written to structures, and they (simple structures) should be treated as variables. The code should read
if(!trpar && Par1==Parold1 && Par2==Parold2) { Parold1=Par; Parold2=Par2 ; return(9) } Here Par and Parold are structures into which optimal parameters from other currency pairs are written. As many pairs as there are ifs, it doesn't look so ugly. Thank you.
There is one more variant (it slipped my mind).
You may have a look at the functions: OnTesterInit(), OnTesterPass(), OnTesterDeinit().
And FrameFirst (),FrameFilter (),FrameNext (),FrameInputs (),FrameAdd().
That's exactly what they're for. :)
That is, you can always request all parameters of any pass in the current optimization at any time.