Join our fan page
- Views:
- 20156
- Rating:
- Published:
- 2011.07.01 14:45
- Updated:
- 2015.03.10 15:05
-
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance
So many people wants:
How to detect new bar present.
It is so simple especially if u want detect new bar in current timeframe,
void start(){ static datetime tmp; if (tmp!= Time[0]) { tmp = Time[0]; //do ur code here } }
but what about the other timeframe event? It is not too hard but it has some restriction:
MT4 is not support onBar event, but u can put the upward times into array and check the array times every tick, if it reached the right time, execute the new bar event.
That means if u run eg.: backtest on M5 timeframe u can catch the M6 M7...D1 events.
Why u can detect only upward trends? The answer is a question: how to generate tick data by metatrader? A1, A2, A3,...
Until the D1 timeframe its more difficult because the week starting at eg.: Sunday 20:45 (Broker specific) and the start of the month can start in the middle of the week... etc.
I think this info isnt too relevant, so i dont publish it...
So there is a topic for this Q, but i think so many people dont read the articles and forums, so i published this code.
Some explanation:
in the init function u fill the time array with the starter times :
curIndex = utils.periodToPeriodIndex(Period()); times[curIndex] = Time[0]; for(int i=curIndex+1; i<MAX; i++) times[i] = times[curIndex]- MathMod(times[curIndex],utils.periodIndexToPeriod(i)*60);
and in the start function u checked is there enough time elapsed now, then execute the event
if (times[curIndex] != Time[0]) { times[curIndex] = Time[0]; onBar(Period()); for(int i=curIndex+1; i<MAX; i++) { int period = utils.periodIndexToPeriod(i), seconds = period*60, time0 = times[curIndex] - MathMod(times[curIndex],seconds); if (times[i] != time0) { times[i] = time0; onBar(period); } } }
Write ur code in
void onTick() {
}
and
void onBar(int period) { }
That's all folks.
Update 1.1: Thx to WHRoeder for clear code

Based on Alligator and MA indicators.

This EA capitalises on four timeframes SAR, RSI and BB to determine entry as well as time zone.

Based on RSI with Parabolic SAR trailing...

The script prints the week day and time.