Hello "bonechair",
You cannot access the "future" bars as that would be "impossible" in real live trading (unless you have a magic crystal ball).
So in the spirit of things, the code running in the strategy tester cannot access future data even though it technically exists since you are running a back test.
If the code did exist and you did use it, it would serve no purpose as the EA would not be able to run in real-time where no "future" data is available.
If however, you are trying write an EA for statistical analysis of data and outputting processed data and not actually place orders, then just let it advance a few bars and shift back the index point for the reference of the "now" and the "future" values. I hope you understand what I mean. for example, consider High[1] to be the "future" and High[2] to be the "now" and High[3] to be the "past" or something similar in that line of thought.
But, please remember, if it is for an EA that places orders and not statistical analysis, then there is no such thing as "future" bars.
No Im talking strategy tester on history not live trading, I have a different way that works but its too complicated to get the future bars in history.
Im looking for something more simpler with Ihighest
No Im talking strategy tester on history not live trading, I have a different way that works but its too complicated to get the future bars in history.
Im looking for something more simpler with Ihighest
I was also talking about the strategy tester. Remember that it was conceived as way of testing EA's as if they were live trading.
So, with that in mind, it would not make sense for it to get "future" data. To make it more clear - There is no "future" data!!!
Maybe you can describe in more detail or post a snippet of the code, so that we can better understand what it is you are trying to achieve.
Also, if you really need to access all the data, just read a "History File" (.hst) directly and process the data yourself in your own code.
Thanks for replying.
There is this codebase https://www.mql5.com/en/code/9395 for drawing future bars in your tester.
The coding is a bit overkill and wondering if there a two line solution for Ihighest function?
Thanks for replying.
There is this codebase https://www.mql5.com/en/code/9395 for drawing future bars in your tester.
The coding is a bit overkill and wondering if there a two line solution for Ihighest function?
Sorry, but that is not "future" bars. Your example on the code is exactly what I tried to explain, about how to "shift back the index point". That is why in the code, you referenced, the Author uses the iBarShift() function to get at the data .
In fact, the Author does exactly what you need by using the index shift (see the snippet of his code):
H=iHigh(NULL, pTF,iHighest( NULL ,pTF, MODE_HIGH, K, iB) )
However, as explained, it would only be a theoretical exercise, because once you started using the EA in a live way, that part of the code would not work. The Author himself, says it and I quote:
« It works only in a tester, in a mode of visualisation and on timeframe not less 5M. »
But, hey, if it works for you, who am I to say otherwise.
Good luck on your endeavour!
Ye I know that code is awesome but overkill for what I want to do is just get the highest and lowest for 40 bars and then draw lines for something I want to test out.
Ive just put together without the for loop. I was wondering about that Ibarshift and those calculations there made me confused
per = Time[0];
int pTF=PrevPer(Period());
int iB=iBarShift(NULL,pTF, per);
if(iB==0) return;
int K=MathRound(Period()/pTF);
iB=iB-K+1;
The Period division with PrevPer I dont understand that part. I thought you could just use -40 in Ihighest. It seems a long way to find that answer.
It seems a long way to find that answer.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi
Im trying to code something for strategy tester but want to get future bars highest
Past bars highest is High[iHighest(NULL,0,MODE_HIGH,40,0)];
But future Im not sure how to get it High[iHighest(NULL,0,MODE_HIGH,40,-40)]; That doesnt work.
Anybody know anything?