Hi guys, I've been searching the forum and trying to pull apart scripts on the web. Documentation has only gotten me so far. I'm trying to get the current and previous position of M15, then zooming out to see what bar it resides inside of H1 and H4.
Live trading I believe this will either be 0 or 1, but for back testing the result will vary.
The results will be the same live or backtesting:
- The current M15 bar will always be within the current H1 / H4 bars.
- The previous M15 bar may be within the current or the previous H1 / H4 bar.
datetime server_time=TimeCurrent(); // Server Time
datetime local_time=TimeLocal(); // Local Machine Time
datetime NewTime = server_time - 960; // Server Time Minus 16 Minutes
// The following seems to be nearly correct
int shift_m1=iBarShift(Symbol(),PERIOD_M1, NewTime);
int shift_m15=iBarShift(Symbol(),PERIOD_M15, NewTime);
int shift_h1=iBarShift(Symbol(),PERIOD_H1, NewTime);
int shift_h4=iBarShift(Symbol(),PERIOD_H4, NewTime);
Subtracting 16 minutes from TimeCurrent() isn't a good option.
To get the current M15 bar's opening time, use:
To get the previous M15 bar's opening time, use:
-------
Please use the SRC button when you post your code - I've modified your post.
Thanks so much for your help. That makes a lot more sense to set the time before trying to find the bar.
Will be sure to use the SRC button next time, sorry, first post.
Thanks again.
Thanks so much for your help. That makes a lot more sense to set the time before trying to find the bar.
Will be sure to use the SRC button next time, sorry, first post.
Thanks again.
- 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 guys, I've been searching the forum and trying to pull apart scripts on the web. Documentation has only gotten me so far. I'm trying to get the current and previous position of M15, then zooming out to see what bar it resides inside of H1 and H4.
Live trading I believe this will either be 0 or 1, but for back testing the result will vary.
Could someone help me understand a couple of things:
//+----------------------------------------------------------------------------------------------------------------------------+//| 1. The following script does a close job, but it's a little janky. M1 and M5 don't seem to be correct
//+----------------------------------------------------------------------------------------------------------------------------+
datetime server_time=TimeCurrent(); // Server Time
datetime local_time=TimeLocal(); // Local Machine Time
datetime NewTime = server_time - 960; // Server Time Minus 16 Minutes
// The following seems to be nearly correct
int shift_m1=iBarShift(Symbol(),PERIOD_M1, NewTime);
int shift_m15=iBarShift(Symbol(),PERIOD_M15, NewTime);
int shift_h1=iBarShift(Symbol(),PERIOD_H1, NewTime);
int shift_h4=iBarShift(Symbol(),PERIOD_H4, NewTime);
// Output:
AUDUSD,M15: H4 Current Candle Position = 0 Candle 1 = 1 Candle 2 = 2 @ 2017.02.23 10:34:23
AUDUSD,M15: H1 Current Candle Position = 0 Candle 1 = 1 Candle 2 = 2 @ 2017.02.23 10:34:23
AUDUSD,M15: M15 Current Candle Position = 1 Candle 1 = 2 Candle 2 = 3 @ 2017.02.23 10:34:23
AUDUSD,M15: M5 Current Candle Position = 2 Candle 1 = 3 Candle 2 = 4 @ 2017.02.23 10:34:23
AUDUSD,M15: M1 Current Candle Position = 10 Candle 1 = 11 Candle 2 = 12 @ 2017.02.23 10:34:23
//+---------------------------------------------------------------------------------------------------------------+
//| 2. Would it be better (possible) to try and build an array that blocked the day into brackets?
//+---------------------------------------------------------------------------------------------------------------+
ie.
H4 x 6 = 24H
H1 x 24 = 24H
M15 x 96 = 24H
Then so how checking if the candle resided in the previous bracket. I'm just ad lib-ing here. It's just an idea and I haven't quite got the construct down, but it's the only other way I can think of testing it.
Any suggestions would be appreciated.
Thank you,