You are on page 1of 3

set hourclose time ?

extern bool show hourlywave


double hourlywave[]
double hourlywaveswing[]
int hourlywidt= 2
set index style
setindexarrow ?
setindex buffer(9,hourly wvea)
setindexbuffer(10, hourlyswing)
set index empty value(9,0)
set index empty value(10,0)
if(showdailywave)
{
if (timeFrame == PERIOD_H1 ||
timeFrame == PERIOD_M30 ||timeFrame == PERIOD_M15 ||
timeFrame == PERIOD_M5 || timeFrame == PERIOD_M1)
IdentifyhourlyWaves(countedBars);
}
void IdentifyhourlyWaves(int countedBars)
{
int lastShift = -1;
for (int i = Bars - countedBars; i >= 0; i--)
{
int lasthourClose = GetLasthourClose(i);
if (lastShift == lasthourClose)
continue;
else
lastShift = lasthourClose;
int lasthourOpen = GetLasthourClose(lasthourClose);
if (lasthourClose == -1 || lasthourOpen == -1)
continue;
int hourHighShift = GetHighestHighShift(lasthourClose + 1, lasthourOpen lasthourClose);
int hourLowShift = GetLowestLowShift(lasthourClose + 1, lasthourOpen - las
thourClose);
double hourHighPrice = High[hourHighShift];
double hourLowPrice = Low[hourLowShift];
if (hourHighShift > hourLowShift)
{
hourlyWaves[lasthourOpen] = hourHighPrice;
int middleDayShift = lasthourClose + MathCeil((lasthourOpen - lasthourC
lose + 1) / 2);
hourlyWaves[middlehourShift] = hourLowPrice;
}
else
{
hourlyWaves[lasthhourOpen] = hourLowPrice;
middlehourShift = lasthourClose + MathCeil((lasthourOpen - lasthourClos
e + 1) / 2);

hourlyWaves[middlehourShift] = hourHighPrice;
}
int
int
int
int

swing_0
swing_1
swing_2
swing_3

=
=
=
=

GetLasthourlySwing(i);
GetLasthourlySwing(swing_0);
GetLasthourlySwing(swing_1);
GetLasthourlySwing(swing_2);

if (hourlyWaves[swing_1] > hourlyWaves[swing_0] && hourlyWaves[swing_1] >


hourlyWaves[swing_2])
hourlySwings[swing_1] = hourlyWaves[swing_1];
if (hourlyWaves[swing_1] < hourlyWaves[swing_0] && hourlyWaves[swing_1] <
hourlyWaves[swing_2])
hourlySwings[swing_1] = hourlyWaves[swing_1];
if (hourlyWaves[swing_2] > hourlyWaves[swing_1] &&hourlyWaves[swing_2] > h
ourlyWaves[swing_3])
hourlySwings[swing_2] = hourlyWaves[swing_2];
if (hourlyWaves[swing_2] < hourlyWaves[swing_1] && hourlyWaves[swing_2] <
hourlyWaves[swing_3])
hourlySwings[swing_2] = hourlyWaves[swing_2];
}
}
int GetLastHoulySwing(int shift)
{
for (int i = shift + 1; i < Bars; i++)
{
if (hourlyWaves[i] != 0)
return(i);
}
return(-1);
}
int GetLastHourlyClose(int shift)
{
if (enableCustomHourlyClose)
{
for (int i = shift + 1; i < Bars; i++)
{
string candleDateString = TimeToStr(Time[i], TIME_DATE);
datetime closeTime = StrToTime(candleDateString + " " + hourlyCloseTime
);
if (closeTime < Time[shift] && closeTime >= Time[i])
return(i);
}
}
else
{
for (i = shift + 1; i < Bars; i++)
{
if (TimeDayOfWeek(Time[i]) != TimeDayOfWeek(Time[i+1]) &&
TimeDayOfWeek(Time[i]) != Monday && TimeDayOfWeek(Time[i+1]) != Su
nday && add fortime?)
return(i);
}
}

return(-1);
}
int HourSum(int firstminute, int secondminute)
{
int sum = firstminute + secondminute;
if (sum >= 60)
sum -= 60;
return(sum);
}

You might also like